日线多品种交易时,三个数据源[0,1,2]在同一天的bar上:
1、在一个range 或 data[i] 循环中,假设tick驱动onbar的顺序为0,1,2
2、数据源1前日marketposition==1,今日onbar平仓后marketposition==0
以下代码执行过程:
数据源0被第一个tick驱动onbar,执行了range[0:2],读取数据源1的marketposition==1(此时数据源1的tick还未触发公式运行)
数据源1被第二个tick驱动onbar,执行了range[0:2],数据源1的marketposition被改变,marketposition==0
数据源2被第三个tick驱动onbar,执行了range[0:2],读取数据源1的marketposition==0
因为执行顺序的关系,公式两次执行数据源1获取的信号不相同,出现了信号闪烁,这个逻辑是否有问题,要如何处理?谢谢
是有这种情况发生,简单点就是都取[1]固定处理
当前bar处理也行,就是要理好先后逻辑顺序。
所以我之前上专题课的时候都强烈建议过,其他周期只是用于计算指标,最后的信号结果和持仓标志都统一放在最小周期的bar上,这样就不会冲突
不知道你认真学习过没
在日线多数据源加载一个公式上回测,理论上每个bar只运行一次,但实际过程中有的bar会运行多次,这是什么原因呢?
相关问题的图片已经新开贴