예스스탁
예스스탁 답변
2023-11-21 13:20:55
안녕하세요
예스스탁입니다.
input : length(14),factor(4.236),smooth(5),weight(2),rsiCss(blue),tsBearCss(Red),tsBullCss(Teal);
var : src(0);
src = close;
#//Style
#rsiCss = input(#3179f5, 'RSI', group = 'Style')
#
#tsBearCss = input(color.red, 'Trailing Stop', group = 'Style', inline = 'inline1')
#tsBullCss = input(color.teal, '', group = 'Style', inline = 'inline1')
//-----------------------------------------------------------------------------}
//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);
즐거운 하루되세요
> 잘하고프다 님이 쓴 글입니다.
> 제목 : 지표 변환 문의드립니다.
> 트레이딩뷰 지표입니다만 변환 가능할까요??
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo
//@version=5
indicator("QQE Weighted Oscillator [LuxAlgo]", "LuxAlgo - QQE Weighted Oscillator")
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
length = input.int(14, minval = 1)
factor = input.float(4.236, minval = 0)
smooth = input.int(5, minval = 1)
weight = input.float(2)
src = input(close)
//Style
rsiCss = input(#3179f5, 'RSI', group = 'Style')
tsBearCss = input(color.red, 'Trailing Stop', group = 'Style', inline = 'inline1')
tsBullCss = input(color.teal, '', group = 'Style', inline = 'inline1')
//-----------------------------------------------------------------------------}
//Weighted QQE
//-----------------------------------------------------------------------------{
var ts = 0.
var rsi = 0.
delta = src - src[1]
w = nz(delta * (rsi - ts) > 0 ? weight : 1, 1)
//Rsi
num = ta.rma(delta * w, length)
den = ta.rma(math.abs(delta * w), length)
rsi := 50 * ta.ema(num / den, smooth) + 50
//Trailing stop
diff = ta.rma(math.abs(rsi - rsi[1]), length)
crossover = ta.crossover(rsi, ts)
crossunder = ta.crossunder(rsi, ts)
ts := nz(crossover ? rsi - diff * factor
: crossunder ? rsi + diff * factor
: rsi > ts ? math.max(rsi - diff * factor, ts)
: math.min(rsi + diff * factor, ts), rsi)
//-----------------------------------------------------------------------------}
//Plots
//-----------------------------------------------------------------------------{
css = rsi > ts ? tsBullCss : tsBearCss
plot_rsi = plot(rsi, 'RSI', rsiCss)
plot_ts = plot(ts, 'Traling Stop', css)
fill(plot_rsi, plot_ts, rsi, ts, color.new(rsiCss, 50), color.new(css, 50))
hline(70)
hline(30)
//-----------------------------------------------------------------------------}