최근 업데이트 : 2025년 12월 03일 16시 12분

트레이딩뷰

트레이딩뷰 이동평균선 리본 10개 + SMA/EMA 강제변환 지표 갯수 아끼기 코드

트레이딩뷰 무료플랜 사용하시는 분들은 지표갯수 제한이있어서 불편하실텐데

지표에 “이동평균 리본”을 사용 하시거나 아래의 파인스크립틀 추가 하셔서 사용하시면 지표 갯수를 아끼 실 수 있습니다.

일봉이상 SMA 일봉 미만 EMA로 자동변경옵션이 있는 코드입니다.

//@version=6
indicator("DECOZ SMA/EMA", shorttitle="DECOZ SMA/EMA", overlay=true, timeframe="", timeframe_gaps=true)

// === Helpers ===
ma(source, length, MAtype) =>
    switch MAtype
        "SMA"        => ta.sma(source,  length)
        "EMA"        => ta.ema(source,  length)
        "SMMA (RMA)" => ta.rma(source,  length)
        "WMA"        => ta.wma(source,  length)
        "VWMA"       => ta.vwma(source, length)
        => na

// Force rule: on Daily or higher -> SMA, below Daily -> EMA
force_auto_tf = input.bool(true, "SMA/EMA강제전환")

ma_auto(source, length, MAtype, forceAuto) =>
    forceAuto ? ((timeframe.isdaily or timeframe.isweekly or timeframe.ismonthly) ? ta.sma(source, length) : ta.ema(source, length)) : ma(source, length, MAtype)

// =======================
// MA [1]  (default: 5, GREEN)
// =======================
show_ma1   = input.bool(true,         "MA [1]", inline="MA1", display=display.data_window)
ma1_type   = input.string("SMA",      "", inline="MA1", active=show_ma1, options=["SMA","EMA","SMMA (RMA)","WMA","VWMA"])
ma1_source = input.source(close,      "", inline="MA1", active=show_ma1, display=display.data_window)
ma1_length = input.int(5,             "", inline="MA1", active=show_ma1, minval=1)
ma1_color  = input.color(color.green, "", inline="MA1", active=show_ma1, display=display.data_window)

// =======================
// MA [2]  (default: 20, RED)
// =======================
show_ma2   = input.bool(true,        "MA [2]", inline="MA2", display=display.data_window)
ma2_type   = input.string("SMA",     "", inline="MA2", active=show_ma2, options=["SMA","EMA","SMMA (RMA)","WMA","VWMA"])
ma2_source = input.source(close,     "", inline="MA2", active=show_ma2, display=display.data_window)
ma2_length = input.int(20,           "", inline="MA2", active=show_ma2, minval=1)
ma2_color  = input.color(color.red,  "", inline="MA2", active=show_ma2, display=display.data_window)

// =======================
// MA [3]  (default: 60, ORANGE)
// =======================
show_ma3   = input.bool(true,           "MA [3]", inline="MA3", display=display.data_window)
ma3_type   = input.string("SMA",        "", inline="MA3", active=show_ma3, options=["SMA","EMA","SMMA (RMA)","WMA","VWMA"])
ma3_source = input.source(close,        "", inline="MA3", active=show_ma3, display=display.data_window)
ma3_length = input.int(60,              "", inline="MA3", active=show_ma3, minval=1)
ma3_color  = input.color(color.orange,  "", inline="MA3", active=show_ma3, display=display.data_window)

// =======================
// MA [4]  (default: 120, PURPLE)
// =======================
show_ma4   = input.bool(true,          "MA [4]", inline="MA4", display=display.data_window)
ma4_type   = input.string("SMA",       "", inline="MA4", active=show_ma4, options=["SMA","EMA","SMMA (RMA)","WMA","VWMA"])
ma4_source = input.source(close,       "", inline="MA4", active=show_ma4, display=display.data_window)
ma4_length = input.int(120,            "", inline="MA4", active=show_ma4, minval=1)
ma4_color  = input.color(color.purple, "", inline="MA4", active=show_ma4, display=display.data_window)

// =======================
// MA [5]  (default: 200, GRAY)
// =======================
show_ma5   = input.bool(true,                      "MA [5]", inline="MA5", display=display.data_window)
ma5_type   = input.string("SMA",                   "", inline="MA5", active=show_ma5, options=["SMA","EMA","SMMA (RMA)","WMA","VWMA"])
ma5_source = input.source(close,                   "", inline="MA5", active=show_ma5, display=display.data_window)
ma5_length = input.int(200,                        "", inline="MA5", active=show_ma5, minval=1)
ma5_color  = input.color(color.rgb(128,128,128),   "", inline="MA5", active=show_ma5, display=display.data_window)

// =======================
// MA [6]  (default: 240, GRAY)
// =======================
show_ma6   = input.bool(false,                      "MA [6]", inline="MA6", display=display.data_window)
ma6_type   = input.string("SMA",                   "", inline="MA6", active=show_ma6, options=["SMA","EMA","SMMA (RMA)","WMA","VWMA"])
ma6_source = input.source(close,                   "", inline="MA6", active=show_ma6, display=display.data_window)
ma6_length = input.int(240,                        "", inline="MA6", active=show_ma6, minval=1)
ma6_color  = input.color(color.rgb(128,128,128),   "", inline="MA6", active=show_ma6, display=display.data_window)

