OPEN-SOURCE SCRIPT

Fisher Transform Trend Navigator [QuantAlgo]

729
๐ŸŸข Overview

The Fisher Transform Trend Navigator applies a logarithmic transformation to normalize price data into a Gaussian distribution, then combines this with volatility-adaptive thresholds to create a trend detection system. This mathematical approach helps traders identify high-probability trend changes and reversal points while filtering market noise in the ever-changing volatility conditions.
snapshot
๐ŸŸข How It Works

The indicator's foundation begins with price normalization, where recent price action is scaled to a bounded range between -1 and +1:
Pine Scriptยฎ
highestHigh = ta.highest(priceSource, fisherPeriod) lowestLow = ta.lowest(priceSource, fisherPeriod) value1 = highestHigh != lowestLow ? 2 * (priceSource - lowestLow) / (highestHigh - lowestLow) - 1 : 0 value1 := math.max(-0.999, math.min(0.999, value1))

This normalized value then passes through the Fisher Transform calculation, which applies a logarithmic function to convert the data into a Gaussian normal distribution that naturally amplifies price extremes and turning points:
Pine Scriptยฎ
fisherTransform = 0.5 * math.log((1 + value1) / (1 - value1)) smoothedFisher = ta.ema(fisherTransform, fisherSmoothing)

The smoothed Fisher signal is then integrated with an exponential moving average to create a hybrid trend line that balances statistical precision with price-following behavior:
Pine Scriptยฎ
baseTrend = ta.ema(close, basePeriod) fisherAdjustment = smoothedFisher * fisherSensitivity * close fisherTrend = baseTrend + fisherAdjustment

To filter out false signals and adapt to market conditions, the system calculates dynamic threshold bands using volatility measurements:
Pine Scriptยฎ
dynamicRange = ta.atr(volatilityPeriod) threshold = dynamicRange * volatilityMultiplier upperThreshold = fisherTrend + threshold lowerThreshold = fisherTrend - threshold

When price momentum pushes through these thresholds, the trend line locks onto the new level and maintains direction until the opposite threshold is breached:
Pine Scriptยฎ
if upperThreshold < trendLine trendLine := upperThreshold if lowerThreshold > trendLine trendLine := lowerThreshold

snapshot
๐ŸŸข Signal Interpretation
  • Bullish Candles (Green): indicate normalized price distribution favoring bulls with sustained buying momentum = Long/Buy opportunities
  • Bearish Candles (Red): indicate normalized price distribution favoring bears with sustained selling pressure = Short/Sell opportunities
    snapshot
  • Upper Band Zone: Area above middle level indicating statistically elevated trend strength with potential overbought conditions approaching mean reversion zones
  • Lower Band Zone: Area below middle level indicating statistically depressed trend strength with potential oversold conditions approaching mean reversion zones
  • Built-in Alert System: Automated notifications trigger when bullish or bearish states change, allowing you to act on significant developments without constantly monitoring the charts
  • Candle Coloring: Optional feature applies trend colors to price bars for visual consistency and clarity
  • Configuration Presets: Three parameter sets available - Default (balanced settings), Scalping (faster response with higher sensitivity), and Swing Trading (slower response with enhanced smoothing)
  • Color Customization: Four color schemes including Classic, Aqua, Cosmic, and Custom options for personalized chart aesthetics

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.