请教:请问以下代码是否会造成信号闪烁,及重复发单等问题 [开拓者 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或微信请选择方便的一个联系我们就行,加好友时请简单备注下您的需求,否则无法通过。谢谢您!)
相关文章
-
没有相关内容