交易时段在最后一根bar上OnBar触发的BarStatus取值为1是什么原因?
2021-12-17 15:03

【问题描述】

在交易时段,最后一根 bar 上,OnBar 中,用 BarStatus==2 进行判断,然后下单,发现实盘中会有信号闪烁的情况。

经跟踪排查,发现 OnBar 中 BarStatus 会不定时出现值为 1 的情况,似乎加载的公式越多,代码逻辑越复杂,出现频率越高。

问在线客服,客服说我对 BarStatus 理解有误,不能这么写,让我到论坛询问。

那么问题来了,请问: BarStatus==2 是否能作为实盘交易判断条件?

 

【测试方式】

交易时,当 BarStatus 值不为 2 时,控制台输出当前 bar索引,时间和 BarStatus 值。

测试代码如下:


    OnBar(ArrayRef<Integer> indexs)
    {
        If(BarStatus!=2)
            Print(Text(CurrentBar)+","+TimeToString(CurrentTime,True)+",BarStatus="+text(BarStatus));
    }


【测试截图】

图中已清除加载历史数据时值为1的输出。

如图控制台输出,10s 一根bar,在 14:20:22 和 14:24:22 秒各出现值为1的情况,之后直到收盘值都为2。

评论区
cidens

谢谢你的回答,这个回答很专业。

感觉 TB 不适合编程小白,很容易被过时的文档和不专业的客服带坑里去。

2021-12-17 17:08
顶部