交易时段在最后一根bar上OnBar触发的BarStatus取值为1是什么原因?
【问题描述】
在交易时段,最后一根 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。
谢谢你的回答,这个回答很专业。
感觉 TB 不适合编程小白,很容易被过时的文档和不专业的客服带坑里去。