예스스탁
예스스탁 답변
2023-06-21 17:45:48
안녕하세요
예스스탁입니다.
input : RSI_Period(6),SF(5),QQE(3),ThreshHold(3);
var : src(0),Wilders_Period(0),rsiv(0),rsima(0);
var : AtrRsi(0),MaAtrRsi(0),dar(0);
var : longband(0),shortband(0),trend(0);
var : DeltaFastAtrRsi(0),RSIndex(0),newshortband(0),newlongband(0);
var : cross_1(False),FastAtrRsiTL(0);
src = close;
Wilders_Period = RSI_Period * 2 - 1;
Rsiv = rsi(RSI_Period);
RsiMa = ema(Rsiv, SF);
AtrRsi = abs(RsiMa[1] - RsiMa);
MaAtrRsi = ema(AtrRsi, Wilders_Period);
dar = ema(MaAtrRsi, Wilders_Period) * QQE;
longband = 0.0;
shortband = 0.0;
trend = 0;
DeltaFastAtrRsi = dar;
RSIndex = RsiMa;
newshortband = RSIndex + DeltaFastAtrRsi;
newlongband = RSIndex - DeltaFastAtrRsi;
longband = iff(RSIndex[1] > longband[1] and RSIndex > longband[1], max(longband[1], newlongband) , newlongband);
shortband = iff(RSIndex[1] < shortband[1] and RSIndex < shortband[1], min(shortband[1], newshortband) , newshortband);
cross_1 = crossup(longband[1], RSIndex) or CrossDown(longband[1], RSIndex);
trend = iff(CrossUp(RSIndex, shortband[1]) or CrossDown(RSIndex, shortband[1]) , 1 , IFf(cross_1 , -1 , iff(isnan(trend[1]) == true, 1,trend[1])));
FastAtrRsiTL = iff(trend == 1 , longband , shortband);
////////////////////
input : length(50),mult(0.35);
var : basis(0),dev(0),upper(0),lower(0),color_bar(0);
var : QQEzlong(0),QQEzshort(0);
basis = ma(FastAtrRsiTL - 50, length);
dev = mult * std(FastAtrRsiTL - 50, length);
upper = basis + dev;
lower = basis - dev;
color_bar = iff(RsiMa - 50 > upper , Blue, IFf(RsiMa - 50 < lower , Red , gray));
//
// Zero cross
QQEzlong = 0;
QQEzlong = iff(IsNan(QQEzlong[1]) == true,0,QQEzlong[1]);
QQEzshort = 0;
QQEzshort = iff(isnan(QQEzshort[1]) == true,0,QQEzshort[1]);
QQEzlong = iff(RSIndex >= 50 , QQEzlong + 1 , 0);
QQEzshort = iff(RSIndex < 50 , QQEzshort + 1 , 0);
//
PlotBaseLine1(0,"Zero",white);
////////////////////////////////////////////////////////////////
input : RSI_Period2(6),SF2(5),QQE2(1.61),ThreshHold2(3);
var : src2(0),Wilders_Period2(0),rsi2(0),rsima2(0);
var : AtrRsi2(0),MaAtrRsi2(0),dar2(0);
var : longband2(0),shortband2(0),trend2(0);
var : DeltaFastAtrRsi2(0),RSIndex2(0),newshortband2(0),newlongband2(0);
var : cross_2(False),FastAtrRsi2TL(0);
var : QQE2zlong(0),QQE2zshort(0);
var : hcolor2(0),Greenbar1(FalsE),Greenbar2(FalsE),Redbar1(False),Redbar2(False);
src2 = close;
Wilders_Period2 = RSI_Period2 * 2 - 1;
Rsi2 = rsi(RSI_Period2);
RsiMa2 = ema(Rsi2, SF2);
AtrRsi2 = abs(RsiMa2[1] - RsiMa2);
MaAtrRsi2 = ema(AtrRsi2, Wilders_Period2);
dar2 = ema(MaAtrRsi2, Wilders_Period2) * QQE2;
longband2 = 0.0;
shortband2 = 0.0;
trend2 = 0;
DeltaFastAtrRsi2 = dar2;
RSIndex2 = RsiMa2;
newshortband2 = RSIndex2 + DeltaFastAtrRsi2;
newlongband2 = RSIndex2 - DeltaFastAtrRsi2;
longband2 = iff(RSIndex2[1] > longband2[1] and RSIndex2 > longband2[1] ,max(longband2[1], newlongband2) , newlongband2);
shortband2 = iff(RSIndex2[1] < shortband2[1] and RSIndex2 < shortband2[1],min(shortband2[1], newshortband2), newshortband2);
cross_2 = CrossUp(longband2[1], RSIndex2) or CrossDown(longband2[1], RSIndex2);
trend2 = iff(CrossUp(RSIndex2, shortband2[1]) or CrossDown(RSIndex2, shortband2[1]) , 1 , iff(cross_2 , -1 , iff(isnan(trend2[1]) == False, 1,trend2[1])));
FastAtrRsi2TL = iff(trend2 == 1 , longband2 , shortband2);
// Zero cross
QQE2zlong = 0;
QQE2zlong = iff(IsNan(QQE2zlong[1])==true,0,QQE2zlong[1]);
QQE2zshort = 0;
QQE2zshort = iff(isnan(QQE2zshort[1]),0,QQE2zshort[1]);
QQE2zlong = iff(RSIndex2 >= 50 , QQE2zlong + 1 , 0);
QQE2zshort = iff(RSIndex2 < 50 , QQE2zshort + 1 , 0);
//
hcolor2 = iff(RsiMa2 - 50 > ThreshHold2 ,silver ,IFf( RsiMa2 - 50 < 0 - ThreshHold2 , silver , White));
plot1(FastAtrRsi2TL - 50, "QQE Line", white);
plot2(RsiMa2 - 50, "Histo2", hcolor2);
Greenbar1 = RsiMa2 - 50 > ThreshHold2;
Greenbar2 = RsiMa - 50 > upper;
Redbar1 = RsiMa2 - 50 < 0 - ThreshHold2;
Redbar2 = RsiMa - 50 < lower;
if Greenbar1 and Greenbar2 == true Then
plot3(RsiMa2 - 50, "QQE Up",Blue);
else
NoPlot(3);
if Redbar1 and Redbar2 == true Then
plot4(RsiMa2 - 50, "QQE Down",Red);
Else
NoPlot(4);
즐거운 하루되세요
> 매치다2 님이 쓴 글입니다.
> 제목 : 잘 부탁드립니다
> //@version=4
//By Glaz, Modified
//
study("QQE MOD")
RSI_Period = input(6, title='RSI Length')
SF = input(5, title='RSI Smoothing')
QQE = input(3, title='Fast QQE Factor')
ThreshHold = input(3, title="Thresh-hold")
//
src = input(close, title="RSI Source")
//
//
Wilders_Period = RSI_Period * 2 - 1
Rsi = rsi(src, RSI_Period)
RsiMa = ema(Rsi, SF)
AtrRsi = abs(RsiMa[1] - RsiMa)
MaAtrRsi = ema(AtrRsi, Wilders_Period)
dar = ema(MaAtrRsi, Wilders_Period) * QQE
longband = 0.0
shortband = 0.0
trend = 0
DeltaFastAtrRsi = dar
RSIndex = RsiMa
newshortband = RSIndex + DeltaFastAtrRsi
newlongband = RSIndex - DeltaFastAtrRsi
longband := RSIndex[1] > longband[1] and RSIndex > longband[1] ?
max(longband[1], newlongband) : newlongband
shortband := RSIndex[1] < shortband[1] and RSIndex < shortband[1] ?
min(shortband[1], newshortband) : newshortband
cross_1 = cross(longband[1], RSIndex)
trend := cross(RSIndex, shortband[1]) ? 1 : cross_1 ? -1 : nz(trend[1], 1)
FastAtrRsiTL = trend == 1 ? longband : shortband
////////////////////
length = input(50, minval=1, title="Bollinger Length")
mult = input(0.35, minval=0.001, maxval=5, step=0.1, title="BB Multiplier")
basis = sma(FastAtrRsiTL - 50, length)
dev = mult * stdev(FastAtrRsiTL - 50, length)
upper = basis + dev
lower = basis - dev
color_bar = RsiMa - 50 > upper ? #00c3ff : RsiMa - 50 < lower ? #ff0062 : color.gray
//
// Zero cross
QQEzlong = 0
QQEzlong := nz(QQEzlong[1])
QQEzshort = 0
QQEzshort := nz(QQEzshort[1])
QQEzlong := RSIndex >= 50 ? QQEzlong + 1 : 0
QQEzshort := RSIndex < 50 ? QQEzshort + 1 : 0
//
Zero = hline(0, color=color.white, linestyle=hline.style_dotted, linewidth=1)
////////////////////////////////////////////////////////////////
RSI_Period2 = input(6, title='RSI Length')
SF2 = input(5, title='RSI Smoothing')
QQE2 = input(1.61, title='Fast QQE2 Factor')
ThreshHold2 = input(3, title="Thresh-hold")
src2 = input(close, title="RSI Source")
//
//
Wilders_Period2 = RSI_Period2 * 2 - 1
Rsi2 = rsi(src2, RSI_Period2)
RsiMa2 = ema(Rsi2, SF2)
AtrRsi2 = abs(RsiMa2[1] - RsiMa2)
MaAtrRsi2 = ema(AtrRsi2, Wilders_Period2)
dar2 = ema(MaAtrRsi2, Wilders_Period2) * QQE2
longband2 = 0.0
shortband2 = 0.0
trend2 = 0
DeltaFastAtrRsi2 = dar2
RSIndex2 = RsiMa2
newshortband2 = RSIndex2 + DeltaFastAtrRsi2
newlongband2 = RSIndex2 - DeltaFastAtrRsi2
longband2 := RSIndex2[1] > longband2[1] and RSIndex2 > longband2[1] ?
max(longband2[1], newlongband2) : newlongband2
shortband2 := RSIndex2[1] < shortband2[1] and RSIndex2 < shortband2[1] ?
min(shortband2[1], newshortband2) : newshortband2
cross_2 = cross(longband2[1], RSIndex2)
trend2 := cross(RSIndex2, shortband2[1]) ? 1 : cross_2 ? -1 : nz(trend2[1], 1)
FastAtrRsi2TL = trend2 == 1 ? longband2 : shortband2
//
// Zero cross
QQE2zlong = 0
QQE2zlong := nz(QQE2zlong[1])
QQE2zshort = 0
QQE2zshort := nz(QQE2zshort[1])
QQE2zlong := RSIndex2 >= 50 ? QQE2zlong + 1 : 0
QQE2zshort := RSIndex2 < 50 ? QQE2zshort + 1 : 0
//
hcolor2 = RsiMa2 - 50 > ThreshHold2 ? color.silver :
RsiMa2 - 50 < 0 - ThreshHold2 ? color.silver : na
plot(FastAtrRsi2TL - 50, title='QQE Line', color=color.white, transp=0, linewidth=2)
plot(RsiMa2 - 50, color=hcolor2, transp=50, title='Histo2', style=plot.style_columns)
Greenbar1 = RsiMa2 - 50 > ThreshHold2
Greenbar2 = RsiMa - 50 > upper
Redbar1 = RsiMa2 - 50 < 0 - ThreshHold2
Redbar2 = RsiMa - 50 < lower
plot(Greenbar1 and Greenbar2 == 1 ? RsiMa2 - 50 : na, title="QQE Up", style=plot.style_columns, color=#00c3ff, transp=0)
plot(Redbar1 and Redbar2 == 1 ? RsiMa2 - 50 : na, title="QQE Down", style=plot.style_columns, color=#ff0062, transp=0)