4.3 KiB
True Strength Index (TSI) Professional
1. Summary (Introduction)
The True Strength Index (TSI), developed by William Blau, is a momentum oscillator designed to provide a smoother and more reliable measure of market momentum by using a double-smoothing mechanism with Exponential Moving Averages (EMAs). It fluctuates around a zero line, providing clear signals for trend direction, momentum, and overbought/oversold conditions.
Our TSI_Pro implementation is a unified, professional version that allows the calculation to be based on either standard or Heikin Ashi price data, selectable from a single input parameter.
2. Mathematical Foundations and Calculation Logic
The TSI is calculated by double-smoothing both the price momentum and the absolute price momentum, and then computing their ratio.
Required Components
- Slow Period (N_slow): The period for the first, longer-term EMA smoothing (standard is 25).
- Fast Period (N_fast): The period for the second, shorter-term EMA smoothing (standard is 13).
- Signal Period: The period for the moving average signal line.
- Source Price (P): The price series used for the calculation.
Calculation Steps (Algorithm)
- Calculate Price Momentum:
\text{Momentum}_i = P_i - P_{i-1} - First EMA Smoothing (Slow Period): Apply an
N_slow-period EMA to both theMomentumand its absolute value. - Second EMA Smoothing (Fast Period): Apply an
N_fast-period EMA to the results of the first smoothing step. - Calculate the TSI Value: Divide the double-smoothed momentum by the double-smoothed absolute momentum and scale the result to 100.
\text{TSI}_i = 100 \times \frac{\text{EMA}_{\text{fast}}(\text{EMA}_{\text{slow}}(\text{Momentum}))_i}{\text{EMA}_{\text{fast}}(\text{EMA}_{\text{slow}}(\text{AbsMomentum}))_i} - Calculate the Signal Line: The signal line is a moving average of the TSI line itself.
3. MQL5 Implementation Details
Our MQL5 implementation follows a modern, component-based, object-oriented design.
-
Centralized Calculation Engine (
TSI_Engine.mqh): The core of our implementation is a single, powerful calculation engine. This include file contains the complete, definition-true logic for calculating both the TSI and its signal line. It supports both standard and Heikin Ashi data sources through class inheritance (CTSICalculatorandCTSICalculator_HA). -
Specialized Wrapper (
TSI_Calculator.mqh): The final indicator uses a thin "wrapper" class that utilizes the central engine. The wrapper's role is to instantiate the correct engine (standard or HA) and provide a clean interface to the main.mq5indicator file. This approach eliminates code duplication and ensures all TSI-based indicators in our toolkit use the exact same calculation logic. -
Stability via Full Recalculation: We employ a "brute-force" full recalculation within
OnCalculatefor maximum stability. -
Fully Manual EMA Calculations: All EMA calculations are performed manually, with robust initialization to provide a stable starting point for the calculation chain.
4. Parameters
- Slow Period (
InpSlowPeriod): The period for the first, longer-term EMA smoothing. Default is25. - Fast Period (
InpFastPeriod): The period for the second, shorter-term EMA smoothing. Default is13. - Applied Price (
InpSourcePrice): The source price for the calculation. This unified dropdown menu allows you to select from all standard and Heikin Ashi price types. - Signal Line Settings:
InpSignalPeriod: The lookback period for the signal line. Default is13.InpSignalMAType: The type of moving average for the signal line. Default isMODE_EMA.
5. Usage and Interpretation
- Zero Line Crossovers: A crossover of the TSI line above the zero line indicates that long-term momentum has turned positive. A crossover below indicates negative momentum.
- Signal Line Crossovers: These provide earlier, shorter-term momentum signals. A bullish crossover is when the TSI line crosses above its signal line; a bearish crossover is the opposite.
- Overbought/Oversold Levels: The +25 and -25 levels are often used to identify extreme momentum.
- Divergence: Due to its smoothness, the TSI is excellent for spotting divergences between price and momentum, which can foreshadow reversals.