设为首页收藏本站

 找回密码
 注册
查看: 785|回复: 0
打印 上一主题 下一主题

请教:请问以下代码是否会造成信号闪烁,及重复发单等问题 [复制链接]

Rank: 2

精华
0
UID
238785
积分
64
帖子
21
主题
16
阅读权限
30
注册时间
2016-8-14
最后登录
2022-12-8
跳转到指定楼层
1#
发表于 2020-5-26 17:04:25 |只看该作者 |倒序浏览
本帖最后由 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);
              }
       }
}
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-4 04:11

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部