Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请高手帮看看,不胜感激

1楼
hehhh0327 发表于:2011/12/15 9:41:25
套利代码如下:


INPUT:M(10,1,100,1);
INPUT:a(1.67,1,100,1);
INPUT:N(75,1,100,1);
INPUT:LOT1(1,1,10,1);
INPUT:LOT2(1,1,10,1);

runmode:0;
YOPEN:='IF12$OPEN';
POPEN:='IF03$OPEN';
MEAN:=MA(YOPEN-POPEN,M);
vd:=std(YOPEN-POPEN,N);
UPPERBAND:=MEAN+a*vd;
LOWERBAND:=MEAN-a*vd;

IF NOT(ISLASTBAR) THEN EXIT;

//做空价差
IF TBUYHOLDINGEX('800980','IF12',0)=0 AND TBUYHOLDINGEX('800980','IF03',0)=0 AND TSELLHOLDINGEX('800980','IF12',0)=0 AND TSELLHOLDINGEX('800980','IF03',0)=0 THEN
BEGIN
TBUYSHORT(YOPEN-POPEN>=UPPERBAND,LOT1,lmt,YOPEN,0,'','IF12');
TBUY(YOPEN-POPEN>=UPPERBAND,LOT2,lmt,POPEN,0,'','IF03');
END

//做空套利平仓
//IF TSELLHOLDINGEX('800980','IF12',0)>0 AND TBUYHOLDINGEX('800980','IF03',0)>0 and tenterbars>0 THEN
//BEGIN
TSELLSHORT(YOPEN-POPEN<=MEAN,LOT1,lmt,YOPEN,0,'','IF12');
TSELL(YOPEN-POPEN<=MEAN,LOT2,lmt,POPEN,0,'','IF03');
//END


//做多价差
IF TBUYHOLDINGEX('800980','IF12',0)=0 AND TBUYHOLDINGEX('800980','IF03',0)=0 AND TSELLHOLDINGEX('800980','IF12',0)=0 AND TSELLHOLDINGEX('800980','IF03',0)=0 THEN
BEGIN
TBUY(YOPEN-POPEN<=LOWERBAND,LOT1,lmt,YOPEN,0,'','IF12');
TBUYSHORT(YOPEN-POPEN<=LOWERBAND,LOT2,lmt,POPEN,0,'','IF03');
END

//做多套利平仓
IF TBUYHOLDINGEX('800980','IF12',0)>0 AND TSELLHOLDINGEX('800980','IF03',0)>0 and tenterbars>0 THEN
BEGIN
TSELL(YOPEN-POPEN>=MEAN,LOT1,lmt,YOPEN,0,'','IF12');
TSELLSHORT(YOPEN-POPEN>=MEAN,LOT2,lmt,POPEN,0,'','IF03');
END

下单日志如下:

序号    品种名称         说明    预警名称         预警时间          预警价格    现价/盈亏        动作
1       IF12 股指1112            股指跨期套利1    11/12/15 09:23    2403.8      2402.4/-0.06%    开空
2       IF03 股指1203            股指跨期套利1    11/12/15 09:23    2423.0      2423.6/+0.02%    开多
3       IF12 股指1112            股指跨期套利1    11/12/15 09:23    2403.8      2402.4/-0.06%    平空
4       IF03 股指1203            股指跨期套利1    11/12/15 09:23    2423.0      2423.6/+0.02%    平多
5       IF12 股指1112            股指跨期套利1    11/12/15 09:23    2403.8      2402.4/-0.06%    开多
6       IF03 股指1203            股指跨期套利1    11/12/15 09:23    2423.0      2423.6/+0.02%    开空
7       IF12 股指1112            股指跨期套利1    11/12/15 09:25    2402.8      2402.4/-0.02%    开空
8       IF03 股指1203            股指跨期套利1    11/12/15 09:25    2423.2      2423.6/+0.02%    开多
9       IF12 股指1112            股指跨期套利1    11/12/15 09:25    2402.8      2402.4/-0.02%    平空
10      IF03 股指1203            股指跨期套利1    11/12/15 09:25    2423.2      2423.6/+0.02%    平多
11      IF12 股指1112            股指跨期套利1    11/12/15 09:25    2402.8      2402.4/-0.02%    开多
12      IF03 股指1203            股指跨期套利1    11/12/15 09:25    2423.2      2423.6/+0.02%    开空
13      IF12 股指1112            股指跨期套利1    11/12/15 09:30    2402.6      2402.4/-0.01%    开空
14      IF03 股指1203            股指跨期套利1    11/12/15 09:30    2422.8      2423.6/+0.03%    开多
15      IF12 股指1112            股指跨期套利1    11/12/15 09:30    2402.6      2402.4/-0.01%    平空
16      IF03 股指1203            股指跨期套利1    11/12/15 09:30    2422.8      2423.6/+0.03%    平多
17      IF12 股指1112            股指跨期套利1    11/12/15 09:30    2402.6      2402.4/-0.01%    开多
18      IF03 股指1203            股指跨期套利1    11/12/15 09:30    2422.8      2423.6/+0.03%    开空

 

请高手帮忙看看,怎么开仓这么频繁啊,程序思想很简单,取两品种N周期价差均值,上轨是价差均值+标准差,下轨是价差均值-标准差,价差突破上轨做空价差,回归均值平仓;做多价差同理

 

2楼
fly 发表于:2011/12/15 11:30:55
用的是K线走完还是固定时间间隔
3楼
hehhh0327 发表于:2011/12/15 11:32:00
固定时间间隔
4楼
fly 发表于:2011/12/16 9:24:16

引用某个品种本周期的开盘价,要用双引号,注意,公式代码的书写,都要在英文状态下,您的有的地方的写法,不是英文状态输入

YOPEN:="IF01$OPEN";
POPEN:="IF03$OPEN";

5楼
fly 发表于:2011/12/16 9:46:03

另:同一个下单语句的条件,不要有交叉.把红色标识的地方,等号去掉,类似情况下,等号也去掉

 

TSELLSHORT(YOPEN-POPEN<=MEAN,LOT1,lmt,YOPEN,0,'','IF12');

TSELLSHORT(YOPEN-POPEN>=MEAN,LOT2,lmt,POPEN,0,'','IF03');

 

 

6楼
hehhh0327 发表于:2011/12/16 13:30:05
按照版主说的改过之后还是开平仓信号很频繁,真的不知道怎么调了
7楼
fly 发表于:2011/12/16 14:27:47

完全按4楼5楼的建议改写,没有新的改写.

一根K线上没有频繁开仓,只是会不成交,有未成交委托.

逻辑相关问题,自行修改完善.

 

注意本地,(1)IF01和IF03的1分钟K线有数据.(2)只监测品种IF01

 

INPUT:M(10,1,100,1);
INPUT:a(1.67,1,100,1);
INPUT:N(75,1,100,1);
INPUT:num(1,1,10,1);

runmode:0;
YOPEN:="IF01$OPEN";
POPEN:="IF03$OPEN";
o1:YOPEN-POPEN,noaxis;
MEAN:MA(o1,M),noaxis;
vd:=std(o1,N);
UPPERBAND:MEAN+a*vd,noaxis;
LOWERBAND:MEAN-a*vd,noaxis;

IF NOT(ISLASTBAR) THEN EXIT;

//做空价差
IF TBUYHOLDINGEX('xx','IF01',0)=0 AND TBUYHOLDINGEX('xx','IF03',0)=0 AND TSELLHOLDINGEX('xx','IF01',0)=0 AND TSELLHOLDINGEX('xx','IF03',0)=0 THEN
BEGIN
TBUYSHORT(o1>=UPPERBAND,num,lmt,YOPEN,0,'xx','IF01');
TBUY(o1>=UPPERBAND,num,lmt,POPEN,0,'xx','IF03');
END

//做空套利平仓
IF TSELLHOLDINGEX('xx','IF01',0)>0 AND TBUYHOLDINGEX('xx','IF03',0)>0 and tenterbars>0 THEN
BEGIN
TSELLSHORT(o1<MEAN,num,lmt,YOPEN,0,'xx','IF01');
TSELL(o1<MEAN,num,lmt,POPEN,0,'xx','IF03');
END


//做多价差
IF TBUYHOLDINGEX('xx','IF01',0)=0 AND TBUYHOLDINGEX('xx','IF03',0)=0 AND TSELLHOLDINGEX('xx','IF01',0)=0 AND TSELLHOLDINGEX('xx','IF03',0)=0 THEN
BEGIN
TBUY(o1<=LOWERBAND,num,lmt,YOPEN,0,'xx','IF01');
TBUYSHORT(o1<=LOWERBAND,num,lmt,POPEN,0,'xx','IF03');
END

//做多套利平仓
IF TBUYHOLDINGEX('xx','IF01',0)>0 AND TSELLHOLDINGEX('xx','IF03',0)>0 and tenterbars>0 THEN
BEGIN
TSELL(o1>MEAN,num,lmt,YOPEN,0,'xx','IF01');
TSELLSHORT(o1>MEAN,num,lmt,POPEN,0,'xx','IF03');
END

8楼
pig3009 发表于:2012/10/9 16:29:57
问题跟我一样,学习中
9楼
ackvz 发表于:2012/10/9 16:41:32

.(2)只监测品种IF01

 

监测套利品种之一即可。 难怪我重复发单了。  估计监测了2个  多发一次。

共9 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03516 s, 3 queries.