예스스탁
예스스탁 답변
2024-11-05 13:28:35
안녕하세요
예스스탁입니다.
input : length(12),factor(4.236),smooth(12),weight(2),rsiCss(blue),tsBearCss(Red),tsBullCss(green);
var : src(0,Data2);
var : delta(0,Data2), ts(0,Data2),rsiv(0,Data2),w(0,Data2);
var : alpha(0,Data2),num(0,Data2),den(0,Data2),diff(0,Data2);
var : crossover(False,Data2),crossunder(False,Data2);
var : css(0,Data2),v1(0,Data2);
src = data2(close);
delta = src - src[1];
w = data2(IFf(IsNan(iff(delta * (rsiv - ts) > 0 , weight , 1))==true, 1,iff(delta * (rsiv - ts) > 0 , weight , 1)));
alpha = 1/length;
num = data2(iff(isnan(num[1]) == true, ma((delta * w), length) , alpha * (delta * w) + (1 - alpha) * iff(IsNaN(num[1])==true,0,num[1])));
den = data2(iff(isnan(den[1]) == true, ma(abs(delta * w), length) , alpha * abs(delta * w) + (1 - alpha) * iff(IsNaN(num[1])==true,0,den[1])));
rsiv = 50 * data2(ema(num / den, smooth)) + 50;
//Trailing stop
diff = Data2(iff(isnan(diff[1]) == true, ma(abs(rsiv - rsiv[1]), length) , alpha * abs(rsiv - rsiv[1]) + (1 - alpha) * iff(IsNaN(num[1])==true,0,diff[1])));
crossover = CrossUp(rsiv, ts);
crossunder = CrossDown(rsiv, ts);
v1 = Data2(iff(crossover , rsiv - diff * factor,
iff(crossunder , rsiv + diff * factor,
iff(rsiv > ts , max(rsiv - diff * factor, ts),
min(rsiv + diff * factor, ts)))));
ts = data2(iff(isnan(v1)==true,rsiv,v1));
css = data2(iff(rsiv > ts , tsBullCss , tsBearCss));
plot1(rsiv, "RSI", rsiCss);
plot2(ts, "Traling Stop", css);
PlotBaseLine1(70);
PlotBaseLine2(30);
즐거운 하루되세요
> 올드송 님이 쓴 글입니다.
> 제목 : 수정 부탁드립니다.
> input : length(12),factor(4.236),smooth(12),weight(2),rsiCss(blue),tsBearCss(Red),tsBullCss(green);
var : src(0);
src = close;
//-----------------------------------------------------------------------------}
//Weighted QQE
//-----------------------------------------------------------------------------{
var : delta(0), ts(0),rsiv(0),w(0);
var : alpha(0),num(0),den(0),diff(0);
var : crossover(False),crossunder(False);
var : css(0);
delta = src - src[1];
w = IFf(IsNan(iff(delta * (rsiv - ts) > 0 , weight , 1))==true, 1,iff(delta * (rsiv - ts) > 0 , weight , 1));
alpha = 1/length;
num = iff(isnan(num[1]) == true, ma((delta * w), length) , alpha * (delta * w) + (1 - alpha) * iff(IsNaN(num[1])==true,0,num[1]));
den = iff(isnan(den[1]) == true, ma(abs(delta * w), length) , alpha * abs(delta * w) + (1 - alpha) * iff(IsNaN(num[1])==true,0,den[1]));
rsiv = 50 * ema(num / den, smooth) + 50;
//Trailing stop
diff = iff(isnan(diff[1]) == true, ma(abs(rsiv - rsiv[1]), length) , alpha * abs(rsiv - rsiv[1]) + (1 - alpha) * iff(IsNaN(num[1])==true,0,diff[1]));
crossover = CrossUp(rsiv, ts);
crossunder = CrossDown(rsiv, ts);
var1 = iff(crossover , rsiv - diff * factor,
iff(crossunder , rsiv + diff * factor,
iff(rsiv > ts , max(rsiv - diff * factor, ts),
min(rsiv + diff * factor, ts))));
ts = iff(isnan(var1)==true,rsiv,var1);
css = iff(rsiv > ts , tsBullCss , tsBearCss);
plot1(rsiv, "RSI", rsiCss);
plot2(ts, "Traling Stop", css);
PlotBaseLine1(70);
PlotBaseLine2(30);
좋아하는 지표이고 잘 쓰던건데 타주기 참조를 할려고 합니다.
data2 로 수정해 주시면 고맙겠습니다.
제가 해보니까.. 좀더 스무스해진것 같긴한데... 기본차트가 30틱 차트고
타주기가 300틱 차트면 지표길이가 10배 길어져야 할꺼 같은데... 그냥 조금더 스무스 해지고 마는군요;;