以文本方式查看主题

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

--  作者: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周期价差均值,上轨是价差均值+标准差,下轨是价差均值-标准差,价差突破上轨做空价差,回归均值平仓;做多价差同理

 


--  作者:fly
--  发布时间:2011/12/15 11:30:55
--  
用的是K线走完还是固定时间间隔
--  作者:hehhh0327
--  发布时间:2011/12/15 11:32:00
--  
固定时间间隔
--  作者:fly
--  发布时间:2011/12/16 9:24:16
--  

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

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


--  作者: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\');

 

 


--  作者:hehhh0327
--  发布时间:2011/12/16 13:30:05
--  
按照版主说的改过之后还是开平仓信号很频繁,真的不知道怎么调了
--  作者: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


--  作者:pig3009
--  发布时间:2012/10/9 16:29:57
--  
问题跟我一样,学习中
--  作者:ackvz
--  发布时间:2012/10/9 16:41:32
--  

.(2)只监测品种IF01

 

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