开拓者期货期权程序化系统交易论坛

标题: Barstatus==2时是否是有两个TICKS [打印本页]

作者: tlfund    时间: 2016-6-3 16:12:25     标题: Barstatus==2时是否是有两个TICKS

当未开盘时,也就是说交易所没来数据时,理论上每个BAR是一个TICK,今天测试发现唯独BARSTATUS==2时有两个TICK,软件就是这样的吧,这多出的1TICK定是有什么原因?是BARSTATUS==2时会自动多运行一遍?还是本身就有两个TICK,要做TICK模型,想弄清楚这点。
作者: 小米    时间: 2016-6-3 16:54:42

是什么公式代码的测试下得到此结论的?
作者: tlfund    时间: 2016-6-7 08:19:56

Vars
        Bool Trade_Time(False);
         
Begin
       
   If(BarStatus<2)   
      {SetGlobalVar2("tradetimedayticks",0);SetGlobalVar2("tradetimedate",0); }
          
   If(BarStatus==2 And TrueDate(0)==GetGlobalVar2("tradetimedate"))
      SetGlobalVar2("tradetimedayticks",GetGlobalVar2("tradetimedayticks")+1);
   
   If(BarStatus==2 And GetGlobalVar2("tradetimedayticks")>1)
     {Trade_Time=True;}
         
        Commentary("TradeTime= "+IIFString(Trade_Time,"True","False")+" TICKS= "+Text(GetGlobalVar2("tradetimedayticks")));
   
     SetGlobalVar2("tradetimedate",TrueDate(0));   
        //全天的TICKS>1后认为是交易时间  
   Return Trade_Time;
         
End

代码如上,有两处不明白
1。GetGlobalVar2("tradetimedayticks")每个BAR第一TICK都会被重置为0,按原意来说BARSTATUS==2时不应该,是否每个新BAR产生时,在STATU==2时都隐藏有一个STATUS==1的TICK?
2。非交易时注释上能看到GetGlobalVar2("tradetimedayticks")在最后一BAR值为1,其它为0。
请版主看下,是否最后BAR的处理有什么特殊之处?
作者: 小米    时间: 2016-6-7 09:09:15

tlfund 发表于 2016-6-7 08:19
Vars
        Bool Trade_Time(False);
         

并非在最后bar上有二个tick,而是TB的机制里,在新旧bar交替时,会将旧bar的最后一个tick与新bar的第一个tick一起合并运算一次。
也就是旧bar的最后一个ticK会重复再运算一遍,而此时该tick的barstatus的状态值是1
作者: htqh71091105    时间: 2019-5-23 09:59:19

用tick数据也是,每个tick变化时会和前一个tick合并运算一次吗?
作者: 小米    时间: 2019-5-23 11:36:40

htqh71091105 发表于 2019-5-23 09:59
用tick数据也是,每个tick变化时会和前一个tick合并运算一次吗?


作者: htqh71091105    时间: 2019-5-28 15:42:19

本帖最后由 htqh71091105 于 2019-5-28 15:44 编辑
小米 发表于 2019-5-23 11:36


If ( Vol > Vol[1] && Vol[1] > Vol[2] && O > O[1] && OpenInt > OpenInt[1] )  
                          {
                              myPrice = O ;
                              Buy(lots,myPrice);  
                          }如果在tick数据上这么写条件执行,信号会闪烁,会是什么问题?
作者: 小米    时间: 2019-5-28 16:03:54

htqh71091105 发表于 2019-5-28 15:42
If ( Vol > Vol[1] && Vol[1] > Vol[2] && O > O[1] && OpenInt > OpenInt[1] )  
                      ...

仅这一段的逻辑,不应该有信号消,查看其它逻辑吧。
作者: htqh71091105    时间: 2019-5-28 17:56:12

小米 发表于 2019-5-28 16:03
仅这一段的逻辑,不应该有信号消,查看其它逻辑吧。

请问下,交易时若用A函数写 是不是就不会有信号消失的问题了?
作者: 小米    时间: 2019-5-29 08:26:43

htqh71091105 发表于 2019-5-28 17:56
请问下,交易时若用A函数写 是不是就不会有信号消失的问题了?

A_sendorder直接对帐号下单,本身就没有信号标识的。所以不存在信号消失的问题。
作者: htqh71091105    时间: 2019-5-29 15:43:58

小米 发表于 2019-5-29 08:26
A_sendorder直接对帐号下单,本身就没有信号标识的。所以不存在信号消失的问题。 ...

您好:感谢您的回复,我还有些疑虑!我的策略是在tick数据上写的,我看到帮助档案里有A函数报单、撤单写法,里面有的撤单后要等5个tick后在开仓或平仓,是因为撤单后回报返回不及时,避免重复发单。若交易频率较高的话等不了5个tick,是不是就会有问题出现,是不是说在现有的条件下不能进行太高频率的交易?




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2