From f11407caf98d7deabd8b9a2352d4b69e315cba1a Mon Sep 17 00:00:00 2001 From: Toh4iem9 Date: Thu, 25 Dec 2025 11:09:47 +0100 Subject: [PATCH] refactor: Refactored to use Engines --- .../5_Ehlers_Hybrids/MACD_Laguerre_Histogram_Pro.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Indicators/MyIndicators/Authors/Ehlers/5_Ehlers_Hybrids/MACD_Laguerre_Histogram_Pro.md b/Indicators/MyIndicators/Authors/Ehlers/5_Ehlers_Hybrids/MACD_Laguerre_Histogram_Pro.md index f58a30d..85a4545 100644 --- a/Indicators/MyIndicators/Authors/Ehlers/5_Ehlers_Hybrids/MACD_Laguerre_Histogram_Pro.md +++ b/Indicators/MyIndicators/Authors/Ehlers/5_Ehlers_Hybrids/MACD_Laguerre_Histogram_Pro.md @@ -6,7 +6,7 @@ The `MACD_Laguerre_Histogram_Pro` is the dedicated histogram component for our L This indicator visually represents the convergence and divergence of momentum. The height and depth of the histogram bars provide an immediate sense of momentum acceleration and deceleration. -It is designed as a **companion indicator** to be overlaid in the same window as the `MACD_Laguerre_Line_Pro`. When their parameters are synchronized, they form a complete, modern, and highly responsive MACD system. The signal line's smoothing method is user-selectable, offering a choice between a **Laguerre filter** or one of the four standard moving average types (SMA, EMA, SMMA, LWMA). +It is designed as a **companion indicator** to be overlaid in the same window as the `MACD_Laguerre_Line_Pro`. When their parameters are synchronized, they form a complete, modern, and highly responsive MACD system. The signal line's smoothing method is user-selectable, offering a choice between a **Laguerre filter** or one of the **seven** standard moving average types. ## 2. Mathematical Foundations and Calculation Logic @@ -27,13 +27,12 @@ To ensure perfect synchronization and accuracy without external dependencies, th * **Self-Contained Calculation:** The indicator is fully self-contained. Its engine (`MACD_Laguerre_Histogram_Calculator.mqh`) internally recalculates the entire Laguerre MACD line using the `Laguerre_Engine`. This "shared engine" architecture avoids the instability of `iCustom` calls. -* **Optimized Incremental Calculation:** +* **Optimized Incremental Calculation (O(1)):** Unlike basic implementations that recalculate the entire history on every tick, this indicator employs an intelligent incremental algorithm. * It utilizes the `prev_calculated` state to determine the exact starting point for updates. * **Persistent State:** The internal Laguerre engines persist their state (`L0`...`L3`) between ticks, allowing the recursive calculation to continue seamlessly from the last known value. - * This results in **O(1) complexity** per tick, ensuring instant updates and zero lag, even on charts with extensive history. -* **Flexible Signal Line Calculation:** The calculator dynamically instantiates either a third `Laguerre_Engine` or a `MovingAverage_Engine` for the signal line, depending on the user's choice. This ensures that the signal line calculation is also fully optimized and incremental. +* **Flexible Signal Line Calculation:** The calculator dynamically instantiates either a third `Laguerre_Engine` or a `MovingAverage_Engine` for the signal line. This allows for advanced smoothing types (like DEMA or TEMA) beyond the standard SMA. * **Object-Oriented Design (Inheritance):** The standard `_HA` derived class architecture is used to seamlessly support calculations on Heikin Ashi price data. @@ -42,7 +41,7 @@ To ensure perfect synchronization and accuracy without external dependencies, th * **Laguerre MACD Settings:** * **`InpGamma1` / `InpGamma2`:** The gamma coefficients for the two base Laguerre filters. The smaller value will be the fast filter, the larger will be the slow one. * **Signal Line Settings:** - * **`InpSignalMAType`:** A dropdown menu to select the smoothing type for the signal line. Options include `Laguerre`, `SMA`, `EMA`, `SMMA`, `LWMA`. + * **`InpSignalMAType`:** A dropdown menu to select the smoothing type for the signal line. Options include `Laguerre`, `SMA`, `EMA`, `SMMA`, `LWMA`, `TMA`, `DEMA`, `TEMA`. * **`InpSignalPeriod`:** The lookback period for **standard MA** signal lines. * **`InpSignalGamma`:** The gamma coefficient used **only** if the signal line type is set to `Laguerre`. * **Price Source:**