OnBar(ArrayRef<Integer> indexs)
{
print(DateToString(Date));
}
多图层的时候记录日志,假如有20个图层的日K线,如果每个图层都驱动运行一次OnBar的代码,应该print 20次。但实际发现是打印1到3次,这个怎么理解?
你可以发一下图层内容,什么品种几个图层,我建议你可以发4个图层的,这样方便判断
而且你这种输出内容你看的清吗?
不如print(Symbol);
在历史K线上,4个品种,每根bar print 运行了3次。增加到40个品种,print语句最多也是运行3次,而不会每个图层都驱动运行一次。
2点:
1.如果你用的也是你上面的代码,那么你其实根本没用到跨图层
2.为什么有的看上去触发了几次呢?因为是时间不对齐的情况下,自己或者其他图层额外触发的当前执行
print(DateToString(Date));
你这一个句子相当于只是data0
data0.print(DateToString(Date));
黄金、豆粕21:00点一次
工业硅9:00一次
500中证9:30一次
合计3次
明白了,感谢老师
如果要把data0,data1,data2, data3按某个指标A排序,由于21:00触发时,黄金和豆粕取到当天的K线,而工业硅和中证500取到的是前一天的K线。而9:30触发时,取到的是全部是当天的K线,这样是不是会造成回测时信号闪烁?
如果你只是多数据源,不涉及相关性操作,无所谓
如果有相关性,就要做一些特定处理,这个要根据策略逻辑来
我印象中,老刘或者老王的视频,有专门的事情谈过类似的场景
可以找了看看