Skip to content
On this page
  1. Key Takeaways
  2. What It Is
  3. The Intuition
  4. How It Works
  5. Worked Example
  6. Common Mistakes
  7. Frequently Asked Questions
  8. Sources
  9. Disclaimer
← All concepts
Technical AnalysisAdvanced5 min read

Fisher Transform: Turning Prices Into a Gaussian Signal

The **Fisher transform indicator** is a momentum tool created by John Ehlers and described in his MESA Software paper "Using the Fisher Transform." It applies a non-linear transform to normalized price data so that what would be a near-flat density becomes a near-Gaussian one, making turning points stand out as sharp spikes.

Key Takeaways

  • The Fisher transform formula is F(y) equals one half times the natural log of (1 plus y) over (1 minus y).
  • Inputs must be normalized inside the open interval minus 1 to plus 1 before the transform.
  • Ehlers' purpose is to turn the price PDF into something closer to Gaussian for cleaner extreme reads.
  • The standard trigger is a one-bar lagged version of the Fisher line, with crossovers marking turns.

Key Takeaways

  • The Fisher transform formula is F(y) equals one half times the natural log of (1 plus y) over (1 minus y).
  • Inputs must be normalized inside the open interval minus 1 to plus 1 before the transform.
  • Ehlers' purpose is to turn the price PDF into something closer to Gaussian for cleaner extreme reads.
  • The standard trigger is a one-bar lagged version of the Fisher line, with crossovers marking turns.

What It Is

The Fisher transform is not a trading rule by itself. It is a mathematical transform borrowed from statistics and applied to normalized prices. Ehlers' contribution was recognizing that financial price returns are not Gaussian, and that an indicator based on Gaussian assumptions will mislead the user near extremes.

By warping the normalized input through the Fisher function, large moves near the edges of the recent range are stretched far away from zero while small moves near the center are barely changed. The output looks like sharp spikes at turning points and quiet flat sections in between.

The Intuition

A normalized stochastic-style price reading is bounded between minus 1 and plus 1. Its probability density is roughly flat across that range, so the indicator gives you little extra information at the edges. Most reversal signals come from the same range as most everyday noise.

The Fisher transform pushes the edges out toward infinity while leaving the middle nearly unchanged. Extreme values become rare and visually obvious. When the Fisher line spikes far from zero and then turns, the turn is unambiguous because most readings stay near zero.

How It Works

The standard implementation uses the high-low midpoint over a recent lookback window:

Mid = (High + Low) / 2
Range = highest_high(n) - lowest_low(n)
Value = 0.66 x ((Mid - lowest_low(n)) / Range - 0.5) + 0.67 x Value_prior
Value = max(min(Value, 0.999), -0.999)
Fisher = 0.5 x ln((1 + Value) / (1 - Value)) + 0.5 x Fisher_prior

Step one places the midpoint inside the n-bar high-low range and shifts it so the output sits between minus 0.5 and plus 0.5. Ehlers' published code multiplies by 0.66 and smooths with two-thirds of the previous Value to add stability. The clamping to plus or minus 0.999 keeps the logarithm finite.

The Fisher transform itself is the natural log expression with an extra half-step smoothing on the prior Fisher reading. A "trigger" line, equal to Fisher delayed by one bar, is plotted alongside. Crossovers between Fisher and trigger flag potential reversals.

Worked Example

Suppose the highest high and lowest low over the last 10 bars are 105 and 95, and the current midpoint is 104. The unnormalized stochastic-style reading is:

(104 - 95) / (105 - 95) = 0.90
Shifted = (0.90 - 0.5) = 0.40

Assume Value_prior was 0.10. Then:

Value = 0.66 x 0.40 + 0.67 x 0.10 = 0.264 + 0.067 = 0.331
Fisher = 0.5 x ln((1 + 0.331) / (1 - 0.331)) + 0.5 x Fisher_prior
       = 0.5 x ln(1.331 / 0.669) + 0.5 x Fisher_prior
       = 0.5 x ln(1.990) + 0.5 x Fisher_prior
       = 0.5 x 0.688 + 0.5 x Fisher_prior

If Fisher_prior was 0.20, the new Fisher reads 0.544. As Value approaches plus 0.99 during a strong rally, the logarithm explodes and Fisher prints values such as 2 or 3, far outside its usual range. Those spikes are the visual signal Ehlers built the tool to produce.

Common Mistakes

  1. Skipping the normalization step. The transform requires inputs strictly inside minus 1 and plus 1. Feeding raw prices or unbounded RSI values produces nonsense.
  2. Reading Fisher as a fixed overbought-oversold scale. Fisher has no fixed bounds because the log function is unbounded. The same numerical level means different things in different volatility regimes.
  3. Acting on every spike. Ehlers' rule is to wait for the Fisher line to cross its one-bar lagged trigger, not to trade the raw spike.
  4. Using too short a lookback. A 5-bar lookback makes Fisher whippy. The original paper uses 10, and longer lookbacks behave better on slower charts.
  5. Confusing Fisher with the inverse Fisher transform. Ehlers later published an inverse Fisher transform for a different purpose. The two indicators look similar but are not interchangeable.

Frequently Asked Questions

What is the Fisher transform indicator in simple terms? The Fisher transform takes a normalized price reading and stretches its extremes so reversals look like sharp spikes. John Ehlers designed it because actual price data has fatter tails than a Gaussian assumption allows.

How does the Fisher transform indicator affect investment decisions? Swing traders use Fisher transform crossovers with its trigger line to time entries near short-term reversals. The clear spike pattern makes it easier to read extremes than a flat stochastic.

What is a real-world example of the Fisher transform indicator? On a sharp climax move at the top of a multi-week rally, Fisher often prints a spike well above its usual range, then crosses below its trigger line on the next bar. That pattern is the visual setup the indicator was designed to surface.

How can investors use the Fisher transform indicator effectively? Pair Fisher with its one-bar lagged trigger line and use crossover rules rather than raw level rules. Confirm with price structure or a separate trend filter before acting.

How is the Fisher transform indicator different from a stochastic? A stochastic gives a bounded 0 to 100 reading with roughly uniform density. The Fisher transform reshapes that reading so its density approaches Gaussian, making extremes much more visually distinct.

Sources

  1. Ehlers, J. F. Using the Fisher Transform. MESA Software. https://www.mesasoftware.com/papers/UsingTheFisherTransform.pdf
  2. Ehlers, J. F. The Inverse Fisher Transform. MESA Software. https://www.mesasoftware.com/papers/TheInverseFisherTransform.pdf
  3. MESA Software. John Ehlers Technical Papers Index. https://www.mesasoftware.com/TechnicalArticles.htm
  4. Trading Technologies. Ehler Fisher Transformation. https://library.tradingtechnologies.com/trade/chrt-ti-ehler-fisher-transformation.html

Disclaimer

This article is educational content only and is not financial advice. Nothing here is a recommendation to buy, sell, or hold any security. Consult a licensed advisor before making investment decisions.

The IWP Substack

You understand the concept. Now see it applied.

The Investing With Purpose Substack turns ideas like this into research and risk-managed trade plans on real stocks, updated every week.

Read on Substack (opens in a new tab)

Related concepts