止损代码如下IF (TAVGENTERPRICEEX(AC,PZ)<>0) AND (DYNAINFO(7)-TAVGENTERPRICEEX(AC,PZ)>=ZSJJ) AND (DYNAINFO(7)-TAVGENTERPRICEEX(AC,PZ)<ZSJX) THEN BEGIN
//空损:=SELLSHORT(1,B04,LIMITR,TAVGENTERPRICEEX(AC,PZ)+ZSDS,1);
TCANCELEX(1,0,AC,PZ);
7883.0点在13:23分开空的 ZSJJ=20
可13:29分最高点到7908,还是没有发出止损信号,什么原因呢?
debugfile代码和数据如下
if Islastbar then
begin
DEBUGFILE('D:\TEST500.TXT',' 平空条件:'&numtostr(DYNAINFO(7),2)&' A00:'&numtostr(A00,0)&' KTLC:'&numtostr(KTLC,2)&' SHORTX1:'&numtostr(SHORTX1,0)&' SHORT:'&numtostr(SHORT,0)&' A14:'&numtostr(A14,0)&' LONG1:'&numtostr(LONG1,0)&' THOLDING:'&numtostr(THOLDING,0)&' B01:'&numtostr(B01,0)&' TISREMAIN:'&numtostr(TISREMAIN(0),0)&' THOLDING2:'&numtostr(THOLDING2,0)&' A43:'&numtostr(A43,0)&' B02:'&numtostr(B02,0)&' A15:'&numtostr(A15,0)&' A14:'&numtostr(A14,0)&' A15:'&numtostr(A15,0),0);
end
2015-08-19 13:29:59.938 平空条件:7887.00 A00:0 KTLC:7901.43 SHORTX1:0 SHORT:0 A14:0 LONG1:1 THOLDING:-1 B01:0 TISREMAIN:0 THOLDING2:-1 A43:-1 B02:0 A15:0 A14:0 A15:0
//空损:=SELLSHORT(1,B04,LIMITR,TAVGENTERPRICEEX(AC,PZ)+ZSDS,1);
你代码是这么写的??//是注释掉了,当然不执行。你这个变成条件满足去撤单而不是止损了
另外你debugfile输出下TAVGENTERPRICEEX(AC,PZ),DYNAINFO(7)这两个值就可以了,止损条件也就和这两个有关系
[此贴子已经被作者于2015/8/19 13:44:05编辑过]
空损是这样的,没有注释掉
空损:=TSELLSHORT((TISREMAIN(0)=0 AND (THOLDING = (-1))),B04,LMT,TAVGENTERPRICEEX(AC,PZ)+ZSDS,0,AC,PZ);
我来debugfile输出TAVGENTERPRICEEX(AC,PZ),DYNAINFO(7)
TISREMAIN(0)=0 AND (THOLDING = (-1)))
你这条件如果有挂单的话,就不会止损了,并且你持仓必须是1手空单才会去止损。。。。这是您的想法吗
其实这两个可以不加的,你没有仓位时自然是止损不了的。
是我的想法,我在触发止损条件的时候,用了TCANCELEX(1,0,AC,PZ); 确保
TISREMAIN(0)=0
还有目前的确是1手单,无论是空单还是多单,都是一手的 |
tholding如果你既有多又有空,他是相减的要
如果你只想取空仓数量,用TSELLHOLDING(N)这个
这种后台不执行的问题,您必须做好调试输出,然后分析是哪个条件没成立
[此贴子已经被作者于2015/8/19 14:10:40编辑过]
DYNAINFO(7)-TAVGENTERPRICEEX(AC,PZ)>=ZSJJ ZSJJ=20
DYNAINFO(7)-TAVGENTERPRICEEX(AC,PZ)<ZSJX
8148.4 - 8171.8 >=20 ????条件不满足啊
2015-08-19 14:10:45.045 开空后:7999.80 TAVGENTERPRICEEX(AC,PZ):0.00 TENTERPRICE:7852.00 SHORT1:1 A01:7993.27 THOLDING:0 SHORT:0 A14:0 THOLDING:0 A43:-1 B01:1 TISREMAIN:1 THOLDING2:0 A43:-1 B02:1 A15:0 A14:0 A15:0
奇怪啊 明明开空了,TAVGENTERPRICEEX(AC,PZ) 应该等于TENTERPRICE:7852.00 ,为啥TAVGENTERPRICEEX(AC,PZ) 会是0???
看来不止损的原因在这里!!!!
2015-08-19 14:10:44.978 【后台】IC08 TBuyShort 第 217 行出现信号
2015-08-19 14:10:44.979 【后台】IC08 TBuyShort 已成功触发下单操作 价格:7993.267090 数量:1 类型:0 账户:512810491 品种:IC08
2015-08-19 14:10:44.980 【后台】多账户及策略系数 委托账户或者组: 512810491
2015-08-19 14:10:44.980 【后台】CTP登录账户 1 个
2015-08-19 14:10:44.981 【后台】CTP组 512810491 下单
2015-08-19 14:10:44.982 【后台】CTP账户 512810491 下单系数为1.000000
2015-08-19 14:10:44.982 【后台】账户 512810491 下单,系数调整后下单量:1
2015-08-19 14:10:44.983 【后台】下单已发送
2015-08-19 14:10:44.985 【后台】金仕达登录账户 0 个
2015-08-19 14:10:44.985 【后台】恒生登录账户 0 个
2015-08-19 14:10:44.986 【后台】子账户 登录账户 0 个
2015-08-19 14:10:44.986 【后台】扩展接口 登录账户 0 个
2015-08-19 14:10:44.987 【下单】IC08 价7993.267090 量1 买卖1 类型0 开平0 账户512810491 Formula 1
2015-08-19 14:10:44.988 【下单】确认报单已发送 ID=-701166831 RefID = 1680
2015-08-19 14:10:44.989 【后台】IC08 运行结束
2015-08-19 14:10:45.009 【指令】收到回报指令 ID = -701166831 RefID = 1680
2015-08-19 14:10:45.015 【回报】512810491 : IC1508 - 已报单 1 价格:7993.2 开 卖
2015-08-19 14:10:45.046 【指令】收到回报指令 ID = -701166831 RefID = 1680
2015-08-19 14:10:45.049 【指令】收到回报指令 ID = -701166831 RefID = 1680
2015-08-19 14:10:45.053 【后台】IC08 运行结束
2015-08-19 14:10:45.061 【指令】收到成交回报指令 REFID = 1680 vol = 1
2015-08-19 14:10:45.068 【回报】512810491 : IC1508 - 已成交 1 价格:8016.0 开 卖