Pine Script V4编译错误:plot与bool比较问题求解
问题解决思路:Pine Script V4编译错误处理
错误原因
你这里的核心问题是误用了plot()函数:
plot()是TradingView专门用来在图表上绘制线条、标记的可视化函数,它的返回值并非布尔类型,因此不能用== true来做条件判断,这就是编译器提示"类型不匹配"的直接原因。- 你的代码逻辑本意是判断
rx[1]和rd[1]这两个变量本身是否为true,完全不需要把它们传入plot()函数。
修正后的代码
直接去掉多余的plot()调用,使用变量本身做判断:
// 修正rx的条件判断 if (rx[1] == true) rx := true else rx := false // 修正rd的条件判断 if (rd[1] == true) rd := true else rd := false
更简洁的写法
因为布尔变量可以直接赋值,上述代码还能简化为:
// 直接将rx[1]的取值赋值给当前rx rx := rx[1] // 同理处理rd rd := rd[1]
额外注意事项
- 确保
rx和rd在代码初始化阶段被定义为布尔类型(比如rx = false),这样rx[1]的取值才是合法的布尔值,能正常参与条件判断。 - 如果你原本想通过
plot()的输出作为策略信号,这是完全错误的方向:plot()只是可视化工具,策略逻辑必须基于变量本身的取值,绘图是额外的展示步骤,不能用来驱动策略条件。
内容的提问来源于stack exchange,提问作者R.Hamud
相关产品推荐
相关产品推荐

