管理好,请教一下。
我在程序里编写了委托未成交的时间代码,但是发现好像总不执行,请问一下是不是我写的有问题呢?
kdbbwcj1:=kdbbtj and TISPRVREMAIN(4) and tsubmit(4)>300 and c<=(tENTERPRICe-3*a);//空单保本未成交
kdbbwcj2:=kdbbtj and TISPRVREMAIN(4) and c>=(tENTERPRICe-3*a) and c<tenterprice;
if kdbbwcj1 or kdbbwcj2 then begin
tcancel(1,4);
tsellshort(1,0,mkt);
end
我发现未成交里委托的方向是买入。
我账户里现有空单,并且已经触发了平仓信号。那我就想计算这个挂平空单后到现在未成交的时间,我选择这个tsubmit(4)是否是对的呢?还是要选择tsubmit(1)呢?
如果按照委托里显示的,那就成买入了,这个请帮忙解释一下。
另外再请教一下,这个TISPRBREMAIN和TISREMAIN是有什么区别吗?
因为我使用的是单策略多品种的,在后台程序运行里,我在代码编写上用的是:
if strcmp(dqpz,'JD00')=0 and sjlx=2 then begin
zs:=10;zy:=45;zzdc:=2;
end
if strcmp(dqpz,'AX00')=0 and sjlx=2 then begin
zs:=6;zy:=40;zzdc:=2;
end
这样编写应该使用哪种判断未成交 的命令?是上一笔还是全部的那种?是否会对我各个品种的持仓及未成交判断带来影响?
我本地测试数值是有效的,把你的测试代码贴出来
这个单子是手工下的还是程序下的?
区别是一个仅仅判断上一笔交易是否成交,一个是判断账户里面所有仍然有未成交单
函数判断只针对当前公式交易的合约进行判断
谢谢你的回答,我想用TISPRBREMAIN应该是没有什么问题的。
现在还有一个问题,请看附图。
我代码中KDBBWCJ1的条件在现在实盘中已经是满足的了。
我想要立即撤销挂单,同时市场价平仓。
但是我观察,好像这个挂单总是挂在5580那(B4)。
我想询问一下,如果条件满足的情况下,程序会先去执行我上面的那个B4(因为那条代码条件也满足了),还是先执行我BEGIN里的TSELLSHORT的那个条件呢?
但是如果按照逻辑思维向下的话,那应该是执行我BEGIN里面的语句吧。
如果就是执行上面的,那如何来改正呢?
if c<=(tENTERPRICe-2*a) and ll>=(tENTERPRICe-m*a) and c>=b4 and tenterbars>1
&& dqzhcc<0 then tsellshort(1,0,lmt,b4) ; //空单保本
kdbbtj:=(( B1<=LL and LL<(tENTERPRICe-m*a) && c>=b4 and abb and tenterbars>1) OR
( c<=(tENTERPRICe-2*a) and ll>=(tENTERPRICe-m*a) and c>=b4 and tenterbars>1 ))
&& dqzhcc<0 ; //空单保本条件
kdbbwcj1:=kdbbtj and TISPRVREMAIN(4) and tsubmit(4)>300 and c<=(tENTERPRICe-3*a);//空单保本未成交(下单设置里撤单的设置要改成继续挂单)
kdbbwcj2:=kdbbtj and TISPRVREMAIN(4) and c>=(tENTERPRICe-3*a) and c<tenterprice;
if kdbbwcj1 or kdbbwcj2 then begin
tcancel(1,4);
tsellshort(1,0,mkt);
end
就是说,这个BEGIN里的平多操作我希望是条件成立了就立即执行的。