请求排查:Trading View中TR<ATR时蜡烛变蓝指标代码无效问题
修正后的TR<ATR蜡烛变色指标代码
原代码的问题点:
- TR计算错误:真实波幅(TR)的正确定义是取「当前高低点差值」「当前高点与前收盘价差值的绝对值」「当前低点与前收盘价差值的绝对值」这三者的最大值,而非将高低差与另外两个值的最大值相加。
- ATR计算错误:
math.avg(tr, 14)是对当前TR值和数字14做平均,并非计算14周期的平均真实波幅。ATR需要对过去N期的TR值做移动平均,应使用专门的移动平均函数。 - plotcandle参数顺序错误:TradingView的
plotcandle()函数参数顺序为open, high, low, close,原代码顺序写反,导致蜡烛形态异常,颜色逻辑无法正常触发。
修正后的代码:
//@version=5 indicator("TR < ATR Color Change", overlay=true) // 使用内置函数获取正确的TR值,也可以手动计算:tr = math.max(high-low, math.abs(high-close[1]), math.abs(low-close[1])) tr = ta.tr() // 计算14周期ATR(内置函数直接获取,或用ta.sma(tr,14)做简单移动平均) atr = ta.atr(14) // 定义蜡烛颜色逻辑 candle_color = tr < atr ? color.blue : color.maroon // 正确参数顺序绘制蜡烛,可单独设置wick颜色(比如用灰色区分主体) plotcandle(open, high, low, close, color=candle_color, wickcolor=color.gray)
代码说明:
- 用
ta.tr()直接获取符合定义的真实波幅,避免手动计算出错; - 用
ta.atr(14)直接计算14周期的平均真实波幅,这是TradingView内置的标准ATR计算方式; - 修正
plotcandle的参数顺序,确保蜡烛形态正确; - 可单独设置烛芯颜色(示例用灰色),让蜡烛主体颜色变化更醒目。
内容的提问来源于stack exchange,提问作者Basu Subhabrata
相关产品推荐
相关产品推荐

