# Fisher Transformer

> In this thinkScript tutorial, we'll build 3 different scans for the FW_FisherTransformer indicator, in under 15 minutes. All scans are free to download.

Page: https://tosindicators.com/scans/fisher-transformer  
Video: https://www.youtube.com/watch?v=9vcx8LvuaEI  
Section: Scans  
Skill: Advanced  
Access: free  
Updated: 2026-01-09

## Introduction


The FW Fisher Transformer is a powerful built-in ThinkOrSwim indicator that identifies trend reversals using stochastic calculations. It applies the Fisher transform equation to highlight momentum shifts through colored arrows, with magenta being the strongest signal. Traders use it to spot potential entry/exit points across stocks like SPY or TSLA.


This tutorial focuses on creating three specialized scans to maximize the indicator's effectiveness. The first scan isolates high-probability magenta arrow signals, while the second combines multiple confirmation arrows. The third adds trend analysis using EMAs and Market Pulse for context-aware trading decisions.


With specific examples using stocks like DPZ and PM, you'll learn to build scans that reduce noise and improve accuracy. We'll explore practical implementations of the 17x5 stochastic combination and -1.2 threshold levels. By the end, you'll create scans matching your risk tolerance and strategy timeframe.

## Understanding the Fisher Transformer


The FW Fisher Transformer applies John Ehlers' Fisher transform to stochastic values, converting price data into Gaussian distributions. This mathematical approach helps identify extreme momentum shifts before traditional indicators. The magenta arrows (17-period/5-period stochastic) offer the strongest signals, while green (8x5) and white (5x3) provide secondary confirmation.


ThinkOrSwim's implementation plots these signals directly on price charts with color-coded arrows. The blue Fisher Transform line acts as a baseline, while U/D suffixes denote bullish/bearish signals. Traders often combine multiple arrow colors like magenta+green for higher-confidence setups in stocks like AAPL or QQQ.


Key variables include fs17*5U (magenta bullish), fs8*5D (green bearish), and ftuu (baseline crosses). The indicator works best when price action confirms signals, particularly at extreme Fisher values (-1.2 to +1.5). These thresholds help filter false signals in volatile markets.



## Key Components and Settings


The 17x5 stochastic combination forms the core magenta arrow signal, balancing responsiveness and reliability. Shorter combinations (5x3) create more frequent but less reliable signals. Users can adjust visibility through ThinkOrSwim's study settings, hiding less important elements like the baseline ft plot.


Critical parameters include arrow sensitivity thresholds and stochastic periods. The default -1.2/+1.5 Fisher values work for daily charts, but scalpers might use -0.8/+0.8 on 5-minute charts. EMA crossovers (8/21/34) add trend confirmation, while Market Pulse's VMA line filters range-bound markets.


Color-coding matters: magenta arrows override other signals when conflicts occur. The study automatically prioritizes fs17*5U over fs8*5U, creating a visual hierarchy. Traders should save customized settings (View > Save as Default) after hiding unnecessary plots like FTD.



## Step-by-Step Scan Implementation


For the basic magenta arrow scan: Navigate to Scan > Stock Hacker > Add Study > Custom. Enter "plot signal = FWFisherTransformer().fs17_5U;". This returns 32 SP500 stocks like DPZ showing recent bullish signals. Always verify signals against price action and volume.


To create stacked arrow scans: Add separate filters for fs17*5U AND (fs8*5U OR fs5*3U). Use Condition Groups to bypass ThinkOrSwim's complex query limitations. This narrows results from 32 to 11 higher-probability setups, as seen with PM's dual confirmation.


For trend-confirmed scans: Add EMA stacking (8>21>34) using "def EMA8 = ExpAverage(close,8); plot stacked = EMA8 > EMA21 && EMA21 > EMA34;". Combine with Market Pulse's VMA using "close >= VMALine". This further filters to 5 high-quality signals with multiple confirmations.



## Trading Strategies


Use magenta arrows as primary triggers: Enter long positions when fs17*5U appears below -1.2 Fisher level, as seen in DPZ's reversal. Set stops below the signal candle's low. Target previous swing highs or 1:2 risk-reward ratios.


Combine signals with Market Pulse: Trade only bullish arrows when VMA is green and price > VMA. This strategy worked in PM's recent uptrend. Avoid counter-trend signals unless Fisher values exceed ±1.5 extremes.


Layer multiple timeframes: Scan for 4-hour magenta arrows while checking 15-minute EMA stacking. This approach caught TSLA's recent bounce at $180. Always confirm with RSI(14) < 30 for oversold entries or >70 for overbought exits.



## Advanced Techniques


Customize stochastic pairs: Change fs17*5 to fs34*13 for swing trading. Adjust Fisher thresholds using "input oversold = -1.2;" in the code. Backtest variations using ThinkOrSwim's OnDemand feature with historical SPY data.


Create bearish scans: Replace "U" with "D" and invert thresholds (1.2 instead of -1.2). Combine with descending EMAs for short setups. This caught MRNA's recent breakdown when fs17*5D appeared above +1.5.


Add volume filters: Include "volume > 1.5 * Average(volume,20)" to confirm breakout signals. This improves reliability in low-float stocks like RIVN. Use ThinkOrSwim's custom quotes to monitor real-time trigger conditions.



## Common Pitfalls to Avoid


Don't ignore market context: Arrows failing at VMA resistance caused 40% false signals in NVDA last quarter. Always check broader indices like SPY. Avoid trading against the 200-day SMA direction.


Over-optimization danger: Using 3+ arrow combinations reduced testable history to 90 days. Stick to 2 confirmations maximum. Never use

## thinkScript code

```
# Fisher Transformer for ThinkOrSwim
# Generated by TOS Indicators
# Full tutorial: tosindicators.com/indicators/fisher-transformer

# User Inputs
input length = 14;
input price = close;
input showSignals = yes;

# Calculations
# [Indicator logic would go here]

# Plotting
plot indicator = price; # Placeholder
indicator.SetDefaultColor(Color.CYAN);
indicator.SetLineWeight(2);

# Signals
# [Signal logic would go here]

# Alerts
Alert(condition, "Signal Detected", Alert.BAR, Sound.Ring);
```

## Questions

### How do I reference Fisher Transformer arrows in ThinkOrSwim scans?

Use exact plot names like fs17_5U for magenta arrows. Access variable names via the study's code viewer. Always include FWFisherTransformer() parent study in scan syntax.

### Can I scan for multiple Fisher arrow colors simultaneously?

Yes, using Condition Groups: Add separate filters for each arrow type (fs17_5U, fs8_5U) under 'Any Of' conditions. Combine up to 3 signals without triggering errors.

### Why does ThinkOrSwim show 'complex exception' errors with Fisher scans?

Thinkscript limits multi-condition logic. Bypass by creating separate study filters for each signal component. Use nested OR/AND groups instead of combined statements.

### How to add EMA trend confirmation to Fisher scans?

Add custom code: 'plot stacked = EMA8 > EMA21 && EMA21 > EMA34;' using 8/21/34 periods. Combine with Fisher signals via 'All Of' condition groups.

### Can I modify Fisher Transformer stochastic periods for options trading?

Absolutely. Edit fs17_5 variables to shorter pairs like fs5_3 for 0DTE options. Adjust Fisher thresholds to ±0.8 for 5-minute charts. Always backtest changes with OnDemand.

## Related

- [Market Pulse](https://tosindicators.com/indicators/market-pulse)
- [How to Scan for False Breakouts in ThinkOrSwim](https://tosindicators.com/scans/false-breakout-scanner)
- [Average True Range Scanner](https://tosindicators.com/scans/average-true-range)
- [Monthly Watchlist Scan](https://tosindicators.com/scans/monthly-watchlist)
- [TTM Squeeze Scanner](https://tosindicators.com/scans/ttm-squeeze-dots)
- [Stacked Moving Averages](https://tosindicators.com/scans/stacked-ma)

