커뮤니티

지표 수식을 부탁합니다.

프로필 이미지
고도산
2025-08-02 22:31:04
214
글번호 192937
답변완료
항상 노고에 감사드립니다. 다음 TV수식을 YT형식으로 부탁합니다. 개인적으로 해봤는데 PivotHigh, PivotLow에서 막히네요. 그리고 MidLine(avg)을 ① crossUp하거나 ② 위에서 1%이내로 근접하는 종목을 검색하는 식도 부탁드립니다. //@version=6 indicator("#Step Channel Momentum Trend [ChartPrime]", overlay = true, max_labels_count = 500) // -----------------------------------} // USER INPUTS // -----------------------------------{ len = input.int(3, "Length", tooltip = "Pivot Length") mult = input.float(0.6, "Multiplier", step =0.1, tooltip = "Bands Multiplier") color_t_up = input.color(color.rgb(202, 38, 65), "", inline = "Color", group = "Momentum Colors") color_t = input.color(color.orange, "", inline = "Color", group = "Momentum Colors") color_t_dn = input.color(color.rgb(26, 190, 127), "", inline = "Color", group = "Momentum Colors") var p_h = float(na) var p_l = float(na) var trend = bool(na) market_state = "Range" // -----------------------------------} // INDICATOR CALCUATIONS // -----------------------------------{ ph = ta.pivothigh(len, len) pl = ta.pivotlow(len, len) if not na(ph) p_h := ph label.new(bar_index-len, ph, "☆", style = label.style_label_center, textcolor = color.white, size = size.normal, color = color.lime) if not na(pl) p_l := pl label.new(bar_index-len, pl, "★", style = label.style_label_center, textcolor = color.white, size = size.normal, color = color.purple) avg = math.avg(p_h, p_l) atr = ta.atr(200)*mult upper = avg + atr lower = avg - atr if hl2 > upper color_t := color_t_up trend := true market_state := "Momentum Up" if hl2 < lower color_t := color_t_dn trend := false market_state := "Momentum Down" // -----------------------------------} // VISUALIZATIONS // -----------------------------------{ plot(avg, "MidLine", color = color_t, linewidth = 3) plot(upper, "Upper", color = chart.fg_color, style = plot.style_linebr) plot(lower, "Lower", color = chart.fg_color, style = plot.style_linebr) plotcandle(open, high, low, close, title='Momentum Candles', color = color_t, wickcolor=color_t, bordercolor = color_t) if barstate.islast label.delete(label.new(bar_index, close, market_state, color = color(na), textcolor = color_t, style = label.style_label_left, size = size.large)[1])
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-08-05 08:55:59

안녕하세요 예스스탁입니다. input : len(3); input : mult(0.6); input : color_t_up(Lime); var : color_t(orange); input : color_t_dn(Red); var : p_h(nan); var : p_l(nan); var : trend(False); var : market_state(""),ph(0),pl(0),tx(0); market_state = "Range"; if SwingHigh(1,h,len,len,len+len+1) != -1 Then { p_h = h[len]; tx = Text_New(sDate[len],sTime[len],p_h,"☆"); Text_SetStyle(tx,2,1); Text_SetColor(tx,Lime); Text_SetSize(tx,12); } if SwingLow(1,l,len,len,len+len+1) != -1 Then { p_l = l[len]; tx = Text_New(sDate[len],sTime[len],p_l,"★"); Text_SetStyle(tx,2,0); Text_SetColor(tx,purple); Text_SetSize(tx,12); } var : avgv(0),ATrv(0),hl2(0),upper(0),lower(0),tx1(0); avgv = (p_h+p_l)/2; atrv = atr(200)*mult; upper = avgv + atrv; lower = avgv - atrv; hl2 = (h+l)/2; if hl2 > upper Then { color_t = color_t_up; trend = true; market_state = "Momentum Up"; } if hl2 < lower Then { color_t = color_t_dn; trend = false; market_state = "Momentum Down"; } // -----------------------------------} // VISUALIZATIONS // -----------------------------------{ plot1(avgv, "MidLine",color_t); plot2(upper, "Upper"); plot3(lower, "Lower"); 즐거운 하루되세요 > 고도산 님이 쓴 글입니다. > 제목 : 지표 수식을 부탁합니다. > 항상 노고에 감사드립니다. 다음 TV수식을 YT형식으로 부탁합니다. 개인적으로 해봤는데 PivotHigh, PivotLow에서 막히네요. 그리고 MidLine(avg)을 ① crossUp하거나 ② 위에서 1%이내로 근접하는 종목을 검색하는 식도 부탁드립니다. //@version=6 indicator("#Step Channel Momentum Trend [ChartPrime]", overlay = true, max_labels_count = 500) // -----------------------------------} // USER INPUTS // -----------------------------------{ len = input.int(3, "Length", tooltip = "Pivot Length") mult = input.float(0.6, "Multiplier", step =0.1, tooltip = "Bands Multiplier") color_t_up = input.color(color.rgb(202, 38, 65), "", inline = "Color", group = "Momentum Colors") color_t = input.color(color.orange, "", inline = "Color", group = "Momentum Colors") color_t_dn = input.color(color.rgb(26, 190, 127), "", inline = "Color", group = "Momentum Colors") var p_h = float(na) var p_l = float(na) var trend = bool(na) market_state = "Range" // -----------------------------------} // INDICATOR CALCUATIONS // -----------------------------------{ ph = ta.pivothigh(len, len) pl = ta.pivotlow(len, len) if not na(ph) p_h := ph label.new(bar_index-len, ph, "☆", style = label.style_label_center, textcolor = color.white, size = size.normal, color = color.lime) if not na(pl) p_l := pl label.new(bar_index-len, pl, "★", style = label.style_label_center, textcolor = color.white, size = size.normal, color = color.purple) avg = math.avg(p_h, p_l) atr = ta.atr(200)*mult upper = avg + atr lower = avg - atr if hl2 > upper color_t := color_t_up trend := true market_state := "Momentum Up" if hl2 < lower color_t := color_t_dn trend := false market_state := "Momentum Down" // -----------------------------------} // VISUALIZATIONS // -----------------------------------{ plot(avg, "MidLine", color = color_t, linewidth = 3) plot(upper, "Upper", color = chart.fg_color, style = plot.style_linebr) plot(lower, "Lower", color = chart.fg_color, style = plot.style_linebr) plotcandle(open, high, low, close, title='Momentum Candles', color = color_t, wickcolor=color_t, bordercolor = color_t) if barstate.islast label.delete(label.new(bar_index, close, market_state, color = color(na), textcolor = color_t, style = label.style_label_left, size = size.large)[1])