MA (5 lines with labels)

indicator(title="Multi MA (5 lines with labels)", shorttitle="5MA", overlay=true)
// === 参数设置 ===
show_prices = input.bool(true, "显示价格标签")
distance = input.int(2, "标签距离")
ma1_enable = input.bool(true, "启用 MA1")
ma1_len = input.int(9, "MA1 周期")
ma1_color = input.color(color.red, "MA1 颜色")
ma2_enable = input.bool(true, "启用 MA2")
ma2_len = input.int(50, "MA2 周期")
ma2_color = input.color(color.green, "MA2 颜色")
ma3_enable = input.bool(true, "启用 MA3")
ma3_len = input.int(100, "MA3 周期")
ma3_color = input.color(color.blue, "MA3 颜色")
ma4_enable = input.bool(true, "启用 MA4")
ma4_len = input.int(150, "MA4 周期")
ma4_color = input.color(color.orange, "MA4 颜色")
ma5_enable = input.bool(true, "启用 MA5")
ma5_len = input.int(200, "MA5 周期")
ma5_color = input.color(color.black, "MA5 颜色")
// === 计算 MA ===
ma1 = ma1_enable ? ta.sma(close, ma1_len) : na
ma2 = ma2_enable ? ta.sma(close, ma2_len) : na
ma3 = ma3_enable ? ta.sma(close, ma3_len) : na
ma4 = ma4_enable ? ta.sma(close, ma4_len) : na
ma5 = ma5_enable ? ta.sma(close, ma5_len) : na
// === 绘制线条 ===
plot(ma1, title="MA1", color=ma1_color, linewidth=2)
plot(ma2, title="MA2", color=ma2_color, linewidth=2)
plot(ma3, title="MA3", color=ma3_color, linewidth=2)
plot(ma4, title="MA4", color=ma4_color, linewidth=2)
plot(ma5, title="MA5", color=ma5_color, linewidth=2)
// === 绘制右侧价格标签 ===
label_dist = time + math.round(ta.change(time) * distance)
make_label(_val, _len, _color) =>
if not na(_val)
txt = show_prices ? "MA " + str.tostring(_len) + " - " + str.tostring(math.round_to_mintick(_val)) : "MA " + str.tostring(_len)
label.new(label_dist, _val, text=txt, xloc=xloc.bar_time, color=_color, textcolor=_color, style=label.style_none, size=size.normal)
if barstate.islast
make_label(ma1, ma1_len, ma1_color)
make_label(ma2, ma2_len, ma2_color)
make_label(ma3, ma3_len, ma3_color)
make_label(ma4, ma4_len, ma4_color)
make_label(ma5, ma5_len, ma5_color)
Script que requiere invitación
Solo los usuarios autorizados por el autor pueden acceder a este script. Tendrá que solicitar y obtener permiso para utilizarlo. Normalmente se concede previo pago. Para obtener más información, siga las instrucciones del autor o póngase en contacto directamente con Atommy1125.
TradingView NO recomienda pagar o utilizar un script a menos que confíe plenamente en su autor y entienda cómo funciona. También puede encontrar alternativas gratuitas de código abierto en nuestros scripts de la comunidad.
Instrucciones del autor
Exención de responsabilidad
Script que requiere invitación
Solo los usuarios autorizados por el autor pueden acceder a este script. Tendrá que solicitar y obtener permiso para utilizarlo. Normalmente se concede previo pago. Para obtener más información, siga las instrucciones del autor o póngase en contacto directamente con Atommy1125.
TradingView NO recomienda pagar o utilizar un script a menos que confíe plenamente en su autor y entienda cómo funciona. También puede encontrar alternativas gratuitas de código abierto en nuestros scripts de la comunidad.