예스스탁
예스스탁 답변
2025-09-08 14:32:41.0
안녕하세요
예스스탁입니다.
input : factor(10);
input : col_up(Green);
input : col_dn(Orange);
var : dist(0);
dist = ma(high-low, 200);
var : src(0),_direction(Nan),trend_line(Nan);
var : upperBand(0),lowerband(0),prevLowerBand(0),prevUpperBand(0),line_(0),t_col(0);
src = (h+l+c)/3;
upperBand = ema(src, 15) + factor * dist;
lowerBand = ema(src, 15) - factor * dist;
prevLowerBand = iff(isnan(lowerBand[1])==true,0,lowerBand[1]);
prevUpperBand = iff(isnan(upperBand[1])==true,0,upperBand[1]);
upperBand = iff(upperBand < prevUpperBand or src[1] > prevUpperBand , upperBand , prevUpperBand);
lowerBand = iff(lowerBand > prevLowerBand or src[1] < prevLowerBand , lowerBand , prevLowerBand);
if IsNan(dist[1]) == true Then
_direction = 1;
else if trend_line[1] == prevUpperBand Then
_direction = iff(src > upperBand , -1 , 1);
else
_direction = iff(src < lowerBand , 1 , -1);
trend_line = iff(_direction == -1 , lowerBand , upperBand);
line_ = avg(lowerBand, upperBand);
t_col = iff(_direction == 1 , col_dn , col_up);
plot1(line_, "TrendLine", t_col);
plot2(line_, "TrendLine", t_col);
plot3(lowerBand+dist, "LowerBand1", t_col);
plot4(lowerBand+dist*0.5, "LowerBand2", t_col);
plot5(lowerBand, "LowerBand3", t_col);
plot6(lowerBand-dist*0.5, "LowerBand4", t_col);
plot7(lowerBand-dist, "LowerBand5",t_col);
plot8(upperBand+dist, "UpperBand5",t_col);
plot9(upperBand+dist*0.5, "UpperBand4",t_col);
plot10(upperBand, "UpperBand3",t_col);
plot11(upperBand-dist*0.5, "UpperBand2", t_col);
plot12(upperBand-dist, "UpperBand1",t_col);
즐거운 하루되세요
> 사노소이 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다
> 지표식, 시스템식 부탁 드립니다.
//@version=6
indicator("DFR", overlay = true)
// INPUTS ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
factor = input.float(10, "Length", step = 0.01)
col_up = input.color(color.rgb(26, 221, 127), "", inline = "Col")
col_dn = input.color(color.rgb(231, 147, 20), "", inline = "Col")
// }
// CALCULATIONS――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
float dist = ta.sma(high-low, 200)
trend_line(factor)=>
float src = hlc3
int _direction = na
float trend_line = na
upperBand = ta.ema(src, 15) + factor * dist
lowerBand = ta.ema(src, 15) - factor * dist
prevLowerBand = nz(lowerBand[1])
prevUpperBand = nz(upperBand[1])
lowerBand := lowerBand > prevLowerBand or src[1] < prevLowerBand ? lowerBand : prevLowerBand
upperBand := upperBand < prevUpperBand or src[1] > prevUpperBand ? upperBand : prevUpperBand
prevTrendLine = trend_line[1]
if na(dist[1])
_direction := 1
else if prevTrendLine == prevUpperBand
_direction := src > upperBand ? -1 : 1
else
_direction := src < lowerBand ? 1 : -1
trend_line := _direction == -1 ? lowerBand : upperBand
line_ = math.avg(lowerBand, upperBand)
[line_, _direction, lowerBand, upperBand]
[line_, _direction, lowerBand, upperBand] = trend_line(factor)
// }
// PLOT ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
t_col = _direction == 1 ? col_dn : col_up
plot(line_, "TrendLine", color = color.new(t_col, 0), linewidth = 4)
plot(line_, "TrendLine", color = color.new(t_col, 80), linewidth = 10)
plot(lowerBand+dist, "LowerBand1", color = _direction == -1 ? color.new(t_col, 80) : color.new(t_col, 100), linewidth = 1)
plot(lowerBand+dist*0.5, "LowerBand2", color = _direction == -1 ? color.new(t_col, 60) : color.new(t_col, 100), linewidth = 1)
plot(lowerBand, "LowerBand3", color = _direction == -1 ? color.new(t_col, 40) : color.new(t_col, 100), linewidth = 1)
plot(lowerBand-dist*0.5, "LowerBand4", color = _direction == -1 ? color.new(t_col, 20) : color.new(t_col, 100), linewidth = 1)
plot(lowerBand-dist, "LowerBand5", color = _direction == -1 ? color.new(t_col, 0) : color.new(t_col, 100), linewidth = 1)
plot(upperBand+dist, "UpperBand5", color = _direction == 1 ? color.new(t_col, 0) : color.new(t_col, 100), linewidth = 1)
plot(upperBand+dist*0.5, "UpperBand4", color = _direction == 1 ? color.new(t_col, 20) : color.new(t_col, 100), linewidth = 1)
plot(upperBand, "UpperBand3", color = _direction == 1 ? color.new(t_col, 40) : color.new(t_col, 100), linewidth = 1)
plot(upperBand-dist*0.5, "UpperBand2", color = _direction == 1 ? color.new(t_col, 60) : color.new(t_col, 100), linewidth = 1)
plot(upperBand-dist, "UpperBand1", color = _direction == 1 ? color.new(t_col, 80) : color.new(t_col, 100), linewidth = 1)
plotcandle(open, high, low, close, title='CandleStick Coloring', color = color.new(t_col, 50), wickcolor=color.new(t_col, 50), bordercolor = color.new(t_col, 50))
// }