无法解决‘输入处存在语法错误:换行’问题求助
问题排查与修复方案
核心报错原因
plotshape参数错误:Pine Script v5中plotshape的第一个参数必须是条件序列,不能直接传入字符串标签,标签需通过title参数指定- 缩进语法错误:
else语句必须与对应的if语句对齐,不能缩进在plotshape代码块内 - 表达式逻辑错误:
abs(open[1]) - close[1]写法错误,应改为abs(open[1] - close[1])(正确计算前一根K线的实体大小)
修复后的完整代码
//@version=5 indicator("Ell8 BEC", overlay=true) var float prevBearSize = na var float currBullSize = na if close[2] < open[2] prevBearSize := abs(close[2] - open[2]) if open[0] < close[0] currBullSize := abs(close[0] - open[0]) // 提取条件变量,提升可读性 bullishCondition = open[0] < close[0] and open[1] == close[2] and close[1] < open[1] and prevBearSize * 2 < abs(open[1] - close[1]) and currBullSize * 3 < prevBearSize if bullishCondition plotshape(series=bullishCondition, title="Bullish Pattern", style=shape.arrowup, textcolor=color.white, location=location.belowbar, color=color.green, size=size.large, transp=0) else plotshape(series=na) // 不满足条件时不显示形状
关键修复说明
- 将条件单独提取为变量
bullishCondition,避免长条件语句的语法混乱 - 修正
plotshape参数结构,用series传入显示条件,title指定图形标签 - 对齐
else与if的缩进,严格遵循Pine Script的语法规则 - 修复K线实体大小的计算逻辑,确保条件判断的准确性
内容的提问来源于stack exchange,提问作者Garth Cameron
相关产品推荐
相关产品推荐

