PineScript:Plotchar()用三元运算符出现输入不匹配错误如何解决?
PineScript中plotchar使用三元运算符报错的解决方法
你出错的核心原因是把plotchar的多个参数直接塞进了三元表达式的true分支里,PineScript的三元运算符要求左右分支必须返回单个同类型的值,这种写法违反了语法规则,所以会报「输入不匹配」错误。
正确写法示例
基础修正版
只把需要动态判断的目标值(这里是xUp或na)放在三元运算符中,plotchar的其他参数正常写在函数参数位:
k = ta.sma(close, 5) // 补充示例SMA参数,实际替换为你的代码 plotchar((k < 20) ? xUp : na, "Go Long", "▲", location.bottom, color.lime, size = size.tiny)
多参数动态切换版
如果需要根据条件切换更多参数(比如图标、颜色),可以给每个需要动态变化的参数单独加三元判断:
k = ta.sma(close, 5) plotchar( (k < 20) ? xUp : na, "Go Long", (k < 20) ? "▲" : "▼", // 示例:条件满足显示向上箭头,否则向下 location.bottom, (k < 20) ? color.lime : color.red, // 示例:条件满足显示绿色,否则红色 size = size.tiny )
关键规则
三元运算符的作用是返回单个值,不能用来包裹整个函数的多参数调用逻辑,所有动态判断都要针对plotchar的单个参数来做。
内容的提问来源于stack exchange,提问作者srt111
相关产品推荐
相关产品推荐

