커뮤니티

아래의 트레이디이뷰 수식을 변환부탁드립니다.

프로필 이미지
해암
2025-10-22 22:09:39
72
글번호 227196
답변완료

/@version=6

indicator("Dynamic Deviation Levels [BigBeluga]", overlay = true, max_labels_count = 500)

// INPUTS ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
int   len  = input.int(50)
float mult = input.float(3)

color col_up1 = input.color(#85C1FF, "", inline = "c")
color col_up2 = input.color(#4FA3F2, "", inline = "c")
color col_up3 = input.color(#3182DE, "", inline = "c")
color col_up4 = input.color(#164F96, "", inline = "c")

color col_dn1 = input.color(#FF8A64, "", inline = "cc")
color col_dn2 = input.color(#F26947, "", inline = "cc")
color col_dn3 = input.color(#DE5731, "", inline = "cc")
color col_dn4 = input.color(#A13A20, "", inline = "cc")

bool show_dev = input.bool(false, "Deviation Levels")


color color_na = #363a4500
color mid_line = color.new(chart.fg_color, 50)
// }



// CALCULATIONS――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
atr = ta.atr(200)
mid = ta.hma(ta.median(hl2, len*2), 10)

stdv_lbl(condition, src, mid, txt, color, side = true)=>
    cond = condition
    bars = ta.barssince(cond)
    if cond and barstate.isconfirmed and bars[1] > 20
        label.new(bar_index-1, src, txt, style = side ? label.style_label_lower_right : label.style_label_upper_right, textcolor = color.black, color = color, tooltip = txt + " Stdev")
        line.new(bar_index-1, mid[1], bar_index-1, hl2[1], color = chart.fg_color, style = line.style_dashed)


mid_1 = mid - atr * mult * 1
mid_2 = mid - atr * mult * 2
mid_3 = mid - atr * mult * 3

mid1 = mid + atr * mult * 1
mid2 = mid + atr * mult * 2
mid3 = mid + atr * mult * 3

mid1_cond = ta.crossover(low, mid1) 
mid2_cond = ta.crossover(low, mid2) 
mid3_cond = ta.crossover(low, mid3) 

mid_1_cond = ta.crossunder(high, mid_1) 
mid_2_cond = ta.crossunder(high, mid_2) 
mid_3_cond = ta.crossunder(high, mid_3) 
// }


// PLOT ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{

colorUp = (close > mid3 ? col_up1 : close > mid2 ? col_up2 : close > mid1 ? col_up3 : close > mid ? col_up4 : na)
colorDn = (close < mid_3 ? col_dn1 : close < mid_2 ? col_dn2 : close < mid_1 ? col_dn3 : close < mid ? col_dn4 : na)

color_ = close > mid ? colorUp : colorDn


scoreUp = (close > mid3 ? 3 : close > mid2 ? 2 : close > mid1 ? 1 : close > mid ? 0 : na)
scoreDn = (close < mid_3 ? -3 : close < mid_2 ? -2 : close < mid_1 ? -1 : close < mid ? 0 : na)

score_ = close > mid ? scoreUp : scoreDn

color = color.new(chart.fg_color, show_dev ? 70 : 100)

plot(mid_1, color = color, linewidth = 2)
plot(mid_2, color = color, linewidth = 3)
plot(mid_3, color = color, linewidth = 4)

plot(mid, "", color = chart.fg_color, linewidth = 1)

plot(mid1, color = color, linewidth = 2)
plot(mid2, color = color, linewidth = 3)
plot(mid3, color = color, linewidth = 4)

stdv_lbl(mid1_cond, mid1, mid, "1", color_)
stdv_lbl(mid2_cond, mid2, mid, "2", color_)
stdv_lbl(mid3_cond, mid3, mid, "3", color_)

stdv_lbl(mid_1_cond, mid_1, mid, "-1", color_, false)
stdv_lbl(mid_2_cond, mid_2, mid, "-2", color_, false)
stdv_lbl(mid_3_cond, mid_3, mid, "-3", color_, false)

if barstate.islast
    var dash = table.new(position.bottom_right, 60, 60)

    for i = 1 to 20 
        table.cell(dash, i, 0)

        table.cell(dash
                 , score_ == 3 ? 1 : score_ == 2 ? 5 : score_ == 1 ? 8 : score_ == -1 ? 13 : score_ == -2 ? 16 : score_ == -3 ? 20 : 10
                 , 0
                 , text = "▼"
                 , width = 0.5
                 , text_color = chart.fg_color
                 )

        table.cell(dash, i, 1, width = 0.5
                 , text_color = color.black
                 , bgcolor = i <= 10 
                  ? color.from_gradient(i, 0, 20, col_up1, color.new(col_up4, 50)) 
                  : color.from_gradient(i, 0, 20, color.new(col_dn4, 50), col_dn1)
                  )
        table.cell(dash, i, 2
                 , text = 
                  i == 1 ? "3" 
                  : i == 5 ? "2" 
                  : i == 8 ? "1" 
                  : i == 13 ? "-1" 
                  : i == 16 ? "-2" 
                  : i == 20 ?  "-3" 
                  : ""
                  , width = 0.5
                  , text_color = chart.fg_color
                  )


plotcandle(open, high, low, close, title='Color Candles', color = color_, wickcolor=color_, bordercolor = color_)
barcolor(color_)
// }
DynamicDeviationLevelsHull
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-10-23 11:19:06

안녕하세요 예스스탁입니다. 하단에 표시되는 내용은 작성해 드리기 어렵습니다. 선그래프만 표시되게 작성해 드립니다. input : len(50),mult(3); input : col_up1(Cyan); input : col_up2(lightBlue); input : col_up3(Blue); input : col_up4(darkBlue); input : col_dn1(pink); input : col_dn2(LightRed); input : col_dn3(Red); input : col_dn4(DarkRed); var : hl2(0),alpha(0),atr(0),mid(0); var : mid_1(0),mid_2(0),mid_3(0),mid_1_cond(False),mid_2_cond(False),mid_3_cond(False); var : mid1(0),mid2(0),mid3(0),mid1_cond(False),mid2_cond(False),mid3_cond(False); var : colorUp(0),colorDn(0),color_(0); Array : vv[200](0); hl2 = (h+l)/2; alpha = 1 / 200 ; ATR = IFf(IsNan(ATR[1]) == true, ma(TrueRange,20) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATR[1])==true,0,ATR[1])); InsertArray(vv,0,hl2); var1 = MedianArray(vv,len*2); mid = wma(2 * wma(var1, 10 / 2) - wma(var1, 10), round(sqrt(01),0)); mid_1 = mid - atr * mult * 1; mid_2 = mid - atr * mult * 2; mid_3 = mid - atr * mult * 3; mid1 = mid + atr * mult * 1; mid2 = mid + atr * mult * 2; mid3 = mid + atr * mult * 3; mid1_cond = CrossUp(low, mid1); mid2_cond = CrossUp(low, mid2); mid3_cond = CrossUp(low, mid3); mid_1_cond = CrossDown(high, mid_1); mid_2_cond = CrossDown(high, mid_2); mid_3_cond = CrossDown(high, mid_3); colorUp = IFf(close > mid3 , col_up1 , iff(close > mid2 , col_up2 , iff(close > mid1 , col_up3 , iff(close > mid , col_up4 , Black)))); colorDn = IFf(close < mid_3 , col_dn1 , iff(close < mid_2 , col_dn2 , iff(close < mid_1 , col_dn3 , iff(close < mid , col_dn4 , Black)))); color_ = iff(close > mid , colorUp , colorDn); if mid > 0 Then { plot1(mid_1,"-1",color_); plot2(mid_2,"-2",color_); plot3(mid_3,"-3",color_); plot4(mid, "mid",color_); plot5(mid1,"+1",color_); plot6(mid2,"+2",color_); plot7(mid3,"+3",color_); } 즐거운 하루되세요