Pine Script报Mismatched input错误 期待无续行行尾问题求助
错误原因
你遇到的Mismatched input 'strategy.entry' Expecting 'end of line without line continuation'报错由以下语法问题导致:
- Pine Script v5 中条件判断关键字必须为全小写
if,你的代码里使用了大写开头的If,解释器无法识别为条件块起始标记,会默认该行是独立语句应当直接结束 - 由于
If未被识别为块声明,下一行缩进书写的strategy.entry会被判定为非法的行延续内容,直接触发语法报错 - 代码还存在两个隐藏语法/逻辑问题:一是开空单参数错写为大写开头的
strategy.Short,正确枚举值为全小写strategy.short;二是缺少策略必填的strategy()初始化声明,修复前述报错后这两个问题会阻止脚本正常运行。
修复方案
- 将所有大写开头的
If替换为全小写if - 修正开空参数为
strategy.short - 在版本声明行下补充
strategy()初始化配置 - 保持if块内执行语句相对if行缩进4个空格(原有缩进格式符合要求,无需调整)
修复后可运行完整代码
//@version=5 strategy("MACD Trading Strategy", overlay=false) fastL = 12 slowL = 26 macdL = 9 MACD = ta.ema(close, fastL) - ta.ema(close, slowL) signal = ta.ema(MACD, macdL) plot(MACD, title="MACD_line", color=color.blue) plot(signal, title="signal_line", color=color.orange) if MACD[1] < 0 and MACD > MACD[1] strategy.entry("Long", strategy.long) if MACD[1] > 0 and MACD < MACD[1] strategy.entry("Short", strategy.short)
效果说明
将上述代码粘贴到Pine Script编辑器中重新加载,即可消除语法报错,策略会按照MACD零轴下金叉开多、零轴上死叉开空的逻辑正常运行。
内容的提问来源于stack exchange,提问作者BobB
相关产品推荐
相关产品推荐