// =======================
// MA [7]  (default: 240, GRAY)
// =======================
show_ma7   = input.bool(false,                     "MA [7]", inline="MA7", display=display.data_window)
ma7_type   = input.string("SMA",                   "", inline="MA7", active=show_ma7, options=["SMA","EMA","SMMA (RMA)","WMA","VWMA"])
ma7_source = input.source(close,                   "", inline="MA7", active=show_ma7, display=display.data_window)
ma7_length = input.int(240,                        "", inline="MA7", active=show_ma7, minval=1)
ma7_color  = input.color(color.rgb(128,128,128),   "", inline="MA7", active=show_ma7, display=display.data_window)

// =======================
// MA [8]  (default: 240, GRAY)
// =======================
show_ma8   = input.bool(false,                     "MA [8]", inline="MA8", display=display.data_window)
ma8_type   = input.string("SMA",                   "", inline="MA8", active=show_ma8, options=["SMA","EMA","SMMA (RMA)","WMA","VWMA"])
ma8_source = input.source(close,                   "", inline="MA8", active=show_ma8, display=display.data_window)
ma8_length = input.int(240,                        "", inline="MA8", active=show_ma8, minval=1)
ma8_color  = input.color(color.rgb(128,128,128),   "", inline="MA8", active=show_ma8, display=display.data_window)

// =======================
// MA [9]  (default: 240, GRAY)
// =======================
show_ma9   = input.bool(false,                     "MA [9]", inline="MA9", display=display.data_window)
ma9_type   = input.string("SMA",                   "", inline="MA9", active=show_ma9, options=["SMA","EMA","SMMA (RMA)","WMA","VWMA"])
ma9_source = input.source(close,                   "", inline="MA9", active=show_ma9, display=display.data_window)
ma9_length = input.int(240,                        "", inline="MA9", active=show_ma9, minval=1)
ma9_color  = input.color(color.rgb(128,128,128),   "", inline="MA9", active=show_ma9, display=display.data_window)

// =======================
// MA [10] (default: 240, GRAY)
// =======================
show_ma10   = input.bool(false,                    "MA [10]", inline="MA10", display=display.data_window)
ma10_type   = input.string("SMA",                  "", inline="MA10", active=show_ma10, options=["SMA","EMA","SMMA (RMA)","WMA","VWMA"])
ma10_source = input.source(close,                  "", inline="MA10", active=show_ma10, display=display.data_window)
ma10_length = input.int(240,                       "", inline="MA10", active=show_ma10, minval=1)
ma10_color  = input.color(color.rgb(128,128,128),  "", inline="MA10", active=show_ma10, display=display.data_window)


// === Compute lines (use '=' for first assignment) ===
ma1  = show_ma1  ? ma_auto(ma1_source,  ma1_length,  ma1_type,  force_auto_tf) : na
ma2  = show_ma2  ? ma_auto(ma2_source,  ma2_length,  ma2_type,  force_auto_tf) : na
ma3  = show_ma3  ? ma_auto(ma3_source,  ma3_length,  ma3_type,  force_auto_tf) : na
ma4  = show_ma4  ? ma_auto(ma4_source,  ma4_length,  ma4_type,  force_auto_tf) : na
ma5  = show_ma5  ? ma_auto(ma5_source,  ma5_length,  ma5_type,  force_auto_tf) : na
ma6  = show_ma6  ? ma_auto(ma6_source,  ma6_length,  ma6_type,  force_auto_tf) : na
ma7  = show_ma7  ? ma_auto(ma7_source,  ma7_length,  ma7_type,  force_auto_tf) : na
ma8  = show_ma8  ? ma_auto(ma8_source,  ma8_length,  ma8_type,  force_auto_tf) : na
ma9  = show_ma9  ? ma_auto(ma9_source,  ma9_length,  ma9_type,  force_auto_tf) : na
ma10 = show_ma10 ? ma_auto(ma10_source, ma10_length, ma10_type, force_auto_tf) : na

// === Plots ===
plot(ma1,  "MA [1]",  ma1_color,  display = show_ma1  ? display.all : display.none)
plot(ma2,  "MA [2]",  ma2_color,  display = show_ma2  ? display.all : display.none)
plot(ma3,  "MA [3]",  ma3_color,  display = show_ma3  ? display.all : display.none)
plot(ma4,  "MA [4]",  ma4_color,  display = show_ma4  ? display.all : display.none)
plot(ma5,  "MA [5]",  ma5_color,  display = show_ma5  ? display.all : display.none)
plot(ma6,  "MA [6]",  ma6_color,  display = show_ma6  ? display.all : display.none)
plot(ma7,  "MA [7]",  ma7_color,  display = show_ma7  ? display.all : display.none)
plot(ma8,  "MA [8]",  ma8_color,  display = show_ma8  ? display.all : display.none)
plot(ma9,  "MA [9]",  ma9_color,  display = show_ma9  ? display.all : display.none)
plot(ma10, "MA [10]", ma10_color, display = show_ma10 ? display.all : display.none)

파인스크립트로 지표를 추가하는 방법은 아래글을 참고해주세요.