# All John Ehlers Indicators... - page 59

298

as far as Fisher transform is concerned evaluation is here. Its just range compressor/decompressor and don't give any extra value

according to this article. On the other side there are some people who are trying to made a living from selling 'modified fisher'....

Ensign Software - Studies: Inverse Fisher Transform

Krzysztof

298

in case of Close smoothing also no difference. You can argue that for some time series will work better than SMA but i believe it must be proven first.

So new book, new theories, new site and at least for me it looks a bit scamyyyyy

Krzysztof

Files:
3.jpg 332 kb
4.jpg 286 kb
26

Thank you very much for those replies. I am just trawling through Mr Ehler's latest book. On another tack, near the end of the book, he states that "the inverse fisher transform of the adaptive stochastic indicator gives clear and unambiguous indications of proper buy and sell points"

The code is also given (in simple code format) as:

Step 1 the Adaptive stochastic indicator code is:

{

(c) 2013 John F. Ehlers

}

Vars:

AvgLength(3),

M(0),

N(0),

X(0),

Y(0),

alpha1(0),

HP(0),

a1(0),

b1(0),

c1(0),

c2(0),

c3(0),

Filt(0),

Lag(0),

count(0),

Sx(0),

Sy(0),

Sxx(0),

Syy(0),

Sxy(0),

Period(0),

Sp(0),

Spx(0),

MaxPwr(0),

DominantCycle(0);

Arrays:

Corr[48](0),

CosinePart[48](0),

SinePart[48](0),

SqSum[48](0),

R[48, 2](0),

Pwr[48](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];

//Pearson correlation for each value of lag

For Lag = 0 to 48 Begin

//Set the averaging length as M

M = AvgLength;

If AvgLength = 0 Then M = Lag;

Sx = 0;

Sy = 0;

Sxx = 0;

Syy = 0;

Sxy = 0;

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;

If (M*Sxx - Sx*Sx)*(M*Syy - Sy*Sy) > 0 Then Corr[Lag] = (M*Sxy - Sx*Sy)/SquareRoot((M*Sxx - Sx*Sx)*(M*Syy - Sy*Sy));

End;

For Period = 10 to 48 Begin

CosinePart[Period] = 0;

SinePart[Period] = 0;

For N = 3 to 48 Begin

CosinePart[Period] = CosinePart[Period] + Corr[N]*Cosine(360*N / Period);

SinePart[Period] = SinePart[Period] + Corr[N]*Sine(360*N / Period);

End;

SqSum[Period] = CosinePart[Period]*CosinePart[Period] + SinePart[Period]*SinePart[Period];

End;

For Period = 10 to 48 Begin

R[Period, 2] = R[Period, 1];

R[Period, 1] = .2*SqSum[Period]*SqSum[Period] + .8*R[Period, 2];

End;

//Find Maximum Power Level for Normalization

MaxPwr = .995*MaxPwr;

For Period = 10 to 48 Begin

If R[Period, 1] > MaxPwr Then MaxPwr = R[Period, 1];

End;

For Period = 3 to 48 Begin

Pwr[Period] = R[Period, 1] / MaxPwr;

End;

//Compute the dominant cycle using the CG of the spectrum

Spx = 0;

Sp = 0;

For Period = 10 to 48 Begin

If Pwr[Period] >= .5 Then Begin

Spx = Spx + Period*Pwr[Period];

Sp = Sp + Pwr[Period];

End;

End;

If Sp 0 Then DominantCycle = Spx / Sp;

If DominantCycle < 10 Then DominantCycle = 10;

If DominantCycle > 48 Then DominantCycle = 48;

//Stochastic Computation starts here

Vars:

HighestC(0),

LowestC(0),

Stoc(0),

SmoothNum(0),

SmoothDenom(0),

HighestC = Filt;

LowestC = Filt;

For count = 0 to DominantCycle - 1 Begin

If Filt[count] > HighestC then HighestC = Filt[count];

If Filt[count] < LowestC then LowestC = Filt[count];

End;

Stoc = (Filt - LowestC) / (HighestC - LowestC);

Plot2(.7);

Plot6(.3);

Step 2 to implement the inverse fisher transform on the adaptive stochastic indicator:

Vars:

IFish(0) ;

Value1 = 2*(AdaptiveStochastic - .5) ;

IFish = (ExpValue(2*3*Value1) - 1) / (ExpValue(2*3*Value1) + 1) ;

Plot1(IFish) ;

Plot4(.9*IFish[1]) ;

A trigger line is added which is the Fisher transform delayed by one bar and attenuated to 90 percent.

Step 4 A development added by me:

If possible a variant of the above (Inverse Fisher adaptive Stochastic indicator) should be developed which is MTF so that higher time-frame versions can be displayed also.

I think these 2 indicators the Inverse Fisher adaptive Stochastic indicator and the MTF Inverse Fisher adaptive Stochastic indicator would be potentially very interesting indicators to test if anyone is please able to produce in MT4 ?

Best Regards

Nigel

298

No need to convert to MT4, just use tradestation or Multicharts and make a Walk Forward analysis to check if it works, code you have ready. You can take a trial of Multicharts, it has Walk Forward analyzer build in. I also checked roofing filter recently and it has huge overshoot after changing direction of the trend which is disqualifying.

