Pine Script编译报错:'range'无法用作变量或函数名
解决Pine Script v5编译错误:'range'无法用作变量或函数名
错误原因
range是Pine Script v5的内置函数/关键字(用于生成数值范围序列),因此不能将其用作自定义变量名,这是触发编译错误的直接原因。
解决方案步骤
- 重命名冲突变量:把所有使用
range的地方替换为自定义名称,比如bar_range或price_range。 - 修复其他语法问题:原脚本还存在两处额外错误,需一并修正:
bgcolor是绘图函数,无返回值,不能用bgcolor[1]进行索引,需调整背景色的触发逻辑。label.new语句末尾缺少闭合括号,导致语法不完整。
修正后的完整代码
//@version=5 indicator('My Script') // 计算振幅(重命名变量为bar_range) bar_range = high - low // 定义信息框显示的内容 info = "开盘价: " + tostring(open) + "\n" + "最高价: " + tostring(high) + "\n" + "最低价: " + tostring(low) + "\n" + "振幅: " + tostring(bar_range) + "\n" + "成交量: " + tostring(volume) // 当鼠标悬停在当前K线时显示背景色 bgcolor(barstate.ishovered, color.new(color.red, 50)) // 当鼠标悬停在当前K线时,显示信息框 label.new(bar_index, high, text=info, xloc=xloc.bar_time, yloc=yloc.abovebar)
关键修改说明
- 将
range变量改为bar_range,避免与内置关键字冲突。 - 移除无效的
not nz(bgcolor[1])判断,直接用barstate.ishovered控制背景色显示。 - 给
label.new补上末尾的闭合括号,确保语法完整。
内容的提问来源于stack exchange,提问作者fox Des
相关产品推荐
相关产品推荐

