PROTECTED SOURCE SCRIPT
Vervoort's True Strength Index (TSI)

Hi traders! 👋
This script brings you a clean and enhanced version of the True Strength Index (TSI) developed by William Blau and later popularized by M.H. Vervoort.
It’s a momentum-based oscillator that helps identify trend direction, strength, and potential reversals with reduced noise and smoother signals compared to RSI or MACD.
🔍 What This Script Does:
Plots the TSI line — a smoothed momentum oscillator
Adds a signal line (EMA of TSI) to identify crossovers
Displays a histogram to visually show the difference between TSI and the signal line
Includes a zero line to detect trend shifts
📘 How It Works — Explained Line by Line:
momentum = price - price[1]
We measure raw momentum (how much price changed since the last candle).
doubleSmoothedMomentum = ta.ema(ta.ema(momentum, short), long)
This is the core: we apply two layers of EMA smoothing to filter out noise and get clean momentum flow.
doubleSmoothedAbsMomentum = ta.ema(ta.ema(abs(momentum), short), long)
Same smoothing, but on absolute momentum (we use this for normalization).
TSI = 100 * (smoothed momentum / smoothed absolute momentum)
This gives us a bounded, normalized oscillator between roughly -100 and +100.
High positive values = strong bullish momentum.
Low negative values = strong bearish momentum.
Signal = EMA of TSI
Just like MACD — we smooth TSI again to generate a signal line for crossovers.
Histogram = TSI - Signal
This is the difference between the TSI and the signal. Positive = bullish bias; negative = bearish bias.
🟦 Plots on the Chart:
🔵 TSI Line (blue): Main momentum signal
🟠 Signal Line (orange): EMA of TSI, used for crossovers
🟩🟥 Histogram (green/red columns): Shows who’s in control — bulls or bears
⚪ Zero Line (gray dashed): Momentum flips around this line
✅ How to Use It:
TSI crossing above signal line → Potential bullish momentum
TSI crossing below signal line → Possible bearish shift
Both lines above zero → Uptrend confirmation
Both below zero → Downtrend confirmation
Histogram changing color → Early clue of a shift in strength
🔁 You can adjust the Short, Long, and Signal EMA lengths to fit your strategy (shorter = faster but noisier, longer = smoother but slower).
⚠️ Note:
Works best with trend-following or breakout strategies
Combine with volume or price action to confirm signals
Avoid using it alone in sideways markets (like all oscillators)
💬 Let me know if you'd like to add divergence detection, alerts, or multi-timeframe filters — happy to build on it!
Hope this helps make your trading clearer and more confident 🚀
This script brings you a clean and enhanced version of the True Strength Index (TSI) developed by William Blau and later popularized by M.H. Vervoort.
It’s a momentum-based oscillator that helps identify trend direction, strength, and potential reversals with reduced noise and smoother signals compared to RSI or MACD.
🔍 What This Script Does:
Plots the TSI line — a smoothed momentum oscillator
Adds a signal line (EMA of TSI) to identify crossovers
Displays a histogram to visually show the difference between TSI and the signal line
Includes a zero line to detect trend shifts
📘 How It Works — Explained Line by Line:
momentum = price - price[1]
We measure raw momentum (how much price changed since the last candle).
doubleSmoothedMomentum = ta.ema(ta.ema(momentum, short), long)
This is the core: we apply two layers of EMA smoothing to filter out noise and get clean momentum flow.
doubleSmoothedAbsMomentum = ta.ema(ta.ema(abs(momentum), short), long)
Same smoothing, but on absolute momentum (we use this for normalization).
TSI = 100 * (smoothed momentum / smoothed absolute momentum)
This gives us a bounded, normalized oscillator between roughly -100 and +100.
High positive values = strong bullish momentum.
Low negative values = strong bearish momentum.
Signal = EMA of TSI
Just like MACD — we smooth TSI again to generate a signal line for crossovers.
Histogram = TSI - Signal
This is the difference between the TSI and the signal. Positive = bullish bias; negative = bearish bias.
🟦 Plots on the Chart:
🔵 TSI Line (blue): Main momentum signal
🟠 Signal Line (orange): EMA of TSI, used for crossovers
🟩🟥 Histogram (green/red columns): Shows who’s in control — bulls or bears
⚪ Zero Line (gray dashed): Momentum flips around this line
✅ How to Use It:
TSI crossing above signal line → Potential bullish momentum
TSI crossing below signal line → Possible bearish shift
Both lines above zero → Uptrend confirmation
Both below zero → Downtrend confirmation
Histogram changing color → Early clue of a shift in strength
🔁 You can adjust the Short, Long, and Signal EMA lengths to fit your strategy (shorter = faster but noisier, longer = smoother but slower).
⚠️ Note:
Works best with trend-following or breakout strategies
Combine with volume or price action to confirm signals
Avoid using it alone in sideways markets (like all oscillators)
💬 Let me know if you'd like to add divergence detection, alerts, or multi-timeframe filters — happy to build on it!
Hope this helps make your trading clearer and more confident 🚀
Script protetto
Questo script è pubblicato come codice protetto. Tuttavia, è possibile utilizzarlo liberamente e senza alcuna limitazione – per saperne di più clicca qui.
Declinazione di responsabilità
Le informazioni ed i contenuti pubblicati non costituiscono in alcun modo una sollecitazione ad investire o ad operare nei mercati finanziari. Non sono inoltre fornite o supportate da TradingView. Maggiori dettagli nelle Condizioni d'uso.
Script protetto
Questo script è pubblicato come codice protetto. Tuttavia, è possibile utilizzarlo liberamente e senza alcuna limitazione – per saperne di più clicca qui.
Declinazione di responsabilità
Le informazioni ed i contenuti pubblicati non costituiscono in alcun modo una sollecitazione ad investire o ad operare nei mercati finanziari. Non sono inoltre fornite o supportate da TradingView. Maggiori dettagli nelle Condizioni d'uso.