设为首页收藏本站

 找回密码
 注册
查看: 2897|回复: 10

Barstatus==2时是否是有两个TICKS [复制链接]

Rank: 1

精华
0
UID
156065
积分
27
帖子
18
主题
9
阅读权限
10
注册时间
2011-10-10
最后登录
2020-4-6
发表于 2016-6-3 16:12:25 |显示全部楼层
当未开盘时,也就是说交易所没来数据时,理论上每个BAR是一个TICK,今天测试发现唯独BARSTATUS==2时有两个TICK,软件就是这样的吧,这多出的1TICK定是有什么原因?是BARSTATUS==2时会自动多运行一遍?还是本身就有两个TICK,要做TICK模型,想弄清楚这点。

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
发表于 2016-6-3 16:54:42 |显示全部楼层
是什么公式代码的测试下得到此结论的?

使用道具 举报

Rank: 1

精华
0
UID
156065
积分
27
帖子
18
主题
9
阅读权限
10
注册时间
2011-10-10
最后登录
2020-4-6
发表于 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的处理有什么特殊之处?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
发表于 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

使用道具 举报

Rank: 1

精华
0
UID
262765
积分
40
帖子
17
主题
1
阅读权限
10
注册时间
2018-2-28
最后登录
2019-6-4
发表于 2019-5-23 09:59:19 |显示全部楼层
用tick数据也是,每个tick变化时会和前一个tick合并运算一次吗?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
发表于 2019-5-23 11:36:40 |显示全部楼层
htqh71091105 发表于 2019-5-23 09:59
用tick数据也是,每个tick变化时会和前一个tick合并运算一次吗?

使用道具 举报

Rank: 1

精华
0
UID
262765
积分
40
帖子
17
主题
1
阅读权限
10
注册时间
2018-2-28
最后登录
2019-6-4
发表于 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数据上这么写条件执行,信号会闪烁,会是什么问题?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
发表于 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] )  
                      ...

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

使用道具 举报

Rank: 1

精华
0
UID
262765
积分
40
帖子
17
主题
1
阅读权限
10
注册时间
2018-2-28
最后登录
2019-6-4
发表于 2019-5-28 17:56:12 |显示全部楼层
小米 发表于 2019-5-28 16:03
仅这一段的逻辑,不应该有信号消,查看其它逻辑吧。

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

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
发表于 2019-5-29 08:26:43 |显示全部楼层
htqh71091105 发表于 2019-5-28 17:56
请问下,交易时若用A函数写 是不是就不会有信号消失的问题了?

A_sendorder直接对帐号下单,本身就没有信号标识的。所以不存在信号消失的问题。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

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

GMT+8, 2024-3-29 03:28

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部