Pine Script特定区间多空策略报错:运算符类型不匹配咨询
问题原因
你遇到的错误是因为Pine Script不支持链式比较运算符(比如U15 < realC < U3这种写法)。当你写这种链式判断时,脚本会先计算U15 < realC,得到一个布尔值(series bool类型),然后尝试用这个布尔值和U3做比较——但<运算符要求两边都是数值类型(simple float),布尔值不符合要求,所以触发错误。
解决方法
把链式比较拆成两个独立的条件,用and连接,明确每个比较的对象都是数值:
修改后的代码如下:
if (not na(k) and not na(d)) // 多头入场条件 if (co and k < OverSold and is_uptrend and ((k - d) > 2 ) and (U15 < realC and realC < U3)) strategy.entry("Long", strategy.long, comment="Long") // 空头入场条件 if (cu and k > OverBought and is_downtrend and ((d - k) > 2) and (L15 > realC and realC > L3)) strategy.entry("Short", strategy.short, comment="Short")
核心修改点:
- 将
(U15 < realC < U3)改为(U15 < realC and realC < U3) - 将
(L15 > realC > L3)改为(L15 > realC and realC > L3)
这样每个比较都是数值和数值之间的判断,结果再通过and逻辑合并,就符合Pine Script的语法要求了。
内容的提问来源于stack exchange,提问作者Wherearewegoing
相关产品推荐
相关产品推荐

