以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  早上开盘时在昨日有持仓的情况下出现重复开仓  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=156685)

--  作者:滚雪球
--  发布时间:2017/8/10 9:12:44
--  早上开盘时在昨日有持仓的情况下出现重复开仓
开平仓的代码如下:

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

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

昨天有隔夜仓,今天早上开盘部分品种重复开仓,本来一个品种限定做一单,现在变成了两单,但并不是所有品种都重复开,开盘时间过后也没有见到重复开
会不会和未成交自动撤单追单有关?怎么解决?


--  作者:滚雪球
--  发布时间:2017/8/10 9:15:59
--  
发现了一个小问题,前几天TSELLHOLDING(0)改成TSELLHOLDING(1)的时候把TISREMAIN(0)也改成TISREMAIN(1)了,这两个数字含义完全不同,先改回看看
--  作者:滚雪球
--  发布时间:2017/8/10 9:53:42
--  
改了以后发现还是有重复下单的问题,而且和是否是开盘时间无关,应该是自动撤单追单造成的,我把下单设置那里改成只撤不追了,看看效果先
--  作者:gxx978
--  发布时间:2017/8/10 9:55:57
--  
tholding2表示的是实际持仓,会考虑未成交单的情况,你前面开仓1手,未成交,tholding2还是等于0,还会触发后面的开仓条件的。 另外你可以使用debugout输出tholding2的值,看下开仓时的值是多少。
[此贴子已经被作者于2017/8/10 9:58:19编辑过]

--  作者:滚雪球
--  发布时间:2017/8/10 10:24:13
--  
但是我设置了TISREMAIN(1)=0了,必须是tholding2和TISREMAIN(1)同时为0啊
我把那个ORDERQUEUE去了,这个指令根据以前的经验问题比较多,同时把撤单追单设置成只撤不追,让程序自己下,
等下午开盘再看看。
我感觉是开盘收盘这种行情波动剧烈成交量大的时候容易出问题,并不是总有问题,
所以从根本上讲是函数本身的问题,而不是哪里写错了

--  作者:滚雪球
--  发布时间:2017/8/10 10:35:59
--  
不行,怎么改都不行,下面是开平仓代码,条件可以用
平空开多条件:=C>MA(C,10);
平多开空条件:=C<MA(C,10);
类似这样的条件来代替测试,挂了34个品种,30分钟周期,1秒轮询,软件是阿里云windows 2008 32位+金字塔4.22 32位,你们试试看能否重现故障
问题主要是出在开盘收盘,盘中好像偶尔也有


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

开多1:TBUY(开多条件1 AND THOLDING2=0 AND TISREMAIN(0)=0,手数,LMT,CLOSE+2*MINDIFF);
开多2:TBUY(开多条件2 AND THOLDING2=0 AND TISREMAIN(0)=0,手数,LMT,CLOSE+2*MINDIFF);
开空1:TBUYSHORT(开空条件1 AND THOLDING2=0 AND TISREMAIN(0)=0,手数,LMT,CLOSE-2*MINDIFF);
开空2:TBUYSHORT(开空条件2 AND THOLDING2=0 AND TISREMAIN(0)=0,手数,LMT,CLOSE-2*MINDIFF);
[此贴子已经被作者于2017/8/10 10:37:17编辑过]

--  作者:滚雪球
--  发布时间:2017/8/10 11:27:47
--  
为避免过于频繁交易,我在平仓那里加了一个控制条件的,类似这样的,只限制平,不限制开
频繁交易限制条件:=TENTERBARS>0 OR LOST>5*MINDIFF;//下单后至少经历一个BAR或者亏损超过5跳

你们也可以加上,然后试一下
[此贴子已经被作者于2017/8/10 11:29:11编辑过]

--  作者:wenarm
--  发布时间:2017/8/10 13:09:35
--  
软件版本是多少?重启后台程序化重复下单?,是的化在最新版中已经修复。 可以升级回到最新的在看
[此贴子已经被作者于2017/8/10 13:11:09编辑过]

--  作者:滚雪球
--  发布时间:2017/8/10 14:54:40
--  
软件版本4.22,好像不光是重启以后重复下单,在开盘收盘的时候特别严重,其他时候也有,我改成每3秒轮询一次后好像好了一点点,但没有彻底解决
我先升级再说