All those book authors want to sell their books not trade, this is a reason they don't make proper evaluation of theirs ideas, paper accepts everything...

Krzysztof

273

Nigel99:

Unless I am mistaken, at about the 27 min point (of the earlier attached vid) Mr Ehler introduces the "Stochastic preceded by a Roofing Filter" saying that "..I put the roofing filter in front of the stochastic...". My understanding is that this achieves a zero mean and it also removes the spectral dilation (ie what makes a normal stochastic run up against the top and bottom of the indicator window). I caught the earlier roofing filter on this site thanks for referring.

So it is still seeming to me that putting a roofing filter in front of the inverse fisher transform and displaying in histo form would approximate the MESA momentum propriety indicator.

Is there any possibility that you might have an idea how either the:

1. Roofing filter in front of a stochastic, or

2. Roofing filter in front of an inverse fisher transform in histo form, might be derived ?

I think they might be valuable

Best Regards

Nigel

Hi Nigel,

mladen has coded "SuperSmoother" as a function. You can use it to pre-smooth a time series and in my opinion it works well for that. I have attached an indicator written by mladen where I have added presmoothing as an example. This may come close to what you are looking for. If not you can certainly modify most indicators this way.

The indicator is "Phase Change Index originally by M.H. Pee. Here is GPBUSD daily set to 16 periods with 5 period pre-smoothing.

The indicator is sensitive to its period length. It is best used if you have an idea what the period length should be.

Edit: I have deleted the indicator as I can't remember if it originally came from the Elite section. It is possible. If it is ok with mladen, I will post it again.

Kind regards,

Alex

Files:
9549

This is mama oscillator with a t3 signal dotted line the indicator is also compatible with newer mt4 builds.

Files:
201585

fajst_k:
in case of Close smoothing also no difference. You can argue that for some time series will work better than SMA but i believe it must be proven first.

So new book, new theories, new site and at least for me it looks a bit scamyyyyy

Krzysztof

Krzysztof

Why are you comparing short calculating periods?

The shorter the calculating period the more similar the results will be (ending in calculating period 1 when all averages / smoothing / filters will be exactly the same). Why not comparing longer periods and same periods?

Even adaptive averages / smoothers / filters can not adapt properly for very short periods and even those will give results very similar to a simple moving average if the calculating period is short enough

298

According to John E. purpose of SS is to kill high frequency noise i.e. periods =< 10 bars. I compare to SMA(5) because SMA(5) has the same lag like SS(10) and its passband is 2*n . Than you can check which one is smoothing better and they smooth the same. Just enough to plot both of them and you can see that plot is the same.

It means that at least for USDJPY 1 min high frequency noise (if it exist) is smoothed on the same level by SMA(l/2) ans SS(l) . For other lengths

he is using HP filter. See also chapter 'Market Data Structure' in his 'Predictive Indicators' paper and the picture with aliasing noise and specrtal dilation noise. I'm just very curious how he got it and how does it look e.g. for FOREX data.

Krzysztof

201585

fajst_k:
According to John E. purpose of SS is to kill high frequency noise i.e. periods =< 10 bars. I compare to SMA(5) because SMA(5) has the same lag like SS(10) and its passband is 2*n . Than you can check which one is smoothing better and they smooth the same. Just enough to plot both of them and you can see that plot is the same.

It means that at least for USDJPY 1 min high frequency noise (if it exist) is smoothed on the same level by SMA(l/2) ans SS(l) . For other lengths

he is using HP filter. See also chapter 'Market Data Structure' in his 'Predictive Indicators' paper and the picture with aliasing noise and specrtal dilation noise. I'm just very curious how he got it and how does it look e.g. for FOREX data.

Krzysztof

Krzysztof

Comparing different length smoothers / filters / averages is (at least in my opinion) not a fair comparison. But then, that is my opinion. We could simply decide on using one filter and use it on everything we make over and over, but how should we decide what to use for that purpose and how should we decide that something is the best there is if we do not experiment, investigate and attempt different approaches?

I myself too told a lot of times that John Ehlers tends to tell first and then is trying to produce a proof for what he told and not what we can see with our naked eyes. But at least he is experimenting. If it is good or not does not matter too much : he simply has the guts to state and do something and to get bashed for that (if he deserves to get bashed), so we should give him a credit of trying to push the limits

I never understood attempts of using 2-3 bars filters in an attempt to find out a trend (whatever we consider to be a "trend"). But again, that is just my opinion

26

hughesfleming:

Hi Nigel,

mladen has coded "SuperSmoother" as a function. You can use it to pre-smooth a time series and in my opinion it works well for that. I have attached an indicator written by mladen where I have added presmoothing as an example. This may come close to what you are looking for. If not you can certainly modify most indicators this way.

The indicator is "Phase Change Index originally by M.H. Pee. Here is GPBUSD daily set to 16 periods with 5 period pre-smoothing.

The indicator is sensitive to its period length. It is best used if you have an idea what the period length should be.

Edit: I have deleted the indicator as I can't remember if it originally came from the Elite section. It is possible. If it is ok with mladen, I will post it again.

Kind regards,

Alex

Alex,