indicator · own pane · open source
Ehlers Fisher Transform
Running…
Loading chart…
About
Ehlers Fisher Transform — compresses price into a near-Gaussian distribution and applies a Fisher inverse so turns become sharp peaks instead of rounded ones. Excellent for spotting reversals at extremes.
- Reads overbought / oversold above +1.6 / below -1.6.
- Crosses of the trigger line are momentum signals.
Source code
//@version=5
indicator("Ehlers Fisher Transform", overlay=false)
len = input.int(10, "Length", minval=2, maxval=50)
var float val = 0.0
var float fish = 0.0
hlc3 = (high + low + close) / 3
val := 0.33 * 2 * ((hlc3 - ta.lowest(hlc3, len)) / (ta.highest(hlc3, len) - ta.lowest(hlc3, len)) - 0.5) + 0.67 * nz(val[1], 0)
fish := 0.5 * math.log((1 + val) / (1 - val)) + 0.5 * nz(fish[1], 0)
trigger = fish[1]
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 up", "Fisher crossed above trigger")
alertcondition(ta.crossunder(fish, trigger), "Fisher down", "Fisher crossed below trigger")
No comments yet.
Sign in to comment.