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 🚀
Korumalı komut dosyası
Bu komut dosyası kapalı kaynak olarak yayınlanmaktadır. Ancak, özgürce ve herhangi bir sınırlama olmaksızın kullanabilirsiniz – daha fazla bilgi burada.
Feragatname
Bilgiler ve yayınlar, TradingView tarafından sağlanan veya onaylanan finansal, yatırım, işlem veya diğer türden tavsiye veya tavsiyeler anlamına gelmez ve teşkil etmez. Kullanım Şartları'nda daha fazlasını okuyun.
Korumalı komut dosyası
Bu komut dosyası kapalı kaynak olarak yayınlanmaktadır. Ancak, özgürce ve herhangi bir sınırlama olmaksızın kullanabilirsiniz – daha fazla bilgi burada.
Feragatname
Bilgiler ve yayınlar, TradingView tarafından sağlanan veya onaylanan finansal, yatırım, işlem veya diğer türden tavsiye veya tavsiyeler anlamına gelmez ve teşkil etmez. Kullanım Şartları'nda daha fazlasını okuyun.