PineScript运行报Mismatched input ')' expecting ':'错误如何解决?
PineScript报错修复方案
错误产生原因
报错的核心原因是第198行的三元运算符语法不符合PineScript规范:
+ " t=" + (av_limitOrder ? "limit fp=")
PineScript要求三元运算符必须完整包含三个部分:判断条件 ? 条件成立时返回值 : 条件不成立时返回值,不能省略冒号和条件不成立的返回值。你的代码只写了判断条件和成立时的返回值,缺失了冒号和else分支的返回值,语法解析器扫描到当前括号的闭合符)时,预期应该出现的:没有匹配到,因此抛出Mismatched input ')' expecting ':'的错误。
修复方法
你只需要补全第198行三元运算符的else分支即可,else分支的返回值可以根据你的实际业务逻辑填写:
- 如果
av_limitOrder不成立时需要标识订单类型为市价单,可填写"market" - 如果不需要追加额外内容,直接填空字符串
""即可
修复后的参考代码如下:
if av_use alert(message="e=" + broker + " b=long q=" + tostring(tradePositionSize) + " s=" + pair + " t=" + (av_limitOrder ? "limit fp=" : "") // 这里的else返回值可根据你的业务调整 + " fsl=" + tostring(t_stop) + " ftp=" + tostring(t_target) + (av_gtdOrder != 0 and av_limitOrder ? gtdString : ""), freq=alert.freq_once_per_bar_close)
内容的提问来源于stack exchange,提问作者Trader_M
相关产品推荐
相关产品推荐

