以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  [求助]为啥把自己的单都错误撤了呢  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=84339)

--  作者:jason123
--  发布时间:2015/8/24 10:14:05
--  [求助]为啥把自己的单都错误撤了呢
如果有做空信号,先撤掉相反方向的平空和开多未成交的委托单,代码如下
TCANCELEX(1,4,AC1,PZ);
TCANCELEX(1,1,AC1,PZ);

而且,如有没有平仓的多单,止损50个点,

IF (TREMAINQTY(2,AC1,PZ)>0 AND (TAVGENTERPRICEEX2(AC1,PZ,0)-DYNAINFO(7)>=ZSDS))then BEGIN
TSELL(1,TBUYHOLDINGEX(AC1,PZ,1),MKT,0,0,AC1,PZ);
END

。。。。。。
可最终的结果,是把做空的单都撤销了,为啥呢?

--  作者:十世
--  发布时间:2015/8/24 10:26:28
--  

1、首先你的策略逻辑有问题

2、建议客户先从图表基础的熟悉过后再转后台,如果直接转后台,一定要学会基本的调试debugfile。具体的问题不是看这几行代码就能找出原因。

你可以自己把各个条件自己输出看看,是哪个导致的。


--  作者:jason123
--  发布时间:2015/8/24 10:30:51
--  
求教 这个策略逻辑问题在哪里?
我图表已经比较熟悉了,一直在debugfile输出中间变量

--  作者:十世
--  发布时间:2015/8/24 10:47:43
--  

TCANCELEX(1,1,AC1,PZ);

前面的这个是撤销“开多”单  

 

TREMAINQTY(2,AC1,PZ)>0

说明你现在有未成交的 ”平多“单

 

TSELL(1,TBUYHOLDINGEX(AC1,PZ,1),MKT,0,0,AC1,PZ);

而你在执行平多 指令

 

你不觉得你开多、平多这两个指令的条件组合有问题吗?