예스스탁
예스스탁 답변
2024-07-05 15:15:19
안녕하세요
예스스탁입니다.
input : length1(10),phase1(50),power1(1);
input : length2(10),phase2(50),power2(1);
input : th(2);
input : color_bars(false);
input : no_trade(false);
var : src(0);
var : phaseRatio1(0),beta1(0),alpha1(0);
var : e0(0),e1(0),e2(0),jma1(0),jma_line(0);
var : phaseRatio2(0),beta2(0),alpha2(0);
var : z0(0),z1(0),z2(0),jma2(0),jma_line_fast(0);
var : rad2degree(0);
var : ma27(0),ma83(0),ma278(0);
var : jma_slope(0),jma_fast_slope(0);
var : ma27_slope(0),ma83_slope(0),ma278_slope(0);
var : rising_1(False),falling_1(False),color_1(0),color_2(0),color_3(0);
src = (o+h+l+c)/4;
phaseRatio1 = iff(phase1 < -100 , 0.5 , iff(phase1 > 100 , 2.5 , phase1 / 100 + 1.5));
beta1 = 0.45 * (length1 - 1) / (0.45 * (length1 - 1) + 2);
alpha1 = pow(beta1, power1);
e0 = (1 - alpha1) * src + alpha1 * iff(isnan(e0[1])==true,0,e0[1]);
e1 = (src - e0) * (1 - beta1) + beta1 * iff(isnan(e1[1])==true,0,e1[1]);
e2 = (e0 + phaseRatio1 * e1 - iff(IsNaN(jma1[1])==true,0,jma1[1])) * pow(1 - alpha1, 2) + pow(alpha1, 2) * iff(isnan(e2[1])==true,0,e2[1]);
jma1 = e2 + iff(isnan(jma1[1])==true,0,jma1[1]);
jma_line = jma1;
phaseRatio2 = iff(phase2 < -100 , 0.5 , iff(phase2 > 100 , 2.5 , phase2 / 100 + 1.5));
beta2 = 0.45 * (length2 - 1) / (0.45 * (length2 - 1) + 2);
alpha2 = pow(beta2, power2);
z0 = (1 - alpha2) * src + alpha2 * iff(isnan(z0[1])==true,0,z0[1]);
z1 = (src - z0) * (1 - beta2) + beta2 * iff(isnan(z1[1])==true,0,z1[1]);
z2 = (z0 + phaseRatio2 * z1 - iff(IsNaN(jma2[1])==true,0,jma2[1])) * pow(1 - alpha2, 2) + pow(alpha2, 2) * iff(isnan(z2[1])==true,0,z2[1]);
jma2 = z2 + iff(isnan(jma2[1])==true,0,jma2[1]);
jma_line_fast = jma2;
rad2degree = 180 / 3.14159265359; //pi
ma27 = ema(src, 27);
ma83 = ema(src, 83);
ma278 = ema(src, 278);
jma_slope = rad2degree * atan((jma_line[0] - jma_line[1]) / atr(14));
jma_fast_slope = rad2degree * atan((jma_line_fast[0] - jma_line_fast[1]) / atr(14));
ma27_slope = rad2degree * atan((ma27[0] - ma27[1]) / atr(14));
ma83_slope = rad2degree * atan((ma83[0] - ma83[1]) / atr(14));
ma278_slope = rad2degree * atan((ma278[0] - ma278[1]) / atr(14));
PlotBaseLine1(0);
rising_1 = ma27 > ma27[1];
falling_1 = ma27 < ma27[1];
color_1 = green;
color_2 = Cyan;
color_3 = red;
plot1(jma_slope, "jma slope", iff(jma_slope >= 0 , iff(rising_1 , green , color_1),IFf(falling_1 , red , maroon)));
plot2(jma_fast_slope, "jma slope", iff(jma_fast_slope >= 0 , green , red));
plot3(ma27_slope, "ma27 slope filter", iff(abs(ma27_slope) > th , Black , yellow));
plot4(ma83_slope, "ma83 slope filter", iff(abs(ma83_slope) > th , Black , yellow));
plot5(ma278_slope, "ma278 slope filter", iff(abs(ma278_slope) > th , Nan,yellow));
plot6(ma27_slope, "ma27 slope", iff(ma27_slope >= 0 , lime , Magenta));
plot7(ma83_slope, "ma83 slope", iff(ma83_slope >= 0 , color_2 , color_3));
plot8(ma278_slope, "ma278 slope", iff(ma278_slope >= 0 , green , red));
즐거운 하루되세요
> 다올 님이 쓴 글입니다.
> 제목 : 적용가능하도록 부탁드립니다.
> 트레이딩뷰 지표입니다.
적용가능하도록 부탁 드립니다.
study("ma angles - JD")
src = input(ohlc4, title="source")
th = input(2, minval=1, title="threshold for -no trade zones- in degrees")
color_bars = input(false, title="color bars?")
no_trade = input(false, title="black out bars in no trade zones?")
// definition of "Jurik Moving Average", by Everget
jma(_src, _length, _phase, _power) =>
phaseRatio = _phase < -100 ? 0.5 : _phase > 100 ? 2.5 : _phase / 100 + 1.5
beta = 0.45 * (_length - 1) / (0.45 * (_length - 1) + 2)
alpha = pow(beta, _power)
jma = 0.0
e0 = 0.0
e0 := (1 - alpha) * _src + alpha * nz(e0[1])
e1 = 0.0
e1 := (_src - e0) * (1 - beta) + beta * nz(e1[1])
e2 = 0.0
e2 := (e0 + phaseRatio * e1 - nz(jma[1])) * pow(1 - alpha, 2) +
pow(alpha, 2) * nz(e2[1])
jma := e2 + nz(jma[1])
jma
//// //// Determine Angle by KyJ //// ////
angle(_src) =>
rad2degree = 180 / 3.14159265359 //pi
ang = rad2degree * atan((_src[0] - _src[1]) / atr(14))
ang
jma_line = jma(src, 10, 50, 1)
jma_line_fast = jma(src, 10, 50, 2)
ma27 = ema(src, 27)
ma83 = ema(src, 83)
ma278 = ema(src, 278)
jma_slope = angle(jma_line)
jma_fast_slope = angle(jma_line_fast)
ma27_slope = angle(ma27)
ma83_slope = angle(ma83)
ma278_slope = angle(ma278)
hline(0)
rising_1 = rising(ma27, 1)
color_1 = color.new(color.green, 75)
falling_1 = falling(ma27, 1)
plot(jma_slope, title="jma slope", style=plot.style_area, color=jma_slope >= 0 ? rising_1 ? color.green : color_1 : falling_1 ? color.red : color.maroon)
plot(jma_fast_slope, title="jma slope", style=plot.style_line, color=jma_fast_slope >= 0 ? color.green : color.red, transp=0)
plot(ma27_slope, title="ma27 slope filter", style=plot.style_area, color=abs(ma27_slope) > th ? na : color.yellow)
plot(ma83_slope, title="ma83 slope filter", style=plot.style_area, color=abs(ma83_slope) > th ? na : color.yellow)
plot(ma278_slope, title="ma278 slope filter", style=plot.style_area, color=abs(ma278_slope) > th ? na : color.yellow)
plot(ma27_slope, title="ma27 slope", style=plot.style_line, linewidth=2, color=ma27_slope >= 0 ? color.lime : color.fuchsia)
color_2 = color.new(color.green, 0)
color_3 = color.new(color.red, 0)
plot(ma83_slope, title="ma83 slope", style=plot.style_line, color=ma83_slope >= 0 ? color_2 : color_3)
plot(ma278_slope, title="ma278 slope", style=plot.style_line, color=ma278_slope >= 0 ? color.green : color.red)
plotshape(ma27_slope >= 0 ? ma27 : na, style=shape.triangleup, location=location.bottom, color=color.green)
plotshape(ma27_slope < 0 ? ma27 : na, style=shape.triangledown, location=location.top, color=color.red)
plotshape(ma27_slope >= 0 and not(ma27_slope[1] >= 0) ? ma27 : na, style=shape.triangleup, location=location.bottom, size=size.tiny, color=color.green)
plotshape(ma27_slope < 0 and not(ma27_slope[1] < 0) ? ma27 : na, style=shape.triangledown, location=location.top, size=size.tiny, color=color.red)
rising_2 = rising(ma27, 1)
falling_2 = falling(ma27, 1)
barcolor(color_bars ? no_trade and abs(ma27_slope) <= th ? color.white : jma_slope >= 0 ? rising_2 ? color.lime : color.green : falling_2 ? color.fuchsia : color.red : na)