以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  [求助]改了止损代码,反而乱了  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=84167)

--  作者:jason123
--  发布时间:2015/8/19 11:35:01
--  [求助]改了止损代码,反而乱了
debugfile输出如下

2015-08-19 11:07:26.825       平空条件:7659.60   A00:0   KTLC:7681.78   SHORTX1:0  SHORT:1   A14:0   LONG1:0   THOLDING:1   B01:0   TISREMAIN:0   THOLDING2:1   A43:-1   B02:1   A15:0   A14:0   A15:0

A43是Tbuyshort 开空后标记为负的,可现在 THOLDING:1  A43:-1 乱了

出现这个问题是因为今天早上我修改了止损代码,以下是开多后止损代码
IF (Tholding>0) AND(TAVGENTERPRICEEX(AC,PZ)-DYNAINFO(7)>=ZSJJ) AND (TAVGENTERPRICEEX(AC,PZ)-DYNAINFO(7)<ZSJX)

增加了 Tholding>0,因为原来在开多报单后,没有成交的情况下TAVGENTERPRICEEX(AC,PZ)=0,所以触发止损的条件乱了,早上想加上Tholding>0,确保在有成交的情况下 才触发止损,谁知,这样一来,原来的多空操作信息都乱了,求教解决的方法???


--  作者:yukizzc
--  发布时间:2015/8/19 13:23:25
--  

不需要加tholding>0这个条件的,你之前的问题是止损条件成立然后去撤单操作,你那个代码根本不是止损。

 

下面是你之前的代码,tcancelex是撤单,不是平仓

IF (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);