请教:请问以下代码是否会造成信号闪烁,及重复发单等问题 [开拓者 TB]
- 
						咨询内容:
						 本帖最后由 guanghui1999 于 2020-5-27 15:59 编辑 
						
 
 请教以下问题:
 1、下面代码是否会信号闪烁,包括在Tick线上、分钟线上,或小时线上,或日线上使用;如果去掉 If(Data0.Vol>0 && Data1.Vol>0),是否信号闪烁的可能性大大增加。
 2、是否会重复发单?
 5月26日实盘的情况(用了下面代码):
 用日巴交易,两个商品(IC2006和IC2009),用了开盘价判断(是公式里的Price用了开盘价,但已在上面If语句中用成交量>0作了限制),9点30分有交易信号:Data0(IC2006)看空,Data1(IC2009)看多(用的同一个图表,Data0和Data1各交易2手),但我没开TB,所以没有交易。我25日的持仓:Data0是2手多,Data1是2手空。我在5月26日下午约14:44开启了此策略的自动交易(日巴上),正常应该是平Data0的2手多,并开2手空仓,同时平Data1的2手空,并开2手多仓。但实际情况却是:没有平仓动作,Data0开了4手空,Data1开了4手多(见附图11和22的成交委托记录,都是同一时间成交。在TB“当日成交”里也看了是同一策略同一时间委托的)。
 3、委托为什么会延迟?
 5月27日,还是用日巴交易,正常应在9:30.00.000产生委托,为什么委托时间延后约4秒这么多?(请见截图33和44)我回看了当天的Tick数据,9:30:00:000时这两个商品都是有Tick,也有成交量的,(到底是哪造成的延迟呢?)
 4、以下代码是否还有其他问题,如因为是两个商品,Tick不一定同时到来,可能会出现延迟问题,或就算Tick同时到来,但有一个没有成交量,也会出问题等,请您帮助指正。如没有问题,也请您帮确认下。
 5、集合竞价和小节休息过滤是否写得对,对策略委托发单时间有影响吗?还有必要写入策略吗?
 以下是可能出问题的代码,其中A和B是根据历史巴数据计算出来的,能保证A>=B,且在当前巴是不变的:
 // 集合竞价和小节休息过滤
 If(!CallAuctionFilter()) Return;
 If(Data0.Vol>0 && Data1.Vol>0)
 {
 Price=Data0.Open*3+Data1.Open*2;
 
 If(Price>A)
 {
 If(Data1.MarketPosition<>1)
 {
 Data1.Buy(Lots1, Data1.Open);
 }
 If(Data0.MarketPosition<>-1)
 {
 Data0.SellShort(Lots0, Data0.Open);
 }
 }Else
 If(Price<B)
 {
 If(Data1.MarketPosition<>-1)
 {
 Data1.SellShort(Lots1, Data1.Open);
 }
 If(Data0.MarketPosition<>1)
 {
 Data0.Buy(Lots0, Data0.Open);
 }
 }
 } 附件: 你需要登录才可以下载或查看附件。没有帐号?注册
有思路,想编写各种指标公式,交易模型,选股公式,还原公式的朋友
可联系技术人员 QQ: 262069696  或微信号:cxh99cxh99  进行 有偿收费 编写!
(注:由于人数限制,QQ或微信请选择方便的一个联系我们就行,加好友时请简单备注下您的需求,否则无法通过。谢谢您!)
相关文章
- 
                        没有相关内容
                       

 
                     会员登录/注册
会员登录/注册