The fisher transform indicator by John Ehlers is a range oscillator showing where today's price is within the past N-days highest and lowest, with some smoothing is used plus what's known in mathematics as a fisher transform. This is similar to Stochastics and Williams %R but the transformation stretches values near the high and low, helping to highlight extremes. =head2 Calculation
The calculation is as follows. The prices used are the midpoint between the day's high and low (as in most of Ehlers' indicators). Today's price is located within the highest and lowest of those prices from the past N days, scaled to -1 for the low and 1 for the high.
price = (high + low) / 2 price - Ndaylow raw = 2 * ------------------ - 1 Ndayhigh - Ndaylow
This raw position is smoothed by a 5-day EMA and a log form which is the mathematical fisher transform, before a final further 3-day EMA smoothing.
smoothed = EMA[5] of raw 1 + smoothed fisher = EMA[3] of 0.5 * log ------------ 1 - smoothed
The standard Fisher-Transform works with a 10-days parameter : n = 10
GT::Indicators::FISH->new() GT::Indicators::FISH->new([20])
If you need a 30 days Fisher Transform of the opening prices you can write one of those lines :
GT::Indicators::FISH->new([30, "{I:Prices OPEN}"])
A 10 days Fisher Transform of the RSI could be created with :
GT::Indicators::FISH->new([10, "{I:RSI}"])