Pine Script代码报错:未声明标识符'long_above',求可编译修改
Pine Script 报错修复:未声明标识符 'long_above'
问题原因
Pine Script 要求所有变量必须在全局范围内完成初始化。你代码里的long_above和short_below仅在嵌套if代码块内赋值,当条件不满足时变量会处于未定义状态,外部调用时就会触发"Undeclared identifier"错误。
修改后的代码
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © nibedit2irtmtc //@version=5 indicator("My script", overlay = true) // 提前初始化变量为na(未可用值),确保全局范围内有定义 long_above = na short_below = na if high[2] > high[3] if low[3] > low[2] long_above = high[2] if high[2] > high[1] if low[2] < low[1] short_below = low[2] // 仅当long_above不为na时绘制形状,避免无效绘图 plotshape(ta.crossover(close, long_above) and not na(long_above), style = shape.triangleup, location = location.belowbar, color = color.green)
修改说明
- 提前用
na初始化long_above和short_below,保证变量在任何代码路径下都有定义 - 在
plotshape中添加not na(long_above)判断,避免当long_above未被赋值时绘制无效图形 - 额外添加
location和color参数,让三角形形状显示在K线下方并设置为绿色,提升可视化效果
内容的提问来源于stack exchange,提问作者Suraj Kumar
相关产品推荐
相关产品推荐

