Pine Script编译错误求助:未声明标识符'NT'
问题解决:Pine Script编译错误及日线级别显示优化
错误原因
代码中ta.change(NT)引用了未声明的变量NT,这是编译失败的直接原因。同时原代码未实现仅在日线级别显示指标的需求。
修正后的完整代码
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © cryptoweeknd //@version=5 indicator("Option Levels", overlay=true) // 仅在日线级别运行指标 isDaily = timeframe.isdaily // 判断是否为当前交易日 isToday = year(timenow) == year(time) and month(timenow) == month(time) and dayofmonth(timenow) == dayofmonth(time) // 阻力位和支撑位数值 R = 42491.6 S = 42293.85 // 输入选项:启用/禁用无交易区间 showNTZInput = input(true, "NO-TRADE ZONE -", inline="C1") var color_NTR = input.color(defval=color.new(color.blue, 0), title='阻力位颜色', inline="C1") var color_NTS = input.color(defval=color.new(color.blue, 0), title='支撑位颜色', inline="C1") var in_fill = input.bool(true, "填充区间", group='Option Levels', inline="C1") var NT_colorfill = input.color(color.new(color.red, 80), "无交易区间填充色", inline="C1") // 绘制阻力位和支撑位,仅满足条件时显示 NTR = plot(showNTZInput and isDaily and isToday ? R : na, title='无交易区间上沿', color=color_NTR, style=plot.style_line, linewidth=2) NTS = plot(showNTZInput and isDaily and isToday ? S : na, title='无交易区间下沿', color=color_NTS, style=plot.style_line, linewidth=2) // 填充区间:修复原错误,通过检测线条是否可见决定填充状态 fill(NTR, NTS, color=not na(NTR) and in_fill ? NT_colorfill : color.new(color.blue, 100))
关键修正点
- 修复编译错误:移除未定义的
ta.change(NT)判断,改用not na(NTR)检测线条可见性,控制填充显示 - 实现日线级别限制:添加
timeframe.isdaily判断,仅在日线图表中加载指标 - 简化逻辑:将
isToday判断简化为单行表达式,合并显示条件到plot函数中 - 优化可读性:给颜色输入项补充明确标题,方便配置
内容的提问来源于stack exchange,提问作者cryptoweeknd
相关产品推荐
相关产品推荐

