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))
Script open-source
Nello spirito di TradingView, l'autore di questo script lo ha reso open source, in modo che i trader possano esaminarne e verificarne la funzionalità. Complimenti all'autore! Sebbene sia possibile utilizzarlo gratuitamente, ricordiamo che la ripubblicazione del codice è soggetta al nostro Regolamento.
Declinazione di responsabilità
Le informazioni e le pubblicazioni non sono intese come, e non costituiscono, consulenza o raccomandazioni finanziarie, di investimento, di trading o di altro tipo fornite o approvate da TradingView. Per ulteriori informazioni, consultare i Termini di utilizzo.
Script open-source
Nello spirito di TradingView, l'autore di questo script lo ha reso open source, in modo che i trader possano esaminarne e verificarne la funzionalità. Complimenti all'autore! Sebbene sia possibile utilizzarlo gratuitamente, ricordiamo che la ripubblicazione del codice è soggetta al nostro Regolamento.
Declinazione di responsabilità
Le informazioni e le pubblicazioni non sono intese come, e non costituiscono, consulenza o raccomandazioni finanziarie, di investimento, di trading o di altro tipo fornite o approvate da TradingView. Per ulteriori informazioni, consultare i Termini di utilizzo.