欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → [求助]为啥开空后止损语句不起作用

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3504人关注过本帖树形打印复制链接

主题:[求助]为啥开空后止损语句不起作用

帅哥哟,离线,有人找我吗?
jason123
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:246 积分:0 威望:0 精华:0 注册:2015/7/20 9:05:58
[求助]为啥开空后止损语句不起作用  发帖心情 Post By:2015/8/19 13:36:03 [只看该作者]

止损代码如下
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





 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/8/19 13:39:50 [只看该作者]

 //空损:=SELLSHORT(1,B04,LIMITR,TAVGENTERPRICEEX(AC,PZ)+ZSDS,1);

 

你代码是这么写的??//是注释掉了,当然不执行。你这个变成条件满足去撤单而不是止损了

 

另外你debugfile输出下TAVGENTERPRICEEX(AC,PZ),DYNAINFO(7)这两个值就可以了,止损条件也就和这两个有关系

[此贴子已经被作者于2015/8/19 13:44:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
jason123
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:246 积分:0 威望:0 精华:0 注册:2015/7/20 9:05:58
  发帖心情 Post By:2015/8/19 13:46:31 [只看该作者]

空损是这样的,没有注释掉

 空损:=TSELLSHORT((TISREMAIN(0)=0 AND (THOLDING = (-1))),B04,LMT,TAVGENTERPRICEEX(AC,PZ)+ZSDS,0,AC,PZ);

我来debugfile输出TAVGENTERPRICEEX(AC,PZ),DYNAINFO(7)

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/8/19 13:53:09 [只看该作者]

TISREMAIN(0)=0 AND (THOLDING = (-1)))

你这条件如果有挂单的话,就不会止损了,并且你持仓必须是1手空单才会去止损。。。。这是您的想法吗

其实这两个可以不加的,你没有仓位时自然是止损不了的。


 回到顶部
帅哥哟,离线,有人找我吗?
jason123
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:246 积分:0 威望:0 精华:0 注册:2015/7/20 9:05:58
  发帖心情 Post By:2015/8/19 14:01:32 [只看该作者]

是我的想法,我在触发止损条件的时候,用了TCANCELEX(1,0,AC,PZ); 确保

TISREMAIN(0)=0 


还有目前的确是1手单,无论是空单还是多单,都是一手的


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/8/19 14:10:07 [只看该作者]

tholding如果你既有多又有空,他是相减的要

如果你只想取空仓数量,用TSELLHOLDING(N)这个

 这种后台不执行的问题,您必须做好调试输出,然后分析是哪个条件没成立

[此贴子已经被作者于2015/8/19 14:10:40编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
jason123
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:246 积分:0 威望:0 精华:0 注册:2015/7/20 9:05:58
  发帖心情 Post By:2015/8/19 14:42:51 [只看该作者]

2015-08-19 14:41:40.958       平空条件DYNAINFO(7):8148.40   A00:0   TAVGENTERPRICEEX:8171.80   SHORTX1:0  SHORT:0   A14:0   LONG1:1   THOLDING:-1   B01:0   TISREMAIN:0   THOLDING2:-1   A43:-1   B02:1   A15:0   A14:0   A15:0

应该满足条件了啊,可是触发不了止损信号啊????

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/8/19 14:51:44 [只看该作者]

DYNAINFO(7)-TAVGENTERPRICEEX(AC,PZ)>=ZSJJ    ZSJJ=20

DYNAINFO(7)-TAVGENTERPRICEEX(AC,PZ)<ZSJX

 

 

8148.4  -  8171.8   >=20  ????条件不满足啊


 回到顶部
帅哥哟,离线,有人找我吗?
jason123
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:246 积分:0 威望:0 精华:0 注册:2015/7/20 9:05:58
  发帖心情 Post By:2015/8/19 18:31:41 [只看该作者]

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???

看来不止损的原因在这里!!!!

 回到顶部
帅哥哟,离线,有人找我吗?
jason123
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:246 积分:0 威望:0 精华:0 注册:2015/7/20 9:05:58
  发帖心情 Post By:2015/8/19 18:33:08 [只看该作者]

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 开 卖

 回到顶部
总数 13 1 2 下一页