diff --git a/Indicators/MyIndicators/Authors/Ehlers/2_Oscillators/Fisher_Transform_Pro.md b/Indicators/MyIndicators/Authors/Ehlers/2_Oscillators/Fisher_Transform_Pro.md new file mode 100644 index 0000000..fdc4c57 --- /dev/null +++ b/Indicators/MyIndicators/Authors/Ehlers/2_Oscillators/Fisher_Transform_Pro.md @@ -0,0 +1,73 @@ +# Fisher Transform Professional + +## 1. Summary (Introduction) + +The Fisher Transform, developed by John Ehlers, is a powerful technical indicator designed to convert any price or indicator data into a waveform that has a nearly Gaussian (normal) probability distribution. The primary purpose of this transformation is to make market turning points **sharper, clearer, and more timely**. + +Unlike traditional oscillators (like MACD or RSI) which often have rounded tops and bottoms, the Fisher Transform creates sharp, V-shaped peaks and troughs. This "amplification" of extreme price movements helps traders identify potential reversals with greater precision and less lag. + +The indicator plots two lines: + +* **Fisher Line:** The main transformed value. +* **Signal Line:** The Fisher line delayed by one bar, used for generating crossover signals. + +Our `Fisher_Transform_Pro` implementation is a unified, professional version that allows the calculation to be based on either **standard** or **Heikin Ashi** price data. + +## 2. Mathematical Foundations and Calculation Logic + +The indicator follows a multi-step process to transform the price data. + +### Required Components + +* **Period (N):** A lookback period to normalize the price. +* **Alpha (α):** A smoothing factor for the normalized price. +* **Source Price (P):** The price series used for the calculation (Ehlers' original work uses the Median Price `(H+L)/2`). + +### Calculation Steps (Algorithm) + +1. **Price Normalization:** For each bar, find the highest high and lowest low over the last `N` periods. Use these values to normalize the current price into a range between -1 and +1. +2. **Smoothing:** Apply an EMA-like smoothing to the normalized value from the previous step using the `alpha` factor. +3. **Clamping:** The smoothed value is strictly limited (clamped) to a range just inside -1 and +1 (e.g., -0.999 to +0.999) to prevent mathematical errors in the next step. +4. **Fisher Transform Application:** Apply the core Fisher Transform equation to the clamped value (`x`): + $y = 0.5 \times \ln\left(\frac{1+x}{1-x}\right)$ +5. **Final Smoothing & Signal Line:** The resulting value (`y`) is lightly smoothed, and the Signal Line is generated as the previous bar's Fisher value. + +## 3. MQL5 Implementation Details + +* **Self-Contained Calculator (`Fisher_Transform_Calculator.mqh`):** The entire multi-stage calculation is encapsulated within a dedicated, reusable calculator class. +* **Heikin Ashi Integration:** An inherited `_HA` class allows the calculation to be performed seamlessly on smoothed Heikin Ashi data. +* **Stability via Full Recalculation:** The indicator employs a full recalculation on every `OnCalculate` call. This is the most robust method for a state-dependent indicator that involves smoothing and normalization. +* **Definition-True Price Source:** The calculator is hard-coded to use the **Median Price `(High+Low)/2`** as the source, in accordance with John Ehlers' original articles on this specific implementation. + +## 4. Parameters + +* **Period (`InpPeriod`):** The lookback period for normalizing the price. Ehlers' recommendation and a good starting point is **10**. + * A shorter period makes the indicator more sensitive to recent price swings. + * A longer period makes it smoother and responsive only to larger price movements. +* **Alpha (`InpAlpha`):** The smoothing factor for the normalized price, similar to an EMA's alpha. Ehlers' recommendation is **0.33**. It is generally not recommended to change this value. +* **Source (`InpSource`):** Selects between `Standard` and `Heikin Ashi` candles. The Median Price of the selected candle type will be used. + +## 5. Usage and Interpretation + +The Fisher Transform is primarily a **timing indicator** for identifying potential reversals. + +### **1. Signal Line Crossover (Primary Strategy)** + +This is the most direct way to use the indicator. + +* **Buy Signal:** The **blue Fisher line crosses above the red Signal line**. This often occurs at or near a market bottom. +* **Sell Signal:** The **blue Fisher line crosses below the red Signal line**. This often occurs at or near a market top. + +### **2. Trading Extreme Levels** + +The sharp peaks and troughs are the indicator's main feature. + +* When the Fisher line reaches an extreme level (e.g., above +1.5 or below -1.5), it signals that a reversal is becoming highly probable. +* A conservative strategy is to wait for the indicator to reach an extreme level and *then* wait for a signal line crossover in the opposite direction as confirmation before entering a trade. + +### **Important Consideration: Use with a Trend Filter** + +The Fisher Transform is designed to be very responsive and has no trend-following component. In a strong trend, it can generate multiple false signals against the trend. Therefore, it is **highly recommended to use it in conjunction with a trend filter** (e.g., a 100 or 200-period moving average). + +* **Uptrend Rule:** Only take **Buy signals** from the Fisher Transform when the price is above the long-term moving average. +* **Downtrend Rule:** Only take **Sell signals** from the Fisher Transform when the price is below the long-term moving average.