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 static/image/common/back.gif
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 static/image/common/back.gif
用tick数据也是,每个tick变化时会和前一个tick合并运算一次吗?

htqh71091105 发表于 2019-5-28 15:42:19

本帖最后由 htqh71091105 于 2019-5-28 15:44 编辑

小米 发表于 2019-5-23 11:36 static/image/common/back.gif


If ( Vol > Vol && Vol > Vol && O > O && OpenInt > OpenInt )  
                          {
                              myPrice = O ;
                              Buy(lots,myPrice);  
                          }如果在tick数据上这么写条件执行,信号会闪烁,会是什么问题?

小米 发表于 2019-5-28 16:03:54

htqh71091105 发表于 2019-5-28 15:42 static/image/common/back.gif
If ( Vol > Vol && Vol > Vol && O > O && OpenInt > OpenInt )  
                      ...

仅这一段的逻辑,不应该有信号消,查看其它逻辑吧。

htqh71091105 发表于 2019-5-28 17:56:12

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

请问下,交易时若用A函数写 是不是就不会有信号消失的问题了?

小米 发表于 2019-5-29 08:26:43

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

A_sendorder直接对帐号下单,本身就没有信号标识的。所以不存在信号消失的问题。
页: [1] 2
查看完整版本: Barstatus==2时是否是有两个TICKS