Fisher Transform

Updated: October 10, 2025

Title: The Fisher Transform Indicator — what it is, how it’s calculated, how to trade with it, and practical steps

Summary
– The Fisher Transform (FT) is a technical indicator created by John F. Ehlers that converts price data into a distribution that more closely resembles a Gaussian (normal) distribution.
– FT emphasizes price extremes and makes turning points easier to spot by stretching values near extremes and compressing values near the center.
– Typical use: identify potential reversals (extremes) and generate entry/exit signals from crossovers of the FT line and a signal line.
– Use with a trend filter and other confirmations; it is not a standalone guarantee of profit.

Sources: John F. Ehlers (creator); Investopedia article on the Fisher Transform (https://www.investopedia.com/terms/f/fisher-transform.asp); additional practitioner notes (e.g., Quantified Strategies).

1) The idea in plain language
– Prices are not normally distributed; they cluster and produce asymmetrical swings. The Fisher Transform maps recent price values into a variable X between −1 and +1, then applies the Fisher (inverse hyperbolic tangent) function to magnify values near the extremes.
– After transformation, extreme highs and lows become more pronounced and rarer on the indicator scale, which helps traders spot likely turning points and analyze the internal “waves” within a trend.

2) Formula and the practical calculation steps
Core formula:
– FisherTransform = 0.5 * ln((1 + X) / (1 − X))

Here X is a normalized price value constrained to (−1, +1). A widely used practical version (from Ehlers’ approach implemented by many platforms) is:

Step‑by‑step (common implementation)
1. Choose a lookback period n (typical values: 9 or 10).
2. For each bar, compute the normalized price level L:
L = (price − lowest(n)) / (highest(n) − lowest(n))
where highest(n) and lowest(n) are the highest and lowest prices over the past n bars. Use close, median price, or (high+low)/2 depending on preference.
3. Convert L to a centered value in [−0.5, +0.5]:
Lc = 2 * (L − 0.5)
4. Apply smoothing to create X (pre‑Fisher value). A commonly used empirical smoothing is:
X_t = 0.33 * Lc + 0.67 * X_{t−1}
(initialize X_{t−1} = 0)
5. Clamp X_t to the open interval (−0.999, +0.999) to avoid division by zero or infinite logs.
6. Compute the Fisher Transform and add a small smoothing/lag term (common implementation):
Fisher_t = 0.5 * ln((1 + X_t)/(1 − X_t)) + 0.5 * Fisher_{t−1}
(initialize Fisher_{t−1} = 0)
7. Optionally compute a signal/trigger line — common choices:
– Fisher signal = Fisher_{t−1} (previous bar’s Fisher), or
– a short moving average (e.g., 3‑period EMA or SMA) of Fisher.

Notes:
– The coefficients (0.33 and 0.67) are empirical values used by many charting platforms; alternative smoothing schemes are possible.
– Different platforms may use close, median, or typical price for the “price” input. Always confirm the platform’s implementation.

3) How to interpret the Fisher Transform
– Extremes: Very high positive FT readings indicate strong overextension to the upside; very low negative FT readings indicate downside extension. These are potential reversal zones.
– Crossovers: When the FT crosses below its signal after an extreme high, that can be a sell signal; when it crosses above its signal after an extreme low, that can be a buy signal.
– Divergence: If price makes a new high but FT does not (or vice versa), this can suggest weakening momentum and a possible reversal.
– Unbounded indicator: FT values can vary across assets — what’s extreme for one asset may not be for another. Define “extreme” relative to the asset’s historical FT range.

4) Practical trading rules (examples you can adapt)
Always use risk management (position sizing, stop loss, target) and a trend filter.

Simple mean‑reversion entry (short timeframe):
– Setup: Look for FT to reach an extreme (e.g., > +2.0 historically for this asset) and then cross below the signal line.
– Entry: Enter short on the FT crossing below the signal.
– Stop: Place a stop above recent swing high or a fixed ATR multiple.
– Target: First target at nearest support or a defined risk:reward (e.g., 1.5:1). Trail with price or use FT crossing above the signal to exit.

Trend‑following use:
– Only take long FT crossover signals while price is above a longer trend filter (e.g., 50‑MA). Only take short signals while price is below the trend filter.

Oscillator confirmation:
– Require a second indicator to agree — e.g., bullish FT crossover plus RSI moving above 50 or MACD histogram turning positive.

Example pseudo‑rules for a backtest:
– Inputs: n = 10, price = close, signal = 3‑period EMA of Fisher.
– Long if: price > 50‑period SMA AND Fisher crosses above signal AND Fisher < −1.5 (came from an extreme low).
– Exit: Fisher crosses below signal OR price drops below 50‑SMA OR target hit.

5) Example implementation (concise Python/pandas pseudocode)
(For clarity: this is illustrative — adapt to your data feed.)

– Compute highest = rolling_max(high, n)
– Compute lowest = rolling_min(low, n)
– L = (close − lowest) / (highest − lowest)
– Lc = 2*(L − 0.5)
– X = 0 initialized
– For t in range(len(data)):
X[t] = 0.33*Lc[t] + 0.67*X[t−1]
X[t] = max(min(X[t], 0.999), −0.999)
fisher[t] = 0.5 * np.log((1+X[t])/(1−X[t])) + 0.5*fisher[t−1]
– signal = fisher.ewm(span=3).mean() (or use fisher.shift(1))

6) Comparison to Bollinger Bands® and MACD
– Bollinger Bands: use price mean ± (k × standard deviation). They are overlay bands based on standard deviation — they express overextension in raw price space. Bollinger Bands rely directly on volatility (std dev).
– Fisher Transform: maps normalized price levels into a near‑Gaussian space, emphasizing extremes and reversals. FT’s output is an oscillator (separate pane), not an overlay.
– MACD: is based on differences between moving averages (trend/momentum). FT is a nonlinear transformation designed to sharpen turning points; MACD measures momentum and trend direction. Each serves different roles; many traders combine them (e.g., FT for entries around turns, MACD for trend confirmation).

7) Limitations and cautions
– False signals: like most oscillators, FT can give many signals that don’t work in isolation — especially in strongly trending markets where the indicator can remain extreme for extended periods.
– Parameter sensitivity: different lookback periods, smoothing constants, and price inputs change behavior. Test/optimize for the target market.
– Not predictive by itself: FT helps reveal extremes and potential turning points, but reversal signals require confirmation (volume, price action, other indicators).
– Asset differences: an “extreme” FT value is asset‑specific. Backtest to learn typical FT ranges for the instrument/timeframe you trade.
– Implementation variance: chart platforms differ in computation (initialization, price type, smoothing), so replicate the exact method used in your strategy when backtesting.

8) FT vs. MACD (short summary)
– FT normalizes and nonlinearly transforms price to highlight turning points and make extremes rarer; it is an oscillator intended to generate clear reversal signals.
– MACD measures the difference between two EMAs and is primarily a momentum/trend-following oscillator; its signals are often smoother and can lag price more than FT.
– Use: FT is often used for timing/reversal; MACD for trend confirmation and momentum.

9) Practical tips
– Combine FT signals with a higher‑timeframe trend filter to reduce counter‑trend false signals.
– Use price action (support/resistance) or volume confirmation for higher probability setups.
– Backtest over a long sample and across market regimes.
– Be careful with lookback period selection; the default of 9–10 is common but not universally optimal.
– When automating, use clamping to avoid math errors from X values at ±1.

10) Quick glossary
– Technical analysis: study of past price and volume to forecast probable future price behavior.
– Technical indicator: a mathematical construct from price/volume used to generate signals or characterize market state. FT is an oscillator category indicator.

11) Bottom line
The Fisher Transform is a nonlinear oscillator designed to make price extremes and turning points easier to identify by transforming normalized price data toward a near‑Gaussian distribution. It is useful for timing and spotting reversals, but it works best when combined with trend filters, confirmation indicators, and disciplined risk management. Test parameters and rules on your instruments and timeframes before trading live.

References and further reading
– Investopedia — Fisher Transform: https://www.investopedia.com/terms/f/fisher-transform.asp
– John F. Ehlers — creator of the Fisher Transform (see his books and articles for original exposition).
– Quantified Strategies — John Ehlers Trading Strategy notes (example resource).

If you want, I can:
– Provide an example backtest script in Python for a specific asset and timeframe (e.g., daily SPY), or
– Produce ready‑to‑paste Pine Script code for TradingView that implements the Fisher Transform + signal line, or
– Walk through a worked numeric example step‑by‑step for one short price series. Which would you prefer?