OPEN-SOURCE SCRIPT
[CT] Trend Pulse Oscillator

[CT] Trend Pulse Oscillator is a clean, responsive trend and momentum oscillator that measures directional pressure by comparing a fast EMA to a slow EMA, then normalizing that spread by ATR so the reading stays consistent across different symbols and volatility regimes. Instead of relying on percentile bands or fixed overbought, oversold logic from legacy oscillators, this indicator converts the EMA spread into a smooth 0–100 signal that behaves like a “trend intensity meter,” where 50 acts as the neutral midpoint, values above 50 reflect bullish dominance, and values below 50 reflect bearish dominance. Because the core input is the distance between two EMAs, it naturally tracks trend alignment, and because it is volatility-normalized, it avoids becoming overly sensitive during high volatility or too sluggish during quiet conditions.
The engine begins by calculating a fast EMA and a slow EMA on your selected source, then computing the spread between them. That spread alone can be misleading across markets because the same raw distance means different things in low volatility versus high volatility environments, so the script divides the spread by ATR to create a normalized value that represents how meaningful the trend separation is relative to typical movement. Once the spread is normalized, the indicator applies a bounded mapping using an arctangent transform, which is a stable way to compress extreme values while preserving sensitivity near the midpoint. This produces a smooth oscillator that stays in a predictable 0–100 range without hard clamping, and it keeps the transitions realistic even when price accelerates strongly. The Speed setting is the main sensitivity control, where higher values make the oscillator respond faster and flip states more quickly, and lower values slow the response, reduce noise, and produce fewer regime changes.
A signal line is then applied to the oscillator using an EMA, creating a two-line framework that is easy to trade. The oscillator line represents the current trend pressure state, while the signal line represents the smoothed baseline of that pressure. The primary decision point is the relationship between the oscillator and the signal, where oscillator above signal indicates improving bullish pressure and oscillator below signal indicates improving bearish pressure. This relationship is also used to drive the visual state of the indicator so the chart feedback matches the current bias. The indicator additionally computes a Pulse histogram as the difference between the oscillator and the signal line, which helps you quickly see when momentum is expanding or contracting. When the histogram grows in the bullish direction, pressure is strengthening above the baseline, and when it contracts toward zero, pressure is fading and conditions are becoming more balanced.
The visual layer is built to make bias and transitions obvious without clutter. You can enable a fill between the oscillator and the signal line that changes color based on whether the oscillator is above or below the signal, so the “state” is visible even at a glance. The Pulse histogram can be shown to highlight the size of the separation between the oscillator and the signal, which is useful for spotting early momentum shifts, confirming continuation, or identifying when a move is losing energy. The indicator includes standard level guides with a midpoint at 50 and optional overbought and oversold thresholds, which can help you contextualize stronger pushes away from neutral. These levels are best treated as context rather than automatic reversal triggers, because this tool is designed to track trend pressure first, and it can remain elevated or depressed for extended periods during strong directional moves.
For traders who like a unified view, there is an optional setting to color price bars based on the oscillator state relative to the signal line. When enabled, candles will reflect bullish bias when the oscillator is above the signal and bearish bias when below, aligning your chart’s candle colors with the same logic driving the oscillator’s state. This makes it easy to stay consistent with your bias filter without constantly checking the panel. The indicator also includes alert conditions focused on the core events traders care about, including oscillator crosses of the signal line, crosses of the 50 midpoint, and crosses of the overbought and oversold levels, so you can automate notifications for regime shifts, momentum changes, and stronger pressure conditions.
In practical use, Trend Pulse Oscillator is most effective as a bias and timing tool. When the oscillator holds above 50 and repeatedly stays above its signal line, it reflects persistent bullish pressure where pullbacks are more likely to be continuation opportunities. When the oscillator holds below 50 and stays below its signal line, it reflects persistent bearish pressure where rallies are more likely to be corrective. The most valuable information often comes from how cleanly the oscillator can stay on the correct side of its signal and whether the Pulse histogram expands during breaks and contractions, because that combination helps separate real trend continuation from choppy rotation.
The engine begins by calculating a fast EMA and a slow EMA on your selected source, then computing the spread between them. That spread alone can be misleading across markets because the same raw distance means different things in low volatility versus high volatility environments, so the script divides the spread by ATR to create a normalized value that represents how meaningful the trend separation is relative to typical movement. Once the spread is normalized, the indicator applies a bounded mapping using an arctangent transform, which is a stable way to compress extreme values while preserving sensitivity near the midpoint. This produces a smooth oscillator that stays in a predictable 0–100 range without hard clamping, and it keeps the transitions realistic even when price accelerates strongly. The Speed setting is the main sensitivity control, where higher values make the oscillator respond faster and flip states more quickly, and lower values slow the response, reduce noise, and produce fewer regime changes.
A signal line is then applied to the oscillator using an EMA, creating a two-line framework that is easy to trade. The oscillator line represents the current trend pressure state, while the signal line represents the smoothed baseline of that pressure. The primary decision point is the relationship between the oscillator and the signal, where oscillator above signal indicates improving bullish pressure and oscillator below signal indicates improving bearish pressure. This relationship is also used to drive the visual state of the indicator so the chart feedback matches the current bias. The indicator additionally computes a Pulse histogram as the difference between the oscillator and the signal line, which helps you quickly see when momentum is expanding or contracting. When the histogram grows in the bullish direction, pressure is strengthening above the baseline, and when it contracts toward zero, pressure is fading and conditions are becoming more balanced.
The visual layer is built to make bias and transitions obvious without clutter. You can enable a fill between the oscillator and the signal line that changes color based on whether the oscillator is above or below the signal, so the “state” is visible even at a glance. The Pulse histogram can be shown to highlight the size of the separation between the oscillator and the signal, which is useful for spotting early momentum shifts, confirming continuation, or identifying when a move is losing energy. The indicator includes standard level guides with a midpoint at 50 and optional overbought and oversold thresholds, which can help you contextualize stronger pushes away from neutral. These levels are best treated as context rather than automatic reversal triggers, because this tool is designed to track trend pressure first, and it can remain elevated or depressed for extended periods during strong directional moves.
For traders who like a unified view, there is an optional setting to color price bars based on the oscillator state relative to the signal line. When enabled, candles will reflect bullish bias when the oscillator is above the signal and bearish bias when below, aligning your chart’s candle colors with the same logic driving the oscillator’s state. This makes it easy to stay consistent with your bias filter without constantly checking the panel. The indicator also includes alert conditions focused on the core events traders care about, including oscillator crosses of the signal line, crosses of the 50 midpoint, and crosses of the overbought and oversold levels, so you can automate notifications for regime shifts, momentum changes, and stronger pressure conditions.
In practical use, Trend Pulse Oscillator is most effective as a bias and timing tool. When the oscillator holds above 50 and repeatedly stays above its signal line, it reflects persistent bullish pressure where pullbacks are more likely to be continuation opportunities. When the oscillator holds below 50 and stays below its signal line, it reflects persistent bearish pressure where rallies are more likely to be corrective. The most valuable information often comes from how cleanly the oscillator can stay on the correct side of its signal and whether the Pulse histogram expands during breaks and contractions, because that combination helps separate real trend continuation from choppy rotation.
Script open-source
Nello spirito di TradingView, l'autore di questo script lo ha reso open source, in modo che i trader possano esaminarne e verificarne la funzionalità. Complimenti all'autore! Sebbene sia possibile utilizzarlo gratuitamente, ricordiamo che la ripubblicazione del codice è soggetta al nostro Regolamento.
Declinazione di responsabilità
Le informazioni e le pubblicazioni non sono intese come, e non costituiscono, consulenza o raccomandazioni finanziarie, di investimento, di trading o di altro tipo fornite o approvate da TradingView. Per ulteriori informazioni, consultare i Termini di utilizzo.
Script open-source
Nello spirito di TradingView, l'autore di questo script lo ha reso open source, in modo che i trader possano esaminarne e verificarne la funzionalità. Complimenti all'autore! Sebbene sia possibile utilizzarlo gratuitamente, ricordiamo che la ripubblicazione del codice è soggetta al nostro Regolamento.
Declinazione di responsabilità
Le informazioni e le pubblicazioni non sono intese come, e non costituiscono, consulenza o raccomandazioni finanziarie, di investimento, di trading o di altro tipo fornite o approvate da TradingView. Per ulteriori informazioni, consultare i Termini di utilizzo.