以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  关于指数交易限制问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=174577)

--  作者:xxinstar100
--  发布时间:2020/2/25 21:29:38
--  关于指数交易限制问题

后台程序化交易,利用中证500指数计算条件,去买卖IC00合约。会不会有T+1的限定?  比如中证500只能一买一卖,而IC00是T+0,交易次数没有限制。

我发现今天按照模型今天会成交几次的,一开始有成交,后面就没有提示信号了

比如:
开多:=      TBUY(KD,CW,MKT,0,0,\'\',\'IC00\'),ALLOWREPEAT;  //开多信号
平多:=     TSELL(PD,CW,MKT,0,0,\'\',\'IC00\'),ALLOWREPEAT;  //平多信号

--  作者:wenarm
--  发布时间:2020/2/26 8:34:49
--  

没有你说的限制。建议你用debugfile跟踪自己的条件。不要拿图表信号和后台信号对比。没有意义。

 


--  作者:FireScript
--  发布时间:2020/2/26 8:44:25
--  
不会的。不会因为监控的是T+1就影响到实际下单品种的交易。建议你把KD,PD这些条件都进行一些调试输出。比如用debugout或者debugfile 
--  作者:xxinstar100
--  发布时间:2020/2/26 15:11:12
--  中证500指数交易问题

今天再次出现同样的情况,前面2次(一卖一买)出现信号,成功成交,后面再次出现时的就没有信号。通过DEBUGOUT观察计算没有问题,就是没有触发信号。

代码情况:
平多:=     TSELL(PD,1,MKT,0,0,\'\',\'IC00\'),ALLOWREPEAT;  //平多信号
DEBUGOUT(\'当前平多条件%.0f\',PD);
DEBUGOUT(\'当前平多开仓%.0f\',平多);

DEBUGOUT输出情况:PD一直提示是1,平多一直是0;
20.02.26 14:45:59 SH905
当前平多条件1
20.02.26 14:45:59 SH905
当前平多开仓0
20.02.26 14:45:59 SH905
运行结束



--  作者:FireScript
--  发布时间:2020/2/26 15:20:38
--  
KD  的值是什么情况?你只输出了平仓条件,开仓条件呢。你应该也看下开仓条件是否满足了吧。

[此贴子已经被作者于2020/2/26 15:21:12编辑过]

--  作者:xxinstar100
--  发布时间:2020/2/26 15:29:49
--  指数交易问题

此时手上已经有持仓了

KD:= TSELLHOLDINGEX(\'\',\'IC00\',2)>=0 AND TBUYHOLDINGEX(\'\',\'IC00\',2)=0 AND (KD1 OR KD2); //开多信号 
PD:= TSELLHOLDINGEX(\'\',\'IC00\',2)=0 AND TBUYHOLDINGEX(\'\',\'IC00\',2)>0 AND PD1;           //平多信号

开多:=      TBUY(KD,CW,MKT,0,0,\'\',\'IC00\'),ALLOWREPEAT;  //开多信号
平多:=     TSELL(PD,CW,MKT,0,0,\'\',\'IC00\'),ALLOWREPEAT;  //平多信号

CWSS:=TBUYHOLDINGEX(\'\',\'IC00\',2);  //持仓手数
KCSS:=TSELLHOLDINGEX(\'\',\'IC00\',2);   //持空仓手数
DEBUGOUT(\'当前买持状况%.0f\',CWSS);
DEBUGOUT(\'当前卖持状况%.0f\',KCSS);

DEBUGOUT的结果 买持一直为1,卖持一直为0


--  作者:FireScript
--  发布时间:2020/2/26 16:12:30
--  
1.TBUYHOLDINGEX(\'\',\'IC00\',2);  参数2的时候是包含未成交平仓单的。建议输出下当时实际的可用持仓。
2.开仓条件里面的  KD1 OR KD2 这2个变量 最好也输出以下。

目前你提供的信息暂时还无法进一步判断,只能提供上面的2个建议。或者你提供完整代码和程序化的设置。我们本地运行测试。
[此贴子已经被作者于2020/2/26 16:12:37编辑过]

--  作者:wenarm
--  发布时间:2020/2/26 16:16:21
--  

TSELLHOLDINGEX 是空头持仓。返回是0,说明你本地没有空头仓位。和你前面的代码没什么关系。

 

另外你4楼中,是想知道为什么没有下单操作。你输出的应该是开平条件,或者开平条件组成的因子项。而不是只输出持仓数量。


--  作者:xxinstar100
--  发布时间:2020/2/26 17:37:58
--  
JIZHUN为根据中证500计算出的当天基准买入值 
ZHISUN为根据中证500计算出的当天止损卖出值
MODELBUY 为是否符合尾盘买入条件

后面成交部分完整的代码如下,帮看下问题出在哪:

MINDIFFIC0:=0.2;
KD1:= CURRENTTIME<145700 AND C>=(JIZHUN-MINDIFFIC0);       //开多条件1
KD2:= CURRENTTIME>=145945 AND MODELBUY;                    //开多条件2
PD1: = CURRENTTIME<145700 AND C<=(ZHISUN+MINDIFFIC0);       //平多条件

PK:= TSELLHOLDINGEX(\'\',\'IC00\',2)>0 AND TBUYHOLDINGEX(\'\',\'IC00\',2)=0 AND (KD1 OR KD2);  //平空信号
KD:= TSELLHOLDINGEX(\'\',\'IC00\',2)>=0 AND TBUYHOLDINGEX(\'\',\'IC00\',2)=0 AND (KD1 OR KD2); //开多信号 
PD:= TSELLHOLDINGEX(\'\',\'IC00\',2)=0 AND TBUYHOLDINGEX(\'\',\'IC00\',2)>0 AND PD1;           //平多信号
KK:= TSELLHOLDINGEX(\'\',\'IC00\',2)=0 AND TBUYHOLDINGEX(\'\',\'IC00\',2)>=0 AND PD1;          //开空信号

平空:=TSELLSHORT(PK,CW,MKT,0,0,\'\',\'IC00\'),ALLOWREPEAT;  //平空信号
开多:=      TBUY(KD,CW,MKT,0,0,\'\',\'IC00\'),ALLOWREPEAT;  //开多信号
平多:=     TSELL(PD,CW,MKT,0,0,\'\',\'IC00\'),ALLOWREPEAT;  //平多信号
开空:= TBUYSHORT(KK,CW,MKT,0,0,\'\',\'IC00\'),ALLOWREPEAT;  //开空信号

CWSS:=TBUYHOLDINGEX(\'\',\'IC00\',2);  //持仓手数
KCSS:=TSELLHOLDINGEX(\'\',\'IC00\',2);   //持空仓手数

DEBUGOUT(\'当前基准值为%.1f\',JIZHUN);
DEBUGOUT(\'当前止损值为%.1f\',ZHISUN);
DEBUGOUT(\'昨日基准值为%.1f\',JIZHUN1);
DEBUGOUT(\'当前买持状况%.0f\',CWSS);
DEBUGOUT(\'当前卖持状况%.0f\',KCSS);
DEBUGOUT(\'当前平多条件%.0f\',PD);
DEBUGOUT(\'当前平多开仓%.0f\',平多);


--  作者:xxinstar100
--  发布时间:2020/2/26 17:42:09
--  指数交易问题


CW  为买入的仓位,已设定为1.

为日线操作,JIZHUN、ZHISUN 是根据昨日的数据计算出来的,日内不会变
[此贴子已经被作者于2020/2/26 17:43:27编辑过]