以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请老师帮忙看一下代码有什么问题,谢谢  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=90870)

--  作者:vivi
--  发布时间:2016/2/1 13:37:21
--  请老师帮忙看一下代码有什么问题,谢谢

老师帮忙看一下代码有什么问题么?我把开仓指标值都设成负的这么多了,用“后台程序化交易”启动预警后还是一个预警记录都没有~其中套利品种是所有认购期权合约

 

套利品种1:\'\';
套利品种2:\'\';
套利品种3:\'\';

 

//读取行权价、计算λ、设置固定费用
K1:=OPTIONINFO2(  5,套利品种1);
K2:=OPTIONINFO2(  5,套利品种2);
K3:=OPTIONINFO2(  5,套利品种3);
LAMDA:=(K2-K1)/(K3-K1);
FEE:=7;

 

//开仓指标
KCZB:DYNAINFO2( 28,套利品种2)-(1-LAMDA)*DYNAINFO2( 34,套利品种1)-LAMDA*DYNAINFO2( 34,套利品种3)-FEE;

 

//开仓,之前若有持仓,未平仓之前则不继续开仓
IF KCZB>-50 AND TSELLHOLDINGEX(账户,套利品种2,0)=0 AND TBUYHOLDINGEX(账户,\'\',1)=0 AND K1<K2<K3 THEN
BEGIN
TBUY(1,10*(K3-K2),LMT,DYNAINFO2( 34,套利品种1),账户,套利品种1);
TBUY(1,10*(K2-K1),LMT,DYNAINFO2( 34,套利品种3),账户,套利品种3);
TBUYSHORT(1,10*(K3-K1),LMT,DYNAINFO2( 28,套利品种2),账户,套利品种2);
END

 

//平仓
IF KCZB<-50 THEN BEGIN
TSELL(1,10*(K3-K2),LMT,DYNAINFO2( 28,套利品种1),账户,套利品种1);
TSELL(1,10*(K2-K1),LMT,DYNAINFO2( 28,套利品种3),账户,套利品种3);
TSELLSHORT(1,10*(K3-K1),LMT,DYNAINFO2( 34,套利品种2),账户,套利品种2);
END

 

//撤单追单
IF (TSELLHOLDINGEX(账户,套利品种2,0)>0 OR TBUYHOLDINGEX(账户,\'\',0)>0 ) AND TREMAINQTY(1,账户,\'\')>0
THEN BEGIN
TCANCELEX(1,0,账户,\'\');
TBUYSHORT(1,10*(K3-K1)-TSELLHOLDINGEX(账户,套利品种2,0),MKT,0,0,账户,套利品种2);
TBUY(1,10*(K3-K2)-TBUYHOLDINGEX(账户,套利品种1,0),MKT,0,0,账户,套利品种1);
TBUY(1,10*(K2-K1)-TBUYHOLDINGEX(账户,套利品种3,0),MKT,0,0,账户,套利品种3);
END

 

//最后交易日收盘前强平
IF CURRENTDATE=OPTIONINFO(  7) AND CURRENTTIME=145500 THEN BEGIN
TSELL(1,0,MKT,0,0,账户);
TSELLSHORT(1,0,MKT,0,0,账户);
END


--  作者:jinzhe
--  发布时间:2016/2/1 13:43:29
--  
把3个套利品种 的代码加进去,我需要做本地测试
--  作者:vivi
--  发布时间:2016/2/1 13:48:21
--  
以下是引用jinzhe在2016/2/1 13:43:29的发言:
把3个套利品种 的代码加进去,我需要做本地测试


--  作者:vivi
--  发布时间:2016/2/1 13:50:25
--  
以下是引用jinzhe在2016/2/1 13:43:29的发言:
把3个套利品种 的代码加进去,我需要做本地测试
我是在“程式化条件设定”这个窗口中的“监控品种”里面选择了所有的认购期权合约,这个不需要一个个打进代码里面把?
--  作者:jinzhe
--  发布时间:2016/2/1 13:55:14
--  

套利品种1:\'\';
套利品种2:\'\';
套利品种3:\'\';

 

你这个3个不写,表示3个为空,也就是啥都没有,后面一系列的计算就是没有用


--  作者:vivi
--  发布时间:2016/2/1 14:05:53
--  
以下是引用jinzhe在2016/2/1 13:55:14的发言:

套利品种1:\'\';
套利品种2:\'\';
套利品种3:\'\';

 

你这个3个不写,表示3个为空,也就是啥都没有,后面一系列的计算就是没有用

我这个策略是扫描全市场合约,这样的话需要把全市场合约代码都放进来么?图片点击可在新窗口打开查看

“为空表示取当前默认品种,即为你后台分析的品种”,这是之前一个老师跟我讲的,也就是在“监控品种”中选择我需要监控的合约就行了


--  作者:jinzhe
--  发布时间:2016/2/1 14:09:05
--  

为空表示当前品种

这个是用在tbuy下单语句之类是对的啊,但是不能用在OPTIONINFO2,DYNAINFO2

 


--  作者:vivi
--  发布时间:2016/2/1 14:13:11
--  
以下是引用jinzhe在2016/2/1 14:09:05的发言:

为空表示当前品种

这个是用在tbuy下单语句之类是对的啊,但是不能用在OPTIONINFO2,DYNAINFO2

 

那如果我代码里面需要取期权信息和五档价格的话,不能用  套利品种1:\'\';   这种表达方式,一定要把所有的合约都写进来么?那么多合约啊图片点击可在新窗口打开查看


--  作者:vivi
--  发布时间:2016/2/1 14:20:57
--  
以下是引用jinzhe在2016/2/1 14:09:05的发言:

为空表示当前品种

这个是用在tbuy下单语句之类是对的啊,但是不能用在OPTIONINFO2,DYNAINFO2

 

套利品种1:\'10000565.SH,10000547.SH,10000548.SH,10000539.SH,10000533.SH,10000527.SH,10000519.SH,10000520.SH,10000511.SH,10000512.SH,10000507.SH,10000508.SH,10000497.SH,10000498.SH,10000499.SH,10000500.SH,10000501.SH\';
套利品种2:\'10000565.SH,10000547.SH,10000548.SH,10000539.SH,10000533.SH,10000527.SH,10000519.SH,10000520.SH,10000511.SH,10000512.SH,10000507.SH,10000508.SH,10000497.SH,10000498.SH,10000499.SH,10000500.SH,10000501.SH\';
套利品种3:\'10000565.SH,10000547.SH,10000548.SH,10000539.SH,10000533.SH,10000527.SH,10000519.SH,10000520.SH,10000511.SH,10000512.SH,10000507.SH,10000508.SH,10000497.SH,10000498.SH,10000499.SH,10000500.SH,10000501.SH\';

 


--  作者:jinzhe
--  发布时间:2016/2/1 14:21:07
--  

套利品种1:=stklabel;

这样就表示当前品种了

但是你的

套利品种2,套利品种3,你也打算是用“当前品种”?