onBar(ArrayRef<Integer> indexs)
{
noData = 0;
Range[i = 1:DataCount - 1]
{
If(Time != Data[i-1].Time)
{
noData = 1;
}
}
不是特别确定以上语言的意思,是否是这样:
当一个新的bar来临的时候,上一个股票跟当前股票的时间如果一致,那么就没有缺失数据。
感觉这样需要满足两个隐含假设:
1.bar来临的顺序应该是跟data的序号顺序一致才行,不知道实盘是不是这样。
2.time本身是带好几位数的精确时间,不同股票onbar的顺序不一致,这个time是否可以对齐。不知道内部机制是不是所有股票实盘的时候,onbar是同时并行运行的,一起接收tick,然后比较是否他们的time是对齐的。
好像加了这个会有反效果,如果其中某个品种的历史数据很短只有一个月,那么所有品种都会因为更早的数据无法对齐导致无法运行。
不知道有没有更好更合理的写法。
这个问题,期货有新上市的品种更麻烦,不知道如何解决
这个指的是强制所有品种的bar开盘时间都一样
不管是哪个图层驱动,都会检查一遍所有图层
另外time是开盘时间,如果不是tick级别,一般不会有精度问题。实在不行你round一下好了
因为一般来说这种多数据源的处理,不会是很小周期的,否则很难对齐