在5分钟周期上运行,调用任何周期都不会出现 交易信号闪烁的问题;
但是在10分钟周期上运行,调用15分钟数据,则会报交易信号闪烁的问题;
继续测试发现,调用大周期数据,必须是小周期的整数倍则不会报信号闪烁!!!
仅仅是调用大周期的 H[1] L[1] C[1] O ,为什么会出现这个问题!!!
请教一下, 如果我在大周期引用的close【2】,close【3】,也会因为切换了bar,也会导致数值发生改变么???
按照你说的 小周期是10分钟,大周期是45分钟
以九点开盘为起点,大周期的bar是9:00和9:45
小周期是9:00,9:10,9:20,9:30
到这里都没问题。
重点是9:40这根bar,前半根bar,也就是在9:45之前,它应该和9:00对齐。而9:45以后,它应该和9:45对齐。
也就是小周期上的bar,会和两根bar对齐。即使你用回溯数据,比如close【1】,因为切换了bar,也会导致数值发生改变。
这就是为什么建议一定要小周期是所有大周期的公约数的原因。只要产生这种分割,就会闪烁。
如果你有什么更好的建议,可以提出来。目前,按照你这种小周期不能整除大周期的做法,没有方便的解决方案。
理论上在1分钟周期上,加载多个周期,就可以解决上面的问题,
关键是如果这样操作,软件经常会无故死掉!!!!!
现在到好了,运行模型,1405版本直接死掉;
解决不了问题,就解决有问题的模型,思路果然清奇!!!!!
这不是问题,你本末倒置了。驱动机制就是这个原则,你违反驱动机制去写模型,还要反过来怪驱动机制?
写不来模型没必要硬写
tb的计算机制是用本数据周期【最小周期】数据做为数据源,可以理解;
但是在大周期引用的上一个周期的数据,和本数据周期【最小数据周期】无关;
例如
10分钟数据, 60分钟数据
不管以什么方式切片k线数据, 在60分钟数据上引用上一个周期数据, 与【当下周期】10分钟上的数据不存在任何数据映射关系!!!【不会出现错误】
同理,10分钟数据,45分钟数据, 在45分钟数据上引用上一个周期数据, 与【当下周期】10分钟上的数据不存在任何数据映射关系!!!【会出现错误】
出现的错误,是否是有未考虑的原因导致,请详查!!!
这种问题在跨周期的教程里早就说过了。
如果不是整数倍,那么不同图层之间可能存在交叉区域,一个图层的一根bar可能会对应另一个图层的多根bar,反过来也是一样的。这种情况下的回溯关系就会非常混乱。
课程里给出的建议就是无论你用多少个周期,最后都要找一个最小公约数作为基准周期,把所有的周期数据计算放到基准周期上处理。