Pine Script策略报错求助:'strategy'输入不匹配问题排查
交易策略代码报错修复:MFI超卖+200EMA开仓策略
问题说明
编写的交易策略逻辑为:当MFI处于超卖区间(<20)且收盘价高于200周期EMA时开多仓;当MFI脱离超卖区间或收盘价跌破200EMA时平仓。但代码运行报错:第2行:输入'strategy'不匹配,预期'无续行符的行尾'。
报错原因
Pine Script v5对代码缩进有严格要求,if语句块内的执行代码必须缩进(通常为4个空格)。原代码中strategy.entry和strategy.close未缩进,导致语法解析器混乱,错误提示指向了无关的第2行。
修复后的完整代码
//@version=5 strategy("MFI Oversold Above 200 EMA") // MFI超卖判断 mfi = money_flow_index(14) oversold = mfi < 20 // 200周期EMA ema200 = ema(close, 200) // 开多仓条件:MFI超卖且收盘价在200EMA上方 if oversold and close > ema200 strategy.entry("Long", strategy.long) // 平仓条件:MFI脱离超卖区间或收盘价跌破200EMA if not oversold or close < ema200 strategy.close("Long") // 绘制MFI指标 plot(mfi, title="MFI", color=color.yellow) // 绘制200EMA plot(ema200, title="200 EMA", color=color.blue) // 绘制开仓信号 plot(oversold and close > ema200, title="Buy", style=plot.style_cross, color=color.green, linewidth=3) // 绘制平仓信号 plot(not oversold or close < ema200, title="Sell", style=plot.style_cross, color=color.red, linewidth=3)
关键修复点
- 给
if语句块内的strategy.entry和strategy.close添加了4个空格的缩进,符合Pine Script v5的语法规范。 - 错误提示指向第2行是解析器的误判,实际问题出在未缩进的代码块上。
内容的提问来源于stack exchange,提问作者Olivia Moore
相关产品推荐
相关产品推荐

