今天发现信号闪烁了,虽然最后稳定了下来,但却让我怎么都没想明白逻辑。下图是我的平仓代码,信号就是发生在这段代码,我用的open价平仓,因为判断都是基于这根k线之前一根k线数据,结果他却闪烁了了好几次。代码用的tb旗舰版编写,运行也是在旗舰版,在这个判断之前有是否持有多仓判断,即marketposition==1的判断,在这根k线上第一次平仓信号发出后,逻辑上应该marketposition状态变为0才对,这样就不会发生再次进入平仓判断中,可为什么还是会进来呢?有什么方法或者技术处理(我是用了错误的函数吗?)可以规避这个问题吗?如果那位高手明白其中原理,还望告知。感谢!
说简单点:
1、自己用全局变量控制,不要用系统方案的默认序列变量处理业务逻辑
2、切片多周期
3、图表买卖buy/sell之类的,IF域条件必须永远恒定(不限于价格)
要能够自己重构TB默认的一系列方案
而非直接使用
逆向利用TB内置模型的缺陷
否则就是无解
之前不是跟你说过闪烁的问题吗?
因为没有用marketposition这种模式
简单推测一下:
1、
marketposition逻辑上应该是个序列变量
bar无记忆
2、
buy/sell这类函数 只要前面的IF域内值有变化,都触发闪烁
对操作的bar继续切片 找合理的切片状态
否则无解
已删
这种问题一般只能用程序员最基础的打断点debug方法去诊断