예스스탁
예스스탁 답변
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])