FLINNS wrote: Sun Dec 11, 2022 12:21 am Hey vvFish. Very interesting combination of lower indicators, could you share this template please.
All indicators are on this site, try to make your own template.
You will like it.
FLINNS wrote: Sun Dec 11, 2022 12:21 am Hey vvFish. Very interesting combination of lower indicators, could you share this template please.
Thanks. I will try.vvFish wrote: Sun Dec 11, 2022 1:05 am
All indicators are on this site, try to make your own template.
You will like it.
Thank you very much, an optimal indicator!mrtools wrote: Sat Dec 10, 2022 4:37 am Ehlers Fisher Transform Histogram with Jurik Smoothing & Slope Coloring options
Added the alerts and eft line slope coloring. Also, you can choose to use the histo or colored line and or the signal line. Tested the button seems to work fine for me but updated it a little bit.
Thanks for this. Does anyone know where I can find the modified Stochastic indicator by Ehlers from his classic 'Cycle Analytics'? For MT4 preferably?
Code: Select all
{
Modified Stochastic Indicator
© 2013 John F. Ehlers
}
Inputs:
Length(20);
Vars:
alpha1(0),
HP(0),
a1(0),
b1(0),
c1(0),
c2(0),
c3(0),
Filt(0),
HighestC(0),
LowestC(0),
count(0),
Stoc(0),
MyStochastic(0);
//Highpass filter cyclic components whose periods are shorter than 48 bars
alpha1 = (Cosine(.707*360 / 48) + Sine (.707*360 / 48) - 1) / Cosine(.707*360 / 48);
HP = (1 - alpha1 / 2)*(1 - alpha1 / 2)*(Close - 2*Close[1] + Close[2]) + 2*(1 - alpha1)*HP[1] - (1 - alpha1)*(1 - alpha1)*HP[2];
//Smooth with a Super Smoother Filter from equation 3-3
a1 = expvalue(-1.414*3.14159 / 10);
b1 = 2*a1*Cosine(1.414*180 / 10);
c2 = b1;
c3 = -a1*a1;
c1 = 1 - c2 - c3;
Filt = c1*(HP + HP[1]) / 2 + c2*Filt[1] + c3*Filt[2];
HighestC = Filt;
LowestC = Filt;
For count = 0 to Length - 1 Begin
If Filt[count] > HighestC then HighestC = Filt[count];
If Filt[count] < LowestC then LowestC = Filt[count];
End;
Stoc = (Filt - LowestC) / (HighestC - LowestC);
MyStochastic = c1*(Stoc + Stoc[1]) / 2 + c2*MyStochastic[1] + c3*MyStochastic[2];
Plot1(MyStochastic);
Sounds like this version by Mladen, I just made it new mt4 compatible.scarletPip wrote: Sun Dec 25, 2022 5:06 pm Thanks for this. Does anyone know where I can find the modified Stochastic indicator by Ehlers from his classic 'Cycle Analytics'? For MT4 preferably?
This is the EasyLanguage code snippet he provides in Chapter 7.
Code: Select all
{ Modified Stochastic Indicator © 2013 John F. Ehlers } Inputs: Length(20); Vars: alpha1(0), HP(0), a1(0), b1(0), c1(0), c2(0), c3(0), Filt(0), HighestC(0), LowestC(0), count(0), Stoc(0), MyStochastic(0); //Highpass filter cyclic components whose periods are shorter than 48 bars alpha1 = (Cosine(.707*360 / 48) + Sine (.707*360 / 48) - 1) / Cosine(.707*360 / 48); HP = (1 - alpha1 / 2)*(1 - alpha1 / 2)*(Close - 2*Close[1] + Close[2]) + 2*(1 - alpha1)*HP[1] - (1 - alpha1)*(1 - alpha1)*HP[2]; //Smooth with a Super Smoother Filter from equation 3-3 a1 = expvalue(-1.414*3.14159 / 10); b1 = 2*a1*Cosine(1.414*180 / 10); c2 = b1; c3 = -a1*a1; c1 = 1 - c2 - c3; Filt = c1*(HP + HP[1]) / 2 + c2*Filt[1] + c3*Filt[2]; HighestC = Filt; LowestC = Filt; For count = 0 to Length - 1 Begin If Filt[count] > HighestC then HighestC = Filt[count]; If Filt[count] < LowestC then LowestC = Filt[count]; End; Stoc = (Filt - LowestC) / (HighestC - LowestC); MyStochastic = c1*(Stoc + Stoc[1]) / 2 + c2*MyStochastic[1] + c3*MyStochastic[2]; Plot1(MyStochastic);
just saw MrTools post from MladenscarletPip wrote: Sun Dec 25, 2022 5:06 pm Thanks for this. Does anyone know where I can find the modified Stochastic indicator by Ehlers from his classic 'Cycle Analytics'? For MT4 preferably?
This is the EasyLanguage code snippet he provides in Chapter 7.
Code: Select all
{ Modified Stochastic Indicator © 2013 John F. Ehlers } Inputs: Length(20); Vars: alpha1(0), HP(0), a1(0), b1(0), c1(0), c2(0), c3(0), Filt(0), HighestC(0), LowestC(0), count(0), Stoc(0), MyStochastic(0); //Highpass filter cyclic components whose periods are shorter than 48 bars alpha1 = (Cosine(.707*360 / 48) + Sine (.707*360 / 48) - 1) / Cosine(.707*360 / 48); HP = (1 - alpha1 / 2)*(1 - alpha1 / 2)*(Close - 2*Close[1] + Close[2]) + 2*(1 - alpha1)*HP[1] - (1 - alpha1)*(1 - alpha1)*HP[2]; //Smooth with a Super Smoother Filter from equation 3-3 a1 = expvalue(-1.414*3.14159 / 10); b1 = 2*a1*Cosine(1.414*180 / 10); c2 = b1; c3 = -a1*a1; c1 = 1 - c2 - c3; Filt = c1*(HP + HP[1]) / 2 + c2*Filt[1] + c3*Filt[2]; HighestC = Filt; LowestC = Filt; For count = 0 to Length - 1 Begin If Filt[count] > HighestC then HighestC = Filt[count]; If Filt[count] < LowestC then LowestC = Filt[count]; End; Stoc = (Filt - LowestC) / (HighestC - LowestC); MyStochastic = c1*(Stoc + Stoc[1]) / 2 + c2*MyStochastic[1] + c3*MyStochastic[2]; Plot1(MyStochastic);
Code: Select all
{
Hurst Coefficient
© 2013 John F. Ehlers
}
Inputs:
Length(30); {Length must be an even number}
Vars:
a1(0),
b1(0),
c1(0),
c2(0),
c3(0),
count(0),
N1(0),
N2(0),
N3(0),
HH(0),
LL(0),
Dimen(0),
Hurst(0),
SmoothHurst(0);
//Smooth with a Super Smoother Filter from equation 3-3
a1 = expvalue(-1.414*3.14159 / 20);
b1 = 2*a1*Cosine(1.414*180 / 20);
c2 = b1;
c3 = -a1*a1;
c1 = 1 - c2 - c3;
N3 = (Highest(Close, Length) - Lowest(Close, Length)) / Length;
HH = Close;
LL = Close;
For count = 0 to Length / 2 - 1 begin
If Close[count] > HH then HH = Close[count];
If Close[count] < LL then LL = Close[count];
End;
N1 = (HH - LL) / (Length / 2);
HH = Close[Length / 2];
LL = Close[Length / 2];
For count = Length / 2 to Length - 1 begin
If Close[count] > HH then HH = Close[count];
If Close[count] < LL then LL = Close[count];
End;
N2 = (HH - LL)/(Length / 2);
If N1 > 0 and N2 > 0 and N3 > 0 then Dimen = .5*((Log(N1 + N2) - Log(N3)) / Log(2) + Dimen[1]);
Hurst = 2 - Dimen;
SmoothHurst = c1*(Hurst + Hurst[1]) / 2 + c2*SmoothHurst[1] + c3*SmoothHurst[2];
Plot1(SmoothHurst);
Code: Select all
{
Even Better Sinewave Indicator
© 2013 John F. Ehlers
}
Inputs:
Duration(40);
Vars:
alpha1(0),
HP(0),
a1(0),
b1(0),
c1(0),
c2(0),
c3(0),
Filt(0),
count(0),
Wave(0),
Pwr(0);
//HighPass filter cyclic components whose periods are shorter than Duration input
alpha1 = (1 - Sine (360 / Duration)) / Cosine(360 / Duration);
HP = .5*(1 + alpha1)*(Close - Close[1]) + alpha1*HP[1];
//Smooth with a Super Smoother Filter from equation 3-3
a1 = expvalue(-1.414*3.14159 / 10);
b1 = 2*a1*Cosine(1.414*180 / 10);
c2 = b1;
c3 = -a1*a1;
c1 = 1 - c2 - c3;
Filt = c1*(HP + HP[1]) / 2 + c2*Filt[1] + c3*Filt[2];
//3 Bar average of Wave amplitude and power
Wave = (Filt + Filt[1] + Filt[2]) / 3;
Pwr = (Filt*Filt + Filt[1]*Filt[1] + Filt[2]*Filt[2]) / 3;
//Normalize the Average Wave to Square Root of the Average Power
Wave = Wave / SquareRoot(Pwr);
Plot1(Wave);
Code: Select all
{
Hilbert Transformer Indicator
© 2013 John F. Ehlers
}
Inputs:
LPPeriod(20);
Vars:
alpha1(0),
HP(0),
a1(0),
b1(0),
c1(0),
c2(0),
c3(0),
Filt(0),
QFilt(0),
Real(0),
Quadrature(0),
IPeak(0),
QPeak(0),
Imag(0);
//Highpass filter cyclic components whose periods are shorter than 48 bars
alpha1 = (Cosine(.707*360 / 48) + Sine (.707*360 / 48) - 1) / Cosine(.707*360 / 48);
HP = (1 - alpha1 / 2)*(1 - alpha1 / 2)*(Close - 2*Close[1] + Close[2]) + 2*(1 - alpha1)*HP[1] - (1 - alpha1)*(1 - alpha1)*HP[2];
//Smooth with a Super Smoother Filter from equation 3-3
a1 = expvalue(-1.414*3.14159 / LPPeriod);
b1 = 2*a1*Cosine(1.414*180 / LPPeriod);
c2 = b1;
c3 = -a1*a1;
c1 = 1 - c2 - c3;
Filt = c1*(HP + HP[1]) / 2 + c2*Filt[1] + c3*Filt[2];
IPeak = .991*IPeak[1];
If Absvalue(Filt) > IPeak Then IPeak = AbsValue(Filt);
Real = Filt / IPeak;
Quadrature = (Real - Real[1]);
QPeak = .991*QPeak[1];
If Absvalue(Quadrature) > QPeak Then QPeak = AbsValue(Quadrature);
Quadrature = Quadrature /QPeak;
a1 = expvalue(-1.414*3.14159 / 10);
b1 = 2*a1*Cosine(1.414*180 / 10);
c2 = b1;
c3 = -a1*a1;
c1 = 1 - c2 - c3;
Imag = c1*(Quadrature + Quadrature[1]) / 2 + c2*Imag[1] + c3*Imag[2];
Plot1(Real);
Plot2(0);
Plot6(Imag);
Code: Select all
{
Autocorrelation Reversals
© 2013 John F. Ehlers
}
Inputs:
HPLength(48),
LPLength(10),
AvgLength(3);
Vars:
alpha1(0),
HP(0),
a1(0),
b1(0),
c1(0),
c2(0),
c3(0),
Filt(0),
M(0),
N(0),
X(0),
Y(0),
Lag(0),
count(0),
Sx(0),
Sy(0),
Sxx(0),
Syy(0),
Sxy(0),
SumDeltas(0),
Reversal(0);
Arrays:
Corr[48, 2](0);
//Highpass filter cyclic components whose periods are shorter than 48 bars
alpha1 = (Cosine(.707*360 / 48) + Sine (.707*360 / 48) - 1) / Cosine(.707*360 / 48);
HP = (1 - alpha1 / 2)*(1 - alpha1 / 2)*(Close - 2*Close[1] + Close[2]) + 2*(1 - alpha1)*HP[1] - (1 - alpha1)*
(1 - alpha1)*HP[2];
//Smooth with a Super Smoother Filter from equation 3-3
a1 = expvalue(-1.414*3.14159 / LPLength);
b1 = 2*a1*Cosine(1.414*180 / LPLength);
c2 = b1;
c3 = -a1*a1;
c1 = 1 - c2 - c3;
Filt = c1*(HP + HP[1]) / 2 + c2*Filt[1] + c3*Filt[2];
//Pearson correlation for each value of lag
For Lag = 3 to 48 Begin
Corr[Lag, 2] = Corr[Lag, 1];
//Set the averaging length as M
M = AvgLength;
If AvgLength = 0 Then M = Lag;
//Initialize correlation sums
Sx = 0;
Sy = 0;
Sxx = 0;
Syy = 0;
Sxy = 0;
//Advance samples of both data streams and sum Pearson components
For count = 0 to M - 1 Begin
X = Filt[count];
Y = Filt[Lag + count];
Sx = Sx + X;
Sy = Sy + Y;
Sxx = Sxx + X*X;
Sxy = Sxy + X*Y;
Syy = Syy + Y*Y;
End;
//Compute correlation for each value of lag
If (M*Sxx - Sx*Sx)*(M*Syy - Sy*Sy) > 0 Then Corr[Lag, 1] = (M*Sxy - Sx*Sy)/SquareRoot((M*Sxx - Sx*Sx)*(M*Syy - Sy*Sy));
//Scale each correlation to range between 0 and 1
Corr[Lag, 1] = .5*(Corr[Lag, 1] + 1);
End;
SumDeltas = 0;
For Lag = 3 to 48 Begin
If (Corr[Lag, 1] > .5 and Corr[Lag, 2] < .5) Or (Corr[Lag, 1] < .5 and Corr[Lag, 2] > .5) Then SumDeltas = SumDeltas + 1;
End;
Reversal = 0;
If SumDeltas > 24 Then Reversal = 1;
Plot1(Reversal);
Users browsing this forum: Abdi, adriano.ecker, Amazon [Bot], ChatGPT [Bot], Facebook [Crawler], Jimmy, kvak, MTSW, muhammadFarooq2k20, purin69, ROI, TheJurgFX, Xxcoincoin and 111 guests