mirror of
https://github.com/softwaredevelop/mql5.git
synced 2026-07-27 20:47:44 +00:00
new files added
This commit is contained in:
@@ -0,0 +1,65 @@
|
|||||||
|
# True Strength Index (TSI) Pro Suite
|
||||||
|
|
||||||
|
## 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 than traditional indicators. It fluctuates around a zero line, providing clear signals for trend direction, momentum, and overbought/oversold conditions.
|
||||||
|
|
||||||
|
Our professional implementation, the **TSI Pro Suite**, modernizes this classic indicator by offering:
|
||||||
|
|
||||||
|
* **Extended Smoothing Types:** Ability to replace the standard EMAs with SMA, DEMA, TEMA, etc., for both the core calculation and the signal line.
|
||||||
|
* **Full Heikin Ashi Support:** Seamless integration with Heikin Ashi price data.
|
||||||
|
* **Modular Design:** A unified calculation engine powering both the line and oscillator versions.
|
||||||
|
|
||||||
|
The suite consists of:
|
||||||
|
|
||||||
|
1. **`TSI_Pro`:** The classic implementation (TSI Line + Signal Line).
|
||||||
|
2. **`TSI_Oscillator_Pro`:** A histogram version displaying the difference between the TSI and its Signal Line.
|
||||||
|
|
||||||
|
## 2. Mathematical Foundations
|
||||||
|
|
||||||
|
The TSI is calculated by double-smoothing both the price momentum and the absolute price momentum.
|
||||||
|
|
||||||
|
### Calculation Steps
|
||||||
|
|
||||||
|
1. **Momentum:** Calculate the change in price from the previous bar.
|
||||||
|
* $M = P_i - P_{i-1}$
|
||||||
|
2. **First Smoothing (Slow):** Apply a moving average (typically EMA) to both $M$ and $|M|$ over the `Slow Period`.
|
||||||
|
3. **Second Smoothing (Fast):** Apply a moving average to the results of the first step over the `Fast Period`.
|
||||||
|
4. **TSI Value:**
|
||||||
|
* $\text{TSI} = 100 \times \frac{\text{DoubleSmoothed}(M)}{\text{DoubleSmoothed}(|M|)}$
|
||||||
|
5. **Signal Line:** A moving average of the TSI line.
|
||||||
|
6. **Oscillator:** $\text{TSI} - \text{Signal Line}$.
|
||||||
|
|
||||||
|
## 3. MQL5 Implementation Details
|
||||||
|
|
||||||
|
* **Unified Calculator Engine:** Both indicators use the `TSI_Calculator.mqh` engine. This ensures mathematical consistency.
|
||||||
|
* **O(1) Incremental Calculation:** Optimized for high performance. The indicators process only new bars (`prev_calculated`), ensuring zero lag.
|
||||||
|
* **Composition:** The calculator internally uses 5 instances of our `MovingAverage_Engine` to handle the various smoothing steps flexibly.
|
||||||
|
|
||||||
|
## 4. Parameters
|
||||||
|
|
||||||
|
### TSI Calculation Settings
|
||||||
|
|
||||||
|
* **Slow Period:** Lookback for the first smoothing (Default: 25).
|
||||||
|
* **Slow MA Type:** Smoothing method for the first step (Default: EMA).
|
||||||
|
* **Fast Period:** Lookback for the second smoothing (Default: 13).
|
||||||
|
* **Fast MA Type:** Smoothing method for the second step (Default: EMA).
|
||||||
|
* **Price Source:** Selects the input data (Standard or Heikin Ashi).
|
||||||
|
|
||||||
|
### Signal Line Settings
|
||||||
|
|
||||||
|
* **Signal Period:** Lookback for the signal line (Default: 13).
|
||||||
|
* **Signal MA Type:** Smoothing method for the signal line (Default: EMA).
|
||||||
|
|
||||||
|
## 5. Usage and Interpretation
|
||||||
|
|
||||||
|
### TSI Line (`TSI_Pro`)
|
||||||
|
|
||||||
|
* **Signal Crossover:** Buy when TSI crosses above Signal; Sell when TSI crosses below Signal.
|
||||||
|
* **Zero Line:** Crossover indicates long-term trend change.
|
||||||
|
* **Divergence:** Divergences between TSI and price often precede reversals.
|
||||||
|
|
||||||
|
### TSI Oscillator (`TSI_Oscillator_Pro`)
|
||||||
|
|
||||||
|
* **Histogram:** Visualizes the momentum strength. Growing bars = accelerating momentum. Shrinking bars = decelerating momentum.
|
||||||
|
* **Zero Cross:** Corresponds to the TSI/Signal crossover.
|
||||||
Reference in New Issue
Block a user