Pine Script中水色线(Aqua)形成逻辑及xATRTrailingStop解析
JL ATR + Volume Spikes 脚本水色线(xATRTrailingStop)机制解析
一、xATRTrailingStop 核心取值规则
基于JL脚本的典型实现逻辑,xATRTrailingStop是动态单向跟踪的止损/止盈基准值,取值规则如下:
- 初始赋值:脚本运行的第一根有效K线,
xATRTrailingStop通常被初始化为当前收盘价,或基于首根K线ATR计算的偏移价(不同版本略有差异,核心逻辑统一)。 - 上涨趋势更新:当当前K线收盘价 > 上一根K线的
xATRTrailingStop时,新值取两者的较大值:- 上一根K线的
xATRTrailingStop(确保止损线不会反向回落) - 当前收盘价 - (ATR值 × 乘数)(基于ATR波动幅度计算的向下偏移止损位)
- 上一根K线的
- 下跌趋势更新:当当前K线收盘价 < 上一根K线的
xATRTrailingStop时,新值取两者的较小值:- 上一根K线的
xATRTrailingStop(确保止损线不会反向回升) - 当前收盘价 + (ATR值 × 乘数)(基于ATR波动幅度计算的向上偏移止损位)
- 上一根K线的
- 盘整状态:若收盘价等于上一根的
xATRTrailingStop,则保持上一根的数值不变。
对应核心代码逻辑(以Pine Script为例):
xATR = ta.atr(14) // 计算14周期ATR multiplier = 1.0 // 自定义乘数,可调整 xATRTrailingStop = 0.0 xATRTrailingStop := close > xATRTrailingStop[1] ? math.max(xATRTrailingStop[1], close - xATR * multiplier) : close < xATRTrailingStop[1] ? math.min(xATRTrailingStop[1], close + xATR * multiplier) : xATRTrailingStop[1]
二、水色线完整生成流程
水色线本质是xATRTrailingStop的可视化呈现,完整生成步骤为:
- ATR基础计算:先通过
ta.atr(length)计算指定周期的平均真实波幅,这是决定水色线偏移幅度的核心指标(波幅越大,止损偏移越宽)。 - 初始线生成:在第一根有效K线,初始化
xATRTrailingStop为收盘价(或收盘价±ATR×乘数的初始值),作为水色线的起点。 - 逐K线动态更新:每根新K线生成时,按照上述
xATRTrailingStop的取值规则更新数值,保证线的单向跟踪特性——上涨时只上移或持平,下跌时只下移或持平。 - 可视化绘制:将逐K线计算得到的
xATRTrailingStop序列绘制成水色线,直观展示跟随价格波动的动态跟踪位。
内容的提问来源于stack exchange,提问作者g17
相关产品推荐
相关产品推荐

