以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请教  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=9260)

--  作者:hehhh0327
--  发布时间:2011/12/6 15:58:31
--  请教

帮忙看看这个套利程序哪里错了,代码如下:

INPUT:M(8,1,100,1);
INPUT:a(2,1,100,1);
INPUT:N(100,1,100,1);
INPUT:LOT1(1,1,10,1);
INPUT:LOT2(1,1,10,1);

runmode:0;

//取每五分钟K线的开盘价
YOPEN:=callstock(\'y05\',VTOPEN,2,0);
POPEN:=callstock(\'p05\',VTOPEN,2,0);

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\',\'Y05\',0)=0 AND TBUYHOLDINGEX(\'800980\',\'P05\',0)=0 AND TSELLHOLDINGEX(\'800980\',\'Y05\',0)=0 AND TSELLHOLDINGEX(\'800980\',\'P05\',0)=0 THEN
BEGIN
TBUYSHORT(YOPEN-POPEN>=UPPERBAND,LOT1,lmt,YOPEN,0,\'\',\'Y05\');
TBUY(YOPEN-POPEN>=UPPERBAND,LOT2,lmt,POPEN,0,\'\',\'P05\');
END

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


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

//做多套利平仓
IF TBUYHOLDINGEX(\'800980\',\'Y05\',0)>0 AND TSELLHOLDINGEX(\'800980\',\'P05\',0)<0 THEN
BEGIN
TBUYSHORT(YOPEN-POPEN<=MEAN,LOT1,lmt,YOPEN,0,\'\',\'Y05\');
TBUY(YOPEN-POPEN<=MEAN,LOT2,lmt,POPEN,0,\'\',\'P05\');
END


--  作者:阿火
--  发布时间:2011/12/6 16:03:36
--  
有什么现象啊?难道要人家从头到尾看啊
--  作者:fly
--  发布时间:2011/12/6 16:11:02
--  

没看出来什么问题

 

注意:实际要用到Y05和P05的100周期以内的开盘价,要先确定有这两个合约的5分钟数据.

这里的问题20也是要注意的事项http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332

 


[此贴子已经被作者于2011-12-6 16:14:42编辑过]

--  作者:hehhh0327
--  发布时间:2011/12/6 16:11:59
--  

反复开仓,观察了好几天,没有平仓信号


--  作者:admin
--  发布时间:2011/12/6 17:19:31
--  
请附带上交易下单日志
--  作者:阿火
--  发布时间:2011/12/6 21:43:17
--  

你模型问题多多

TBUYHOLDINGEX(\'800980\',\'Y05\',0)>0 or TSELLHOLDINGEX(\'800980\',\'P05\',0)<0  //and 改为 or

其中 TSELLHOLDINGEX(\'800980\',\'P05\',0)<0 这个条件不会成立,所以不会平仓

 

重复开仓 应该不会出现吧


--  作者:hehhh0327
--  发布时间:2011/12/7 9:24:46
--  

 TSELLHOLDINGEX(\'800980\',\'P05\',0)<0 这个条件怎么不会成立呢,Y05是多单,P05就是是空单啊