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 🚀
Skrip dilindungi
Skrip ini diterbitkan sebagai sumber tertutup. Akan tetapi, anda boleh menggunakannya dengan percuma dan tanpa had – ketahui lebih lanjut di sini.
Penafian
Maklumat dan penerbitan adalah tidak dimaksudkan untuk menjadi, dan tidak membentuk, nasihat untuk kewangan, pelaburan, perdagangan dan jenis-jenis lain atau cadangan yang dibekalkan atau disahkan oleh TradingView. Baca dengan lebih lanjut di Terma Penggunaan.
Skrip dilindungi
Skrip ini diterbitkan sebagai sumber tertutup. Akan tetapi, anda boleh menggunakannya dengan percuma dan tanpa had – ketahui lebih lanjut di sini.
Penafian
Maklumat dan penerbitan adalah tidak dimaksudkan untuk menjadi, dan tidak membentuk, nasihat untuk kewangan, pelaburan, perdagangan dan jenis-jenis lain atau cadangan yang dibekalkan atau disahkan oleh TradingView. Baca dengan lebih lanjut di Terma Penggunaan.