{Mark Jurik is a well known and respected name in technical analysis. he provides a number of advanced tools to traders.
The JMA is his product, which is a smoother, less noisy and low lag moving average.
Mr Jurik also provides a smoother, low lag RSI.
I cam accross a code in tradingview.com which calculated a Jurik RSI Clone. Now,it is quite possible that the clone may be
nothing like the original Jurik RSI.
But, for whatever it is worth, I converted the tradingview code into Multicharts which is easylanguage compatible}
{ Trading viewcode is here: https://www.tradingview.com/script/XzcIRUHv-JMA-RSX-Clone-LazyBear/}
input: src(close), Length(14), lvlob(70), lvlos(30), mid(50);
vars: f90_(1), f88(1);
vars: clampmax(0), clampmin(0);
vars: f8(1), f18(1),f20(1),f10(1),v8(1);
vars: f28(1), f30(1), vC(1);
vars: f38(1),f40(1), v10(1),f48(1),f50(1),v14(1),f58(1),f60(1),v18(1);
vars: f68(1),f70(1), v1C(1), f78(1),f80(1), f90(1), v20(1),f0(1),v4(1),v4_(1),rsx(1);
clampmax = 100;
clampmin = 0;
if currentbar > 1 then begin
if f90_[1] = 0 then begin
f90_ = 1;
end
else begin
if f88[1] <= f90_[1] then begin
f90_ = f88[1] + 1;
end
else begin
f90_ = f90_[1] + 1;
end;
end;
if f90_[1] = 0.0 and (length-1 >= 5) then begin
f88 = Length - 1.0;
end
else begin
f88 = 5.0;
end;
f8 = 100.0*(src);
f18 = 3.0 / (length + 2.0) ;
f20 = 1.0 - f18 ;
f10 = f8[1];
v8 = f8 - f10 ;
f28 = f20 * f28[1] + f18 * v8;
f30 = f18 * f28 + f20 * f30[1];
vC = f28 * 1.5 - f30 * 0.5;
f38 = f20 * f38[1] + f18 * vC;
f40 = f18 * f38 + f20 * f40[1];
v10 = f38 * 1.5 - f40 * 0.5;
f48 = f20 * f48[1] + f18 * v10;
f50 = f18 * f48 + f20 * f50[1];
v14 = f48 * 1.5 - f50 * 0.5;
f58 = f20 * f58[1] + f18 * absvalue(v8);
f60 = f18 * f58 + f20 * f60[1];
v18 = f58 * 1.5 - f60 * 0.5;
f68 = f20 * f68[1] + f18 * v18;
f70 = f18 * f68 + f20 * f70[1];
v1C = f68 * 1.5 - f70 * 0.5;
f78 = f20 * f78[1] + f18 * v1C;
f80 = f18 * f78 + f20 * f80[1];
v20 = f78 * 1.5 - f80 * 0.5;
if (f88 >= f90_) and (f8 <> f10) then
f0 = 1.0 else f0 = 0.0;
if (f88 = f90_) and (f0 = 0.0) then f90 = 0 else f90 = f90_;
if (f88 < f90) and (v20 > 0.0000000001) then
v4_ = (v14 / v20 + 1.0) * 50.0
else
v4 = 50.0;
if (v4_ > 100.0) then begin
rsx = 100.0;
end
else begin
if v4_ < 0.0 then rsx = 0 else rsx = v4_;
end;
end;
plot1(rsx,"RSX");
plot2(lvlob,"Res");
plot3(lvlos,"Sup");
plot4(mid,"mid");
|