diff --git a/Indicators/MyIndicators/Authors/Kaufman/CenteredMA_Pro.md b/Indicators/MyIndicators/Authors/Kaufman/CenteredMA_Pro.md new file mode 100644 index 0000000..51dc3c3 --- /dev/null +++ b/Indicators/MyIndicators/Authors/Kaufman/CenteredMA_Pro.md @@ -0,0 +1,62 @@ +# Centered Moving Average (CMA) Professional + +## 1. Summary (Introduction) + +The Centered Moving Average (CMA), a concept popularized by J.M. Hurst in his work on cycle analysis, is a specialized analytical tool designed to visually eliminate the inherent lag of a standard moving average on historical data. + +Unlike a regular moving average that always lags behind the price, the CMA is mathematically shifted backwards in time. The result is a trendline whose peaks and troughs are perfectly aligned with the cyclical turning points of the price itself. + +**Important Note:** The CMA is an **analytical and research tool, not a real-time trading indicator**. Due to its backward-shifting nature, its value cannot be calculated for the most recent bars on the chart. + +Our `CenteredMA_Pro` implementation allows the user to apply this centering technique to any of the core moving average types (SMA, EMA, etc.) and supports both **standard** and **Heikin Ashi** price data. + +## 2. Mathematical Foundations and Calculation Logic + +The logic behind the CMA is a simple but powerful two-step process. + +### Required Components + +* **Period (N):** The lookback period for the moving average. +* **MA Type:** The type of moving average to be calculated (SMA, EMA, etc.). +* **Source Price (P)**. + +### Calculation Steps (Algorithm) + +1. **Calculate a Standard Moving Average:** First, a standard, lagging moving average (`MA`) is calculated for the entire price history using the selected period `N` and MA type. + +2. **Shift the Moving Average Backwards:** The entire calculated `MA` line is then shifted to the left (backwards in time) by a specific amount to align it with the center of the data it was calculated from. + * $\text{Shift Amount} = \text{Integer}(\frac{N - 1}{2})$ + * $\text{CMA}_t = \text{MA}_{t + \text{Shift Amount}}$ + +This shifting process is the reason why the CMA line does not extend to the most recent price bar; to calculate the CMA for today, one would need the moving average value from several bars into the future, which is impossible. + +## 3. MQL5 Implementation Details + +* **Modular Design (Composition):** The `CCenteredMACalculator` does not recalculate the moving average itself. Instead, it **contains an instance** of our universal `CMovingAverageCalculator`. This is a highly efficient use of our modular toolkit. + +* **Two-Step Calculation:** In `OnCalculate`, the indicator first calls the internal `CMovingAverageCalculator` to generate the standard, lagging MA into a temporary buffer. It then performs a second loop to shift the data from the temporary buffer into the final, visible indicator buffer. + +* **Heikin Ashi Integration:** By leveraging our universal MA engine, the CMA seamlessly supports calculations on Heikin Ashi data. + +## 4. Parameters + +* **Period (`InpPeriod`):** The lookback period for the moving average. +* **MA Type (`InpMAType`):** A dropdown menu to select the desired moving average type (SMA, EMA, SMMA, LWMA, etc.). +* **Applied Price (`InpSourcePrice`):** The source price for the calculation. + +## 5. Usage and Interpretation + +The CMA is a powerful tool for **historical analysis, research, and strategy development**. It should **not** be used for generating real-time entry or exit signals. + +### 1. Visual Cycle Identification (Primary Use) + +* The CMA's primary function is to provide a perfectly lag-free visualization of past trend cycles. By observing the distance (in bars) between the peaks and troughs of the CMA line, you can get a clear and objective measure of the dominant cycle lengths in a specific market and timeframe. + +### 2. Strategy Validation and Backtesting + +* The CMA acts as a "perfect" hindsight trendline. It can be used to validate the signals of faster, real-time oscillators. +* **Example:** Place a CMA and an RSI on the chart. Look back at historical data. If the RSI consistently reaches oversold levels (<30) at or very near the troughs of the CMA, it provides strong confirmation that the RSI is well-tuned for identifying cyclical bottoms in that market. + +### 3. Educational Tool + +* By placing a CMA and a standard `MovingAverage_Pro` with the same period on the chart, you can visually see and measure the exact amount of lag that a normal moving average introduces. This is an excellent way to understand the inherent trade-offs of trend-following indicators.