OPEN-SOURCE SCRIPT
ATR EMA Bands (Kerry Lovvorn Style) - Fixed Scale

//version=5
indicator("ATR EMA Bands (Kerry Lovvorn Style) - Fixed Scale",
overlay = true,
scale = scale.right, // ⭐ 强制使用右侧价格刻度
precision = 2)
// ——— 参数 ———
src = input.source(close, "Source")
emaLength = input.int(34, "EMA Length")
atrLength = input.int(13, "ATR Length")
atrMult1 = input.float(1.0, "ATR ×1")
atrMult2 = input.float(2.0, "ATR ×2")
atrMult3 = input.float(3.0, "ATR ×3")
// ——— 计算 ———
ema = ta.ema(src, emaLength)
atr = ta.atr(atrLength)
// 上下轨
upper1 = ema + atr * atrMult1
upper2 = ema + atr * atrMult2
upper3 = ema + atr * atrMult3
lower1 = ema - atr * atrMult1
lower2 = ema - atr * atrMult2
lower3 = ema - atr * atrMult3
// ——— 绘图 ———
plot(ema, "EMA", color = color.white, linewidth = 2)
plot(upper1, "Upper 1×ATR", color = color.new(color.green, 0))
plot(upper2, "Upper 2×ATR", color = color.new(color.green, 30))
plot(upper3, "Upper 3×ATR", color = color.new(color.green, 60))
plot(lower1, "Lower 1×ATR", color = color.new(color.red, 0))
plot(lower2, "Lower 2×ATR", color = color.new(color.red, 30))
plot(lower3, "Lower 3×ATR", color = color.new(color.red, 60))
// ——— 可选:在当前 K 线上标记数值,方便你肉眼对比 ———
showDebug = input.bool(false, "Show Debug Labels (for checking value vs position)")
if showDebug
var label lb = na
if barstate.islast
label.delete(lb)
txt = "EMA: " + str.tostring(ema, format.mintick) + "\n" +
"U1: " + str.tostring(upper1, format.mintick) + "\n" +
"U2: " + str.tostring(upper2, format.mintick) + "\n" +
"U3: " + str.tostring(upper3, format.mintick)
lb := label.new(bar_index, upper1, txt, style = label.style_label_right, textcolor = color.white, color = color.new(color.black, 40))
indicator("ATR EMA Bands (Kerry Lovvorn Style) - Fixed Scale",
overlay = true,
scale = scale.right, // ⭐ 强制使用右侧价格刻度
precision = 2)
// ——— 参数 ———
src = input.source(close, "Source")
emaLength = input.int(34, "EMA Length")
atrLength = input.int(13, "ATR Length")
atrMult1 = input.float(1.0, "ATR ×1")
atrMult2 = input.float(2.0, "ATR ×2")
atrMult3 = input.float(3.0, "ATR ×3")
// ——— 计算 ———
ema = ta.ema(src, emaLength)
atr = ta.atr(atrLength)
// 上下轨
upper1 = ema + atr * atrMult1
upper2 = ema + atr * atrMult2
upper3 = ema + atr * atrMult3
lower1 = ema - atr * atrMult1
lower2 = ema - atr * atrMult2
lower3 = ema - atr * atrMult3
// ——— 绘图 ———
plot(ema, "EMA", color = color.white, linewidth = 2)
plot(upper1, "Upper 1×ATR", color = color.new(color.green, 0))
plot(upper2, "Upper 2×ATR", color = color.new(color.green, 30))
plot(upper3, "Upper 3×ATR", color = color.new(color.green, 60))
plot(lower1, "Lower 1×ATR", color = color.new(color.red, 0))
plot(lower2, "Lower 2×ATR", color = color.new(color.red, 30))
plot(lower3, "Lower 3×ATR", color = color.new(color.red, 60))
// ——— 可选:在当前 K 线上标记数值,方便你肉眼对比 ———
showDebug = input.bool(false, "Show Debug Labels (for checking value vs position)")
if showDebug
var label lb = na
if barstate.islast
label.delete(lb)
txt = "EMA: " + str.tostring(ema, format.mintick) + "\n" +
"U1: " + str.tostring(upper1, format.mintick) + "\n" +
"U2: " + str.tostring(upper2, format.mintick) + "\n" +
"U3: " + str.tostring(upper3, format.mintick)
lb := label.new(bar_index, upper1, txt, style = label.style_label_right, textcolor = color.white, color = color.new(color.black, 40))
Skrip open-source
Dengan semangat TradingView yang sesungguhnya, pembuat skrip ini telah menjadikannya sebagai sumber terbuka, sehingga para trader dapat meninjau dan memverifikasi fungsinya. Salut untuk penulisnya! Meskipun Anda dapat menggunakannya secara gratis, perlu diingat bahwa penerbitan ulang kode ini tunduk pada Tata Tertib kami.
Pernyataan Penyangkalan
Informasi dan publikasi ini tidak dimaksudkan, dan bukan merupakan, saran atau rekomendasi keuangan, investasi, trading, atau jenis lainnya yang diberikan atau didukung oleh TradingView. Baca selengkapnya di Ketentuan Penggunaan.
Skrip open-source
Dengan semangat TradingView yang sesungguhnya, pembuat skrip ini telah menjadikannya sebagai sumber terbuka, sehingga para trader dapat meninjau dan memverifikasi fungsinya. Salut untuk penulisnya! Meskipun Anda dapat menggunakannya secara gratis, perlu diingat bahwa penerbitan ulang kode ini tunduk pada Tata Tertib kami.
Pernyataan Penyangkalan
Informasi dan publikasi ini tidak dimaksudkan, dan bukan merupakan, saran atau rekomendasi keuangan, investasi, trading, atau jenis lainnya yang diberikan atau didukung oleh TradingView. Baca selengkapnya di Ketentuan Penggunaan.