์ฝ 3์ฃผ๊ฐ ํ๊ด์๋ จ ๋๋ฌ์,, ๊ฒฐ๊ณผ๋ ๋งค์ฐ ๋ง์กฑ์ด๊ณ , 3์ฃผ๊ฐ 10๋ฐฐ์ฐ๊ณ ์๋ จ ๋๋๊ณ ์ฌ๋ผ์ค๋ ๋ ๋ฐํ ๋ง๋จ ใ ใ ใ ใ ใ ใ
์ง๊ธ ์ฅ ์์ฃผ ๊ธฐ๋ชจ๋ ํ๋ฐ,,, ๊ฐ ์ ์ผ๋ก ์ง ์๋ฆฌ์์ ์์น๋ฉด ในใ ํฉ์ฒ๊ธธ ์ ์ฌ์ฐ ์ฒญ์ฐ๋จ
์ ์น์ง ๋ง์ , ์ด๊ฑฐ ์ธ์ฌ๋ ์ฐ์ , ์ด ์งํ๋ 1๋ถ๋ด์์๋ง ์๋ํจ, sma ์
๋๋ ์ดํ์ ๋งค๋งคํ๊ธฐ ๋๋ฌธํฌํฌํํใ กํํฌย
์ธ์ฌ๋ ๋ณธ์ธ ์ ๋ง ๋ง์ถฐ ์์์ ์ ์จ๋ณด์ , ๋ ์ด๊ฑธ๋ก ๊ธฐ๋ชจ๋ฝ ํ๊ณ ์์ผ๋๊น
๊ทธ๋ฆฌ๊ณ ์ฐจํธ ์ผ๊ทธ๋ฌ์ง๋๊ฑด ์ค์ ์์ ๊ฐ๊ฒฉ์ฐจํธ๋ง ์ค์ผ์ผ ๋๋ฅด๋ฉด ๋๋ค ์ด๊ฑฐ์ผ,
์์น์ง ๋ง๋ผ๋ผ๋ผ๋ผ๋ผ๋ผ๋ผย
//@version=6
indicator("Rainbow_SMA_Smooth_RightLabels", overlay=true)
// --- [์ ๋ ฅ์ฐฝ] ํ์ํ๋ ์๋ณ ํ์ฑํ ---
show1ย ย = input.bool(true,ย "1๋ถ๋ด ํ์", group="์ดํ์ ํ์ฑํ")
show5ย ย = input.bool(true,ย "5๋ถ๋ด ํ์", group="์ดํ์ ํ์ฑํ")
show15ย = input.bool(true,ย "15๋ถ๋ด ํ์", group="์ดํ์ ํ์ฑํ")
show60ย = input.bool(true,ย "1์๊ฐ๋ด ํ์", group="์ดํ์ ํ์ฑํ")
show240 = input.bool(true,ย "4์๊ฐ๋ด ํ์", group="์ดํ์ ํ์ฑํ")
showDย ย = input.bool(true,ย "์ผ๋ด ํ์", group="์ดํ์ ํ์ฑํ")
showWย ย = input.bool(true,ย "์ฃผ๋ด ํ์", group="์ดํ์ ํ์ฑํ")
// --- [๋ณด๊ฐ ํจ์] ๊ณ๋จ ํ์ ์ ๊ฑฐ ๋ฐ ๋ถ๋๋ฌ์ด ์ฐ๊ฒฐ ---
f_smooth_ma(string tf, int len, float tf_ms) =>
ย ย [m_curr, m_prev, t_start] = request.security(syminfo.tickerid, tf, [ta.sma(close, len), ta.sma(close, len)[1], time], lookahead=barmerge.lookahead_on)
ย ย float progress = math.min(1.0, (time - t_start) / tf_ms)
ย ย m_prev + (m_curr - m_prev) * progress
// --- [๋ผ๋ฒจ ํจ์] ์ฐจํธ ์ฐ์ธก ๋ ํ์ ---
f_draw_label(bool show, float val, string txt, color col) =>
ย ย var label lbl = na
ย ย if show and not na(val)
ย ย ย ย if barstate.islast
ย ย ย ย ย ย lbl := label.new(bar_index + 2, val, txt, color=color.new(col, 100), textcolor=col, style=label.style_label_left, size=size.small)
ย ย ย ย ย ย label.delete(lbl[1])
// ์์ ์ค์
color_upย ย = #00FF00 // ์์น
color_down = #FF0000 // ํ๋ฝ
color_none = #2A2E39 // ํก๋ณด
// --- 1. ์ดํ์ ๊ณ์ฐ ๋ฐ ํ๋กฏ ---
// 1๋ถ๋ด
s1_7 = ta.sma(close, 7), s1_25 = ta.sma(close, 25), s1_99 = ta.sma(close, 99)
c1 = close > s1_99 ? color_up : color_down
plot(show1 ? s1_7 : na, color=c1, linewidth=1), f_draw_label(show1, s1_7, "1๋ถ(7)", c1)
plot(show1 ? s1_25 : na, color=c1, linewidth=1), f_draw_label(show1, s1_25, "1๋ถ(25)", c1)
plot(show1 ? s1_99 : na, color=c1, linewidth=1), f_draw_label(show1, s1_99, "1๋ถ(99)", c1)
// 5๋ถ๋ด
s5_7 = ta.sma(close, 35), s5_25 = ta.sma(close, 125), s5_99 = ta.sma(close, 495)
c5 = close > s5_99 ? color_up : color_down
plot(show5 ? s5_7 : na, color=c5, linewidth=1), f_draw_label(show5, s5_7, "5๋ถ(7)", c5)
plot(show5 ? s5_25 : na, color=c5, linewidth=1), f_draw_label(show5, s5_25, "5๋ถ(25)", c5)
plot(show5 ? s5_99 : na, color=c5, linewidth=1), f_draw_label(show5, s5_99, "5๋ถ(99)", c5)
// 15๋ถ๋ด
s15_7 = ta.sma(close, 105), s15_25 = ta.sma(close, 375), s15_99 = ta.sma(close, 1485)
c15 = close > s15_99 ? color_up : color_down
plot(show15 ? s15_7 : na, color=c15, linewidth=1), f_draw_label(show15, s15_7, "15๋ถ(7)", c15)
plot(show15 ? s15_25 : na, color=c15, linewidth=1), f_draw_label(show15, s15_25, "15๋ถ(25)", c15)
plot(show15 ? s15_99 : na, color=c15, linewidth=1), f_draw_label(show15, s15_99, "15๋ถ(99)", c15)
// 1์๊ฐ๋ด
s60_7 = f_smooth_ma("60", 7, 3600000), s60_25 = f_smooth_ma("60", 25, 3600000), s60_99 = f_smooth_ma("60", 99, 3600000)
c60 = close > s60_99 ? color_up : color_down
plot(show60 ? s60_7 : na, color=c60, linewidth=1), f_draw_label(show60, s60_7, "1์(7)", c60)
plot(show60 ? s60_25 : na, color=c60, linewidth=1), f_draw_label(show60, s60_25, "1์(25)", c60)
plot(show60 ? s60_99 : na, color=c60, linewidth=1), f_draw_label(show60, s60_99, "1์(99)", c60)
// 4์๊ฐ๋ด
s240_7 = f_smooth_ma("240", 7, 14400000), s240_25 = f_smooth_ma("240", 25, 14400000), s240_99 = f_smooth_ma("240", 99, 14400000)
c240 = close > s240_99 ? color_up : color_down
plot(show240 ? s240_7 : na, color=c240, linewidth=1), f_draw_label(show240, s240_7, "4์(7)", c240)
plot(show240 ? s240_25 : na, color=c240, linewidth=1), f_draw_label(show240, s240_25, "4์(25)", c240)
plot(show240 ? s240_99 : na, color=c240, linewidth=1), f_draw_label(show240, s240_99, "4์(99)", c240)
// ์ผ๋ด
sD_7 = f_smooth_ma("D", 7, 86400000), sD_25 = f_smooth_ma("D", 25, 86400000), sD_99 = f_smooth_ma("D", 99, 86400000)
cD = close > sD_99 ? color_up : color_down
plot(showD ? sD_7 : na, color=cD, linewidth=1), f_draw_label(showD, sD_7, "์ผ(7)", cD)
plot(showD ? sD_25 : na, color=cD, linewidth=1), f_draw_label(showD, sD_25, "์ผ(25)", cD)
plot(showD ? sD_99 : na, color=cD, linewidth=1), f_draw_label(showD, sD_99, "์ผ(99)", cD)
// ์ฃผ๋ด
sW_7 = f_smooth_ma("W", 7, 604800000), sW_25 = f_smooth_ma("W", 25, 604800000), sW_99 = f_smooth_ma("W", 99, 604800000)
cW = close > sW_99 ? color_up : color_down
plot(showW ? sW_7 : na, color=cW, linewidth=1), f_draw_label(showW, sW_7, "์ฃผ(7)", cW)
plot(showW ? sW_25 : na, color=cW, linewidth=1), f_draw_label(showW, sW_25, "์ฃผ(25)", cW)
plot(showW ? sW_99 : na, color=cW, linewidth=1), f_draw_label(showW, sW_99, "์ฃผ(99)", cW)
// --- 2. ๋์๋ณด๋ ํ ---
var table statusTable = table.new(position.bottom_left, 3, 8, border_width=1, border_color=color.new(color.white, 30))
f_fill_row(int row, bool show, string tf_name, float s7, float s25, float s99) =>
ย ย if show
ย ย ย ย bool is_bull = s7 > s25 and s25 > s99
ย ย ย ย bool is_bear = s7 < s25 and s25 < s99
ย ย ย ย string state_txt = is_bull ? "์ ๋ฐฐ์ด" : (is_bear ? "์ญ๋ฐฐ์ด" : "ํก๋ณด")
ย ย ย ย color state_bgย ย = is_bull ? color_up : (is_bear ? color_down : color_none)
ย ย ย ย color state_text = is_bull or is_bear ? color.black : color.whiteย
ย ย ย ย table.cell(statusTable, 0, row, tf_name, text_color=color.white, bgcolor=color.new(color.black, 40), text_size=size.small)
ย ย ย ย table.cell(statusTable, 1, row, state_txt, bgcolor=state_bg, text_color=state_text, text_size=size.small)
ย ย ย ย table.cell(statusTable, 2, row, close > s99 ? "์์น" : "ํ๋ฝ", bgcolor=close > s99 ? color_up : color_down, text_color=color.black, text_size=size.small)
if barstate.islast
ย ย table.cell(statusTable, 0, 0, "ํ๋ ์", bgcolor=color.black, text_color=color.white, text_size=size.small)
ย ย table.cell(statusTable, 1, 0, "๋ฐฐ์ด ์ํ", bgcolor=color.black, text_color=color.white, text_size=size.small)
ย ย table.cell(statusTable, 2, 0, "99์ ๊ธฐ์ค", bgcolor=color.black, text_color=color.white, text_size=size.small)
ย ย f_fill_row(1, show1, "1๋ถ", s1_7, s1_25, s1_99)
ย ย f_fill_row(2, show5, "5๋ถ", s5_7, s5_25, s5_99)
ย ย f_fill_row(3, show15, "15๋ถ", s15_7, s15_25, s15_99)
ย ย f_fill_row(4, show60, "1์๊ฐ", s60_7, s60_25, s60_99)
ย ย f_fill_row(5, show240, "4์๊ฐ", s240_7, s240_25, s240_99)
ย ย f_fill_row(6, showD, "์ผ๋ด", sD_7, sD_25, sD_99)
ย ย f_fill_row(7, showW, "์ฃผ๋ด", sW_7, sW_25, sW_99)
ํ๊ด์ ์ธํฐ๋ท ํฐ์ง?
์ธํฐ๋ท๋ง ํฐ์ง ์ฑ ์ ์์ ๊ทธ๋ฐ๊ฑฐ ์์, ์บ๋ฆฌ์ด์ ๋ ธํธ๋ถ ์ฌ๋ ค๋๊ณ ๋งค๋งคํจ ใ ใ ใ ใ ใ ใ
์งํ ๋ฃ์๋๋ ๋ณด๋์์กฐ๋ง๋๊ณ ์๋ค์..