Pine Script出现Mismatched input 'Ciao'行末无换行续行错误如何解决
报错原因
- 语法结构不匹配:Pine Script不支持你写的
if 条件 赋值 else 赋值这种单行if语法,编译器解析到if close<=(SMA50)之后,预期后续是换行的代码块,结果读到了Ciao这个不符合预期的标识符,因此抛出输入不匹配的错误。 - 后续
plot函数末尾缺失右括号,也会引发语法报错。
修复方法
- 将原来的单行if判断替换为Pine Script支持的三元条件表达式,语法为
变量名 = 条件 ? 条件成立时的取值 : 条件不成立时的取值 - 补全
plot函数末尾的右括号 - 建议补充Pine Script版本声明,避免版本兼容问题
修复后的完整代码如下:
//@version=4 study("Il mio Script") Lenght=50 SMA50=sma(close, 50) SMA50DIV=SMA50-close High50=highest(SMA50DIV,Lenght) Low50=lowest(SMA50DIV,Lenght) // 改用三元表达式实现if-else逻辑 Ciao = close <= SMA50 ? -(100-(100/(Low50/SMA50DIV))) : (100-(100/(High50/SMA50DIV))) // 补全末尾的右括号 plot(Ciao, color=color.yellow, title="SHIFT50", linewidth=1, style=plot.style_line)
内容的提问来源于stack exchange,提问作者Sandrino
相关产品推荐
相关产品推荐

