以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  4.3版本有漏单的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=156742)

--  作者:滚雪球
--  发布时间:2017/8/11 10:27:11
--  4.3版本有漏单的问题
运行环境windows 2008 32位 + 金字塔32位4.3版本 30分钟周期,3秒轮询一次,同时做35个品种

之前用4.22有重复下单的问题,在你们指导下升级到4.3,重复下单的问题是彻底解决了,但是现在又有漏单的问题,我不知道这个问题4.22有没有,但是4.3肯定有
具体情况是:
我的策略是一个非多即空的策略,无论是多空,不存在不满足开仓条件的情况,所以如果没有开仓,那一定和策略本身无关。
有时候漏了通过重启策略,补数据折腾几下之后又可以开,但有时无论重启策略还是补数据都无济于事。
从预警信号看,就是平了之后无法再开。我的代码大致是这样:


手数:=1;
LOST:=0;
IF THOLDING2>0 THEN BEGIN
 LOST:=TAVGENTERPRICE-CLOSE; //多头损失点数
END 
IF THOLDING2<0 THEN BEGIN
 LOST:=CLOSE-TAVGENTERPRICE; //空头损失点数
END

频繁交易限制条件:=TENTERBARS>0 OR LOST>5*MINDIFF;

开多条件:=C>MA(C,10);
开空条件:=C<MA(C,10);

平空条件:=C>MA(C,10) AND 频繁交易限制条件;
平多条件:=C<MA(C,10) AND 频繁交易限制条件;

平空:TSELLSHORT(平空条件 AND TSELLHOLDING(1)>0 ,手数,LMT,CLOSE+2*MINDIFF);
平多:TSELL(平多条件 AND TBUYHOLDING(1)>0,手数,LMT,CLOSE-2*MINDIFF);

开多:TBUY(开多条件 AND THOLDING2=0 AND TISREMAIN(0)=0,手数,LMT,CLOSE+2*MINDIFF);
开空:TBUYSHORT(开空条件 AND THOLDING2=0 AND TISREMAIN(0)=0,手数,LMT,CLOSE-2*MINDIFF);

我不知道是否和那个“频繁交易限制条件”有关,因为我看到一个品种,平仓以后很久没开,但到了10点整的时候又开了,我是30分钟周期,可是我并没有限制开仓,
我的限制条件是加在平仓条件上。再说我是用的轮询,不是K线走完,难道金字塔按照K线走完给我处理的,否则为什么不立即开,要等到整点的时候呢?


--  作者:gxx978
--  发布时间:2017/8/11 10:53:34
--  

tholding2表示的是实际持仓,平仓后,可能并不是立即为0的,所以开仓的条件并没有满足。建议使用debugout输出开仓的条件看下,看是否满足。


--  作者:yukizzc
--  发布时间:2017/8/11 11:09:02
--  

建议您借助交易日只以及debugfile进行自我调试,工作人员这边也会进行测试跟踪

但碍于时间安排上可能不能很及时回复您,还请理解


--  作者:滚雪球
--  发布时间:2017/8/11 11:16:56
--  
我是非多即空的条件,并且设置了20秒撤单,但不会自动追单,因为只要一撤立即就能满足一个条件,没有必要自动追
所以如果是漏单,应该不会是不满足条件,但从预警列表中看,我的PP合约9点35平的,到10点整才开,我不明白为什么
平了没有立即产生信号,如果是不满足条件,那有可能是金字塔没有收到平仓成功的回报,但过了25分钟又开了我也不知道为什么
中间我补数据,重启策略都没见效

--  作者:wenarm
--  发布时间:2017/8/11 13:44:46
--  
建议你增加debugfile进行跟踪调试。否者这种凭空猜测没有任何意义
--  作者:yukizzc
--  发布时间:2017/8/11 13:56:01
--  

同一条语句在一根k上只会执行一次,你撤单后原来的平仓命令不会再去执行的。

追撤单里你要把追单也给使用上,才能在撤单后继续把平仓给发出


--  作者:滚雪球
--  发布时间:2017/8/11 14:29:20
--  
我是用的轮询怎么一根K线只执行一次呢?我设置的3秒轮询一次,应该是下一个3秒就会再执行对不对,我的周期是30分钟,一根K线上应该会执行10次才对呀
你说的这个应该是另一个问题,现在是已经平了开不了仓,并不是平不了仓

--  作者:滚雪球
--  发布时间:2017/8/11 14:33:15
--  
这个问题并不总是出现,今天下午到现在就没出现过,感觉并不是逻辑有什么问题,只是某些情况下触发
--  作者:滚雪球
--  发布时间:2017/8/11 14:37:50
--  
因为预警哪里没有信号,所以开不出仓肯定是条件不满足,但我这边开仓条件是非多即空的条件所以肯定是满足的,
如果要出问题就是 THOLDING2=0 AND TISREMAIN(0)=0 这两个函数 
你们说要debug也没问题,我把开仓条件和THOLDING2,TISREMAIN(0)都输出一下