Fractal Breakout Pro Dual Wick Body Signals Filter
- Indicateurs
- Version: 1.34
- Activations: 5
1. Overview and Indicator Identity
Fractal Breakout MultiFilter MT5 is an institutional-grade technical indicator engineered natively for MetaTrader 5 that identifies high-probability structural breakout opportunities based on multi-bar fractal geometries and confirms them through an institutional suite of fourteen independent analytical filters. The primary purpose of this analytical tool is to eliminate subjective chart interpretation by mathematically locating confirmed price swing highs and swing lows, projecting their critical barrier levels horizontally across the chart, and delivering actionable breakout signals only when a configurable combination of momentum, trend velocity, volatility, dynamic support/resistance, and cycle confirmation criteria are fully validated. Built natively for MetaTrader 5 in optimized MQL5, the indicator operates directly on the chart window using four dedicated data calculation buffers and custom visual drawing levels. Unlike basic breakout indicators that trigger prematurely during choppy consolidations or sideways noise, Fractal Breakout MultiFilter allows traders, algorithmic strategists, and manual discretionary operators to construct layered mathematical logic filters. By filtering out low-momentum wicks and false expansion moves, it delivers rigorous directional bias for modern electronic foreign exchange, equity indices, digital assets, and commodity trading.
2. Operating Principle and Core Algorithmic Architecture
The technical foundation of Fractal Breakout MultiFilter MT5 relies on a sequential mathematical framework divided into four operational stages: fractal swing detection, boundary threshold calculation, multi-filter qualification, and execution buffer allocation.
2.1. Mathematical Formulation of Multi-Bar Fractals
Classical technical analysis relies on Bill Williams standard 5-bar fractal model, which requires two flanking bars on each side of a central extreme point. Fractal Breakout MultiFilter MT5 generalizes this calculation through the configurable InpFractalBars parameter, denoted as variable n. A bullish swing high (Fractal High) is formally validated at historical candle index k if and only if High[k] > High[k - m] and High[k] > High[k + m] for all integers m from 1 to n. Conversely, a bearish swing low (Fractal Low) is formally validated at historical candle index k if and only if Low[k] < Low[k - m] and Low[k] < Low[k + m] for all integers m from 1 to n. Because the confirmation of any mathematical extrema requires n closed bars to the right of bar k, the resulting price barrier becomes active in the algorithm exactly n bars after the physical pivot candle occurs. This mathematical delay is inherent to fractal geometry and ensures that structural pivot levels are genuine local extrema rather than ephemeral tick anomalies.
2.2. Dual Threshold Geometry: Wick Extrema versus Candle Body Boundaries
To serve diverse trading methodologies, the indicator calculates two distinct threshold boundaries for each confirmed fractal structure:
- Wick Extrema Level: Represents the absolute maximum price excursion. For an upper fractal, this equals High[fractalPos]. For a lower fractal, this equals Low[fractalPos]. Wick breakouts require price to penetrate the extreme liquidity tails established by historical rejections.
- Candle Body Extrema Level: Represents the boundary of concentrated trading volume and closing price agreement. For an upper fractal, this equals MathMax(Open[fractalPos], Close[fractalPos]). For a lower fractal, this equals MathMin(Open[fractalPos], Close[fractalPos]). Body breakouts enable operators to position ahead of wick clearance when strong directional candle bodies establish institutional dominance.
2.3. Dynamic State Management and Level Persistence
Validated fractal price levels persist in indicator memory and are drawn as horizontal tracking levels until broken. When price closes beyond an active barrier under compliant filter conditions, the active status of that level is consumed and reset to prevent redundant duplicate signals on subsequent candles. A new signal in that direction cannot form until a fresh structural fractal is validated by the market.
2.4. Signal Classification and Buffer Mapping
The indicator computes four independent data streams mapped across four technical chart buffers:
- Plot 1 (Buy Signal 1 - Wick Breakout): Plotted in Aqua with Wingdings arrow glyph 233 positioned beneath the candle low when a bullish wick breakout occurs.
- Plot 2 (Sell Signal 1 - Wick Breakout): Plotted in Red with Wingdings arrow glyph 234 positioned above the candle high when a bearish wick breakout occurs.
- Plot 3 (Buy Signal 2 - Body Breakout): Plotted in DodgerBlue with Wingdings arrow glyph 233 positioned beneath the candle low when a bullish candle body breakout occurs.
- Plot 4 (Sell Signal 2 - Body Breakout): Plotted in OrangeRed with Wingdings arrow glyph 234 positioned above the candle high when a bearish candle body breakout occurs.
2.5. Signal Verification and Absolute Non-Repainting Execution
All calculations, buffer assignments, and notification dispatches within Fractal Breakout MultiFilter MT5 are evaluated strictly on completed, closed candlesticks (Bar index 1). While the live, open candlestick (Bar index 0) experiences price fluctuations, provisional calculations are not committed to output buffers until that bar officially closes into history. Once candle Bar 1 closes and plots an arrow or dispatches an alert, the signal is 100% deterministic, immutable, and permanent. The indicator does not repaint, shift, or delete historical signals.
3. Deep Technical Analysis of the Fourteen Integrated Filters
Fractal Breakout MultiFilter MT5 features an institutional array of fourteen independent analytical filters. Each filter can be activated or bypassed independently, allowing operators to design customized multi-dimensional confirmation algorithms:
- 3.1. RSI Cross Filter (Use_RSI_Cross_Filter): Evaluates momentum velocity over RSI_Length on RSI_Price_Source. Buy requires RSI crossing out of oversold (RSI[i] > Oversold and RSI[i+1] <= Oversold). Sell requires RSI crossing down from overbought (RSI[i] < Overbought and RSI[i+1] >= Overbought). Isolates momentum reversal thrusts emerging from extreme zones.
- 3.2. ADX Filter (Use_ADX_Filter): Uses Average Directional Movement Index over ADX_Period. Buy and sell signals require ADX[i] >= ADX_Min_Level. Suppresses breakout signals during low-volatility dead zones and range consolidation chop.
- 3.3. Single Moving Average Filter (Use_MA_Filter): Evaluates price position against a baseline moving average (MA_Period, MA_Method, MA_Shift). Buy signals require Close[i] > MA[i]; sell signals require Close[i] < MA[i], preventing counter-trend execution.
- 3.4. Ichimoku Senkou Span B Filter (Use_Ichimoku_Filter): Incorporates the 52-period Senkou Span B cloud line displaced 26 periods ahead. Evaluates the exact line value under candle i. Buy requires Close[i] > Senkou Span B; sell requires Close[i] < Senkou Span B, enforcing macro equilibrium clearance.
- 3.5. RSI 75 Macro Trend Filter (Use_RSI75_Filter): Long-period 75 RSI serves as an institutional momentum baseline. Buy requires RSI75[i] > 50.0; sell requires RSI75[i] < 50.0, aligning trades with higher-order market dynamics.
- 3.6. Double Moving Average Filter (Use_DoubleMA_Filter): Calculates Fast MA (MA_A_Period, MA_A_Method) and Slow MA (MA_B_Period, MA_B_Method). Buy requires MA_A[i] > MA_B[i]; sell requires MA_A[i] < MA_B[i], confirming dual-ribbon trend expansion.
- 3.7. Awesome Oscillator Suite (Use_AO_Filter): Calculates Bill Williams AO (5-period SMA minus 34-period SMA of median prices). Features three sub-filters: Volume Magnitude (Use_AO_Volume_Filter: Buy >= AO_Buy_Min, Sell <= AO_Sell_Max), Color Slope (Use_AO_Color_Filter: Buy AO[i] > AO[i+1], Sell AO[i] < AO[i+1]), and Zero Polarity (Use_AO_Zero_Filter: Buy AO > 0 with expanding slope, Sell AO < 0 with declining slope).
- 3.8. Parabolic SAR Filter (Use_SAR_Filter): Applies Parabolic SAR (SAR_Step, SAR_Maximum). Buy requires Close[i] > SAR[i]; sell requires Close[i] < SAR[i], ensuring breakouts are supported by parabolic acceleration.
- 3.9. Synthetic Heiken Ashi Filter (Use_HeikenAshi_Filter): Computes recursive Heiken Ashi candle series in memory. Buy requires bullish synthetic candle (HA_Close[i] > HA_Open[i]); sell requires bearish synthetic candle (HA_Close[i] < HA_Open[i]), filtering out corrective pullback wicks.
- 3.10. CCI Trend Filter (Use_CCI_Filter): Commodity Channel Index over CCI_Period. Buy requires CCI[i] > 0.0; sell requires CCI[i] < 0.0, validating statistical mean expansion.
- 3.11. Fast CCI Cyclical Filter (Use_CCI_OBOS_Filter): 14-period CCI detecting extreme momentum bursts. Buy requires CCI > CCI_Overbought (+100); sell requires CCI < CCI_Oversold (-100).
- 3.12. RVI Trend Filter (Use_RVI_Filter): Long-period Relative Vigor Index over RVI_Period. Buy requires RVI[i] > 0.0; sell requires RVI[i] < 0.0, evaluating underlying market energy conviction.
- 3.13. RVI Signal Filter (Use_RVI_Signal_Filter): Responsive 20-period RVI with 4-period signal line. Buy requires RVI_Main[i] > RVI_Signal[i]; sell requires RVI_Main[i] < RVI_Signal[i].
- 3.14. MACD Momentum & Zero Filters: Uses MACD (MACD_FastEMA, MACD_SlowEMA, MACD_SignalSMA). MACD Histogram Filter (Use_MACD_Filter: Buy Histogram > 0, Sell Histogram < 0). MACD Zero Filter (Use_MACD_Zero_Filter: Buy Main Line > 0, Sell Main Line < 0).
- 3.15. Support & Resistance Filter (Use_SR_Filter): Scans historical lookback SR_Period to find major swing resistance and support boundaries with tolerance buffer SR_Zone_Points * _Point. Buy requires price interacting with support; sell requires price interacting with resistance.
- 3.16. Fibonacci Golden Zone Filter (Use_Fib_Filter): Uses embedded ZigZag swing engine (ZigZag_Depth, ZigZag_Deviation, ZigZag_Backstep) to project Fibonacci retracement levels. Buy and sell breakouts are accepted exclusively when price trades within golden pocket (Fib_Level_1 to Fib_Level_2, default 0.382 to 0.618).
4. Key Functional Features and Operation Recommendations
- 4.1. Core Capabilities: Modular 14-filter architecture; Dual breakout sensitivity (Wick Breakout / Signal 1 and Body Breakout / Signal 2); 100% non-repainting closed-bar calculation; Dynamic on-chart horizontal tracking levels; Multi-channel notification alerts (Pop-up, Sound, Mobile Push, Email); Pre-allocated indicator handles ensuring high-speed tick processing without terminal memory leaks.
- 4.2. Supported Instruments: Mathematically universal across Forex pairs (EURUSD, GBPUSD, USDJPY, AUDUSD, NZDUSD, USDCAD, USDCHF), Metals & Energy (XAUUSD, XAGUSD, USOIL), Global Equity Indices (US30, US500, USTEC, GER40), and Cryptocurrencies (BTCUSD, ETHUSD).
- 4.3. Timeframe Recommendations: Scalping (M1-M5 with ADX and SAR); Day Trading (M15-H1 with Ichimoku Senkou Span B, Double MA, or RSI 75); Swing Trading (H4-D1 with Fibonacci Retracement and Support & Resistance).
- 4.4. Account Architecture: Fully compatible with Hedging and Netting MT5 account types across ECN, Raw Spread, and STP brokers.
5. Complete Input Parameters Documentation
All input variables declared in the program source code are detailed below with their default values and technical operational roles:
- InpEnableSignal1 (Default: true) [bool]: Enables Signal 1 calculation (Wick Breakout where Close penetrates fractal wick high/low).
- InpEnableSignal2 (Default: true) [bool]: Enables Signal 2 calculation (Body Breakout where Close penetrates fractal candle body boundary).
- InpArrowDistance (Default: 30) [int]: Vertical offset distance in points between candle high/low price and plotted signal arrow.
- InpArrowSize (Default: 2) [int]: Physical display size of plotted arrow glyphs on chart (scale 1 to 5).
- InpFractalBars (Default: 2) [int]: Number of bars flanking candidate pivot bar on left and right (standard Bill Williams = 2).
- InpShowFractalLines (Default: true) [bool]: Renders dynamic horizontal price levels tracking active upper resistance and lower support fractals.
- InpColorFractalHigh (Default: clrYellow) [color]: Visual color assigned to active upper fractal resistance line.
- InpColorFractalLow (Default: clrAqua) [color]: Visual color assigned to active lower fractal support line.
- InpLineWidth (Default: 1) [int]: Pixel width for active fractal tracking lines.
- InpLineStyle (Default: STYLE_DASH) [ENUM_LINE_STYLE]: Line drawing style for active fractal tracking lines.
- InpAlertPopup (Default: true) [bool]: Enables native pop-up alert dialog boxes inside MetaTrader 5 upon signal confirmation.
- InpAlertSound (Default: true) [bool]: Triggers audio sound notifications through terminal audio output upon signal confirmation.
- InpAlertSoundFile (Default: "alert.wav") [string]: Filename of .wav audio file located in terminal Sounds directory.
- InpAlertPush (Default: true) [bool]: Sends push notifications to mobile devices linked via MetaQuotes ID.
- InpAlertEmail (Default: false) [bool]: Dispatches email notifications to user mailbox configured in Tools -> Options -> Email.
- Use_RSI_Cross_Filter (Default: false) [bool]: Enables RSI oversold/overbought boundary cross filter.
- RSI_Length (Default: 14) [int]: Lookback averaging period applied for RSI calculation.
- RSI_Price_Source (Default: PRICE_CLOSE) [ENUM_APPLIED_PRICE]: Price constant applied for RSI calculation.
- Oversold (Default: 30.0) [double]: Oversold threshold level; buy signals require RSI to cross above this level.
- Overbought (Default: 70.0) [double]: Overbought threshold level; sell signals require RSI to cross below this level.
- Use_ADX_Filter (Default: false) [bool]: Enables ADX trend expansion filter.
- ADX_Period (Default: 10) [int]: Averaging period applied for ADX directional calculation.
- ADX_Min_Level (Default: 20.0) [double]: Minimum threshold level required on ADX baseline to permit breakout signals.
- Use_MA_Filter (Default: false) [bool]: Enables single moving average trend baseline filter.
- MA_Period (Default: 50) [int]: Averaging lookback period for single moving average.
- MA_Method (Default: MODE_SMA) [ENUM_MA_METHOD]: Smoothing calculation method (SMA, EMA, SMMA, LWMA).
- MA_Shift (Default: 0) [int]: Horizontal bar displacement offset for single moving average.
- Use_Ichimoku_Filter (Default: false) [bool]: Enables Ichimoku Senkou Span B cloud boundary filter.
- Ichimoku_SenkouB (Default: 52) [int]: Averaging period for Senkou Span B midpoint line.
- Ichimoku_Kijun (Default: 26) [int]: Horizontal shift offset for cloud boundary mapping.
- Use_RSI75_Filter (Default: false) [bool]: Enables macro 75-period RSI institutional baseline trend filter.
- RSI_Filter_Period (Default: 75) [int]: Lookback period for macro RSI filter calculation.
- Use_DoubleMA_Filter (Default: false) [bool]: Enables dual moving average ribbon alignment filter.
- MA_A_Period (Default: 30) [int]: Calculation period for Fast Moving Average A.
- MA_A_Method (Default: MODE_EMA) [ENUM_MA_METHOD]: Smoothing method for Fast Moving Average A.
- MA_A_Applied (Default: PRICE_CLOSE) [ENUM_APPLIED_PRICE]: Applied price for Fast Moving Average A.
- MA_A_Shift (Default: 0) [int]: Bar shift offset for Fast Moving Average A.
- MA_B_Period (Default: 140) [int]: Calculation period for Slow Moving Average B.
- MA_B_Method (Default: MODE_EMA) [ENUM_MA_METHOD]: Smoothing method for Slow Moving Average B.
- MA_B_Applied (Default: PRICE_CLOSE) [ENUM_APPLIED_PRICE]: Applied price for Slow Moving Average B.
- MA_B_Shift (Default: 0) [int]: Bar shift offset for Slow Moving Average B.
- Use_AO_Filter (Default: false) [bool]: Enables Awesome Oscillator momentum filter suite.
- Use_AO_Volume_Filter (Default: false) [bool]: Enforces minimum absolute histogram magnitude thresholds on AO.
- AO_Buy_Min (Default: 4.0) [double]: Minimum positive threshold level required on AO histogram for buy signals.
- AO_Sell_Max (Default: -4.0) [double]: Maximum negative threshold level required on AO histogram for sell signals.
- Use_AO_Color_Filter (Default: false) [bool]: Enforces momentum slope alignment (Buy requires ascending bar; Sell requires descending bar).
- Use_AO_Zero_Filter (Default: false) [bool]: Enforces zero-line polarity gating (Buy requires AO > 0 and ascending; Sell requires AO < 0 and descending).
- Use_SAR_Filter (Default: false) [bool]: Enables Parabolic SAR dynamic trailing price filter.
- SAR_Step (Default: 0.02) [double]: Acceleration factor increment step for Parabolic SAR.
- SAR_Maximum (Default: 0.2) [double]: Maximum upper bound for Parabolic SAR acceleration factor.
- Use_HeikenAshi_Filter (Default: false) [bool]: Enables internal synthetic Heiken Ashi candle color confirmation.
- Use_CCI_Filter (Default: false) [bool]: Enables baseline Commodity Channel Index zero-line trend filter.
- CCI_Period (Default: 50) [int]: Averaging lookback period for baseline CCI calculation.
- CCI_Applied (Default: PRICE_CLOSE) [ENUM_APPLIED_PRICE]: Applied price constant for baseline CCI calculation.
- Use_CCI_OBOS_Filter (Default: false) [bool]: Enables fast cyclical CCI overbought/oversold momentum breakout filter.
- CCI_OBOS_Period (Default: 14) [int]: Averaging period for fast cyclical CCI calculation.
- CCI_OBOS_Applied (Default: PRICE_CLOSE) [ENUM_APPLIED_PRICE]: Applied price constant for fast cyclical CCI calculation.
- CCI_Overbought (Default: 100.0) [double]: Upper boundary threshold; buy signals require fast CCI > Overbought.
- CCI_Oversold (Default: -100.0) [double]: Lower boundary threshold; sell signals require fast CCI < Oversold.
- Use_RVI_Filter (Default: false) [bool]: Enables long-period Relative Vigor Index zero-line trend filter.
- RVI_Period (Default: 75) [int]: Lookback averaging period for long-term RVI calculation.
- Use_RVI_Signal_Filter (Default: false) [bool]: Enables responsive RVI main vs signal line crossover filter.
- RVI_Signal_Period (Default: 20) [int]: Calculation lookback period for responsive RVI indicator.
- Use_MACD_Filter (Default: false) [bool]: Enables MACD divergence histogram polarity filter (Buy requires Histogram > 0; Sell requires Histogram < 0).
- MACD_FastEMA (Default: 12) [int]: Fast exponential moving average period inside MACD engine.
- MACD_SlowEMA (Default: 26) [int]: Slow exponential moving average period inside MACD engine.
- MACD_SignalSMA (Default: 9) [int]: Signal simple moving average smoothing period inside MACD engine.
- MACD_Applied (Default: PRICE_CLOSE) [ENUM_APPLIED_PRICE]: Applied price constant for MACD calculation.
- Use_MACD_Zero_Filter (Default: false) [bool]: Enables MACD main line zero-line polarity filter (Buy requires MACD > 0; Sell requires MACD < 0).
- Use_SR_Filter (Default: false) [bool]: Enables structural support and resistance zone interaction filter.
- SR_Period (Default: 50) [int]: Historical lookback candle depth scanned to identify extreme support and resistance levels.
- SR_Zone_Points (Default: 80.0) [double]: Buffer zone radius in terminal points surrounding detected support and resistance boundaries.
- Use_Fib_Filter (Default: false) [bool]: Enables structural Fibonacci Golden Zone retracement breakout filter.
- Fib_Level_1 (Default: 0.382) [double]: Primary Fibonacci retracement ratio boundary (38.2%).
- Fib_Level_2 (Default: 0.618) [double]: Secondary Fibonacci retracement ratio boundary (61.8%).
- ZigZag_Depth (Default: 12) [int]: Minimum candle lookback span for internal swing point detection.
- ZigZag_Deviation (Default: 5) [int]: Minimum price movement in points required to validate a swing pivot.
- ZigZag_Backstep (Default: 3) [int]: Minimum count of intervening candles required between consecutive swing pivots.
6. Practical Systematic Trading Setups
- 6.1. Trend Continuation Setup: Enable InpEnableSignal1 = true, Use_MA_Filter = true (50 EMA), and Use_ADX_Filter = true (ADX_Period = 14, ADX_Min_Level = 22.0). Captures trend continuation breakouts while filtering out range consolidations.
- 6.2. Golden Pocket Pullback Setup: Enable InpEnableSignal2 = true, Use_Fib_Filter = true (0.382-0.618), and Use_HeikenAshi_Filter = true. Identifies candle body breakouts terminating counter-trend corrections at Fibonacci equilibrium.
- 6.3. Momentum Scalping Setup: Enable InpEnableSignal1 = true, Use_AO_Filter = true (Use_AO_Color_Filter = true, Use_AO_Zero_Filter = true), and Use_SAR_Filter = true. Delivers high-velocity scalping signals on M1-M5 charts supported by parabolic acceleration.
- 6.4. Institutional Confluence Setup: Enable InpEnableSignal1 = true, InpEnableSignal2 = true, Use_Ichimoku_Filter = true, Use_RSI75_Filter = true, and Use_MACD_Filter = true. Provides multi-cycle structural breakout validation on H1 and H4 charts.
7. Risk Disclaimer
Trading foreign exchange, commodities, indices, and cryptocurrencies carries significant risk of capital loss and may not be suitable for all investors. Past performance, whether demonstrated in historical backtests, forward demonstrations, or simulated environments, provides no guarantee of future trading results. Fractal Breakout MultiFilter MT5 is an analytical software tool designed solely to assist operators in systematic technical chart analysis; it does not provide automated trade execution, financial advice, or profit guarantees. Operators are strongly advised to thoroughly test and validate indicator behaviors and parameter combinations on a demo account before considering live deployment.
