indicator · own pane · open source
Fisher Transform
Running…
Loading chart…
About
Fisher Transform stretches price into a near-Gaussian distribution then inverts the CDF so turns become sharp peaks. Excellent reversal oscillator.
- Above +1.6 = overbought, below -1.6 = oversold.
- Crossover of trigger (previous bar's value) flags momentum shifts.
- Raise
Lengthfor steadier swings on noisy assets.
Source code
//@version=5
indicator("Fisher Transform", overlay=false)
len = input.int(10, "Length", minval=2, maxval=100)
var float val = 0.0
var float fish = 0.0
hlc3 = (high + low + close) / 3.0
val := 0.33 * 2.0 * ((hlc3 - ta.lowest(hlc3, len)) / (ta.highest(hlc3, len) - ta.lowest(hlc3, len)) - 0.5) + 0.67 * nz(val[1], 0.0)
fish := 0.5 * math.log((1.0 + val) / (1.0 - val)) + 0.5 * nz(fish[1], 0.0)
trigger = nz(fish[1], fish)
hline(1.6, "Overbought", color=color.gray, linestyle=hline.style_dashed)
hline(-1.6, "Oversold", color=color.gray, linestyle=hline.style_dashed)
p_Fisher = plot(fish, "Fisher", color=color.blue, linewidth=2)
p_Trigger = plot(trigger, "Trigger", color=color.red)
alertcondition(ta.crossover(fish, trigger), "Fisher crosses trigger up", "Fisher crossed above trigger")
alertcondition(ta.crossunder(fish, trigger), "Fisher crosses trigger down", "Fisher crossed below trigger")
No comments yet.
Sign in to comment.