Pine Script中NA与AND逻辑运算异常问题咨询
解决Pine Script中NA参与AND逻辑运算的问题
问题原因
在Pine Script的逻辑运算规则里,只要and表达式中存在na值,整个运算结果就会直接返回na,不会继续判断其余条件,这和你预期的「NA时忽略该条件、继续验证其余表达式」逻辑不符。
解决方案
把每个条件分支里的na替换为true——当某个指标被禁用(返回na)时,相当于该条件无需参与判断,默认视为满足(true),这样and运算就只会验证那些启用的指标条件。
修改后的代码如下:
// ON/OFF Indicator // Buy Condition MACDonoffbuy = useMACD ? macdLine > 0 : true ADXonfoffbuy = useADX ? ADX > thradx : true RSIonoffbuy = useRSI ? rsi >= overbought : true Williamonoffbuy = useWilliam ? percentR >= -25 : true Squeezeronoffbuy = useSqueezer ? sqzOff : true // Sell Condition MACDonoffsell = useMACD ? macdLine < 0 : true ADXonfoffsell = useADX ? ADX > thradx : true RSIonoffsell = useRSI ? rsi <= overbought : true Williamonoffsell = useWilliam ? percentR <= -25 : true Squeezeronoffsell = useSqueezer ? sqzOff : true // Final Combination buy = MACDonoffbuy and ADXonfoffbuy and RSIonoffbuy and Williamonoffbuy and Squeezeronoffbuy sell = MACDonoffsell and ADXonfoffsell and RSIonoffsell and Williamonoffsell and Squeezeronoffsell
原理说明
- 当
useMACD这类开关变量为false时,对应条件返回true,不会干扰后续and运算的结果 - 所有启用的指标条件必须同时满足,才会让
buy或sell最终返回true
内容的提问来源于stack exchange,提问作者Ardani Hendarta
相关产品推荐
相关产品推荐

