Charts See the terminal

Fisher Transform

Rescales price within its recent range so that turning points show as sharp peaks and troughs, with a one-bar-lagged trigger line.

Oscillator Add to chart

Live Fisher Transform preview · BTC/USDT · Binance

What is Fisher Transform?

The Fisher Transform takes the midpoint of each bar, the average of its high and low, and measures where it sits in the range of the last 9 midpoints. That position is smoothed and then stretched with a logarithmic transform that pulls values near the edges of the range out much further. The effect is that readings near the extremes, which a bounded oscillator would flatten, show as sharp peaks and troughs. Altrady Charts plots two lines, Fisher and Trigger, around a dashed zero line.

The Fisher Transform is built to make turning points easier to see. It is not bounded to a fixed scale, and a sharp peak does not confirm that price has turned.

How to use Fisher Transform

  • Fisher crossing Trigger. Trigger is simply the previous bar's Fisher value. When Fisher crosses below Trigger after a high peak, the line has started to fall; a cross above after a deep trough is the reverse.
  • Extreme peaks. Large positive or negative values mean the midpoint has stayed near the top or bottom of its 9-bar range for several bars.
  • The zero line. Above zero, the midpoint has been in the upper half of its recent range on balance; below zero, the lower half.
  • Period length. A shorter length makes the line turn more often; a longer one gives fewer, broader swings.

These are ways to read the lines, not entry signals on their own.

Settings

SettingDefaultWhat it changes
Length9 Bars in the range the midpoint is measured against. Lower makes the line swing and cross more often; higher smooths it. Minimum 1.

Adjust the length in the indicator settings. The indicator always uses the bar midpoint (hl2).

Calculation

The midpoint's position in its range, centred on zero, is blended with the previous value, kept short of ±1, and then transformed:

pos   = (hl2 - lowest hl2 of 9) / max(highest hl2 of 9 - lowest hl2 of 9, 0.001) - 0.5
v     = 0.66 * pos + 0.67 * previous v
v     = 0.999 if v > 0.99, -0.999 if v < -0.99
Fisher  = 0.5 * ln((1 + v) / (1 - v)) + 0.5 * previous Fisher
Trigger = previous Fisher

The bound is not a plain clamp. Any value beyond 0.99 jumps to 0.999, so a reading of 0.995 becomes 0.999. That matters because the logarithm grows quickly near ±1: 0.995 would give about 2.65, while 0.999 gives about 3.80. The range is floored at 0.001 so that nine identical midpoints do not divide by zero.

Both smoothing steps treat the missing previous value as zero on their first bar. The 9-bar range is complete on the 9th bar of loaded history, so Fisher starts there and Trigger one bar later.

Limitations

  • It is unbounded. Fisher has no fixed top or bottom, so what counts as extreme differs between markets and timeframes.
  • Many crossings. Because Trigger is just the previous bar, Fisher and Trigger cross at every turn of the line, including small ones in sideways markets.
  • The bound creates jumps. When the smoothed value passes 0.99 it snaps to 0.999, which can produce an abrupt step in the line.
  • The live candle moves. The current bar's values change until that bar closes.
  • It ignores the close. The calculation uses only each bar's high and low, so where a bar closed has no direct effect.

Frequently asked questions

The Fisher Transform is an oscillator that measures where the bar midpoint sits in its recent range, smooths that position and stretches it with a logarithmic transform. Readings near the edges of the range become sharp peaks and troughs, which makes turning points easier to see.

Watch for Fisher crossing its Trigger line, which is the previous bar's Fisher value, especially after a large peak or trough. Above zero means the midpoint has been in the upper part of its recent range, below zero the lower part. Crossings are frequent, so they are usually read together with other context.

Yes. The indicator declares one input: Length, default 9 with a minimum of 1. Open the indicator's settings on the chart to change it. The indicator always uses the bar midpoint, the average of high and low.

Values on bars that have already closed are not revised. The current candle's values move while it is still live and settle when it closes. Both lines carry the previous bar's value forward, so loading older history recalculates them from a new starting point, and values near the very start of the loaded range can shift.

Before the transform, the smoothed value is kept away from ±1. Any value beyond 0.99 is set to 0.999, which makes the transformed value step up sharply. The jump is part of the calculation, not a data error.

Use the Add to chart button at the top of this page. It opens BTC/USDT on Binance in the Altrady Charts terminal with the built-in Fisher Transform already applied. On any other market, open the indicator picker on the chart and choose Fisher Transform from the Oscillator group.

Add to chart