The Ultimate Pro Stochastic Signal Multi Filter
- Indicatori
- Versione: 2.80
- Aggiornato: 26 ottobre 2026
- Attivazioni: 5
1. Overview
Stochastic Multi-Filter Suite is a specialized technical indicator engineered natively for the MetaTrader 5 (MT5) trading platform. The software integrates George Lane's classical Stochastic Oscillator engine with a modular 14-filter algorithmic confirmation framework designated as the MultiFilter Suite. Developed specifically for systematic technical analysts, multi-asset discretionary traders, and quantitative chartists, the indicator transforms standard momentum oscillators into a comprehensive, multi-layered directional execution framework.
Traditional momentum oscillators frequently generate premature signals during sustained trend cycles and excessive whipsaws during low-volatility consolidation channels. Stochastic Multi-Filter Suite mitigates these structural challenges by introducing three mathematically distinct entry calculation models and fourteen independent algorithmic filter layers. Traders can configure the indicator for diverse tactical methodologies, including classical overbought and oversold mean-reversion, momentum breakout validation, and institutional confluence systems where signals require simultaneous validation across moving average slopes, volatility thresholds, cloud boundaries, structural swing points, and Fibonacci retracement ratios.
The indicator operates simultaneously across two visual surfaces: an indicator sub-window presenting smoothed %K and %D lines alongside dynamic threshold levels, and the primary price chart displaying non-repainting directional signal arrows with customizable Wingdings codes, offsets, and color styling. The program supports all liquid financial instruments offered within MetaTrader 5, including Forex currency pairs, precious metals, energies, stock index CFDs, and liquid crypto assets.
2. Operating Principle and System Methodology
Stochastic Multi-Filter Suite operates through a systematic, multi-stage analytical process: raw momentum calculation, entry mode classification, multi-filter screening, arrow rendering, and real-time alert dispatching.
2.1. Core Mathematical Formulation
The primary calculation engine derives standard Stochastic Oscillator buffers using the user-specified pricing models and smoothing techniques:
- Fast %K Calculation: Evaluates the current price position relative to the highest high and lowest low over the lookback period: %K = ((Close - Lowest Low(n)) / (Highest High(n) - Lowest Low(n))) * 100, where n equals InpKPeriod.
- Slowing Smoothing: The raw %K values are smoothed over the InpSlowing period using the user-selected moving average method (MODE_SMA, MODE_EMA, MODE_SMMA, or MODE_LWMA).
- Signal Line (%D): Calculated as a moving average of the smoothed %K line over InpDPeriod using the specified smoothing algorithm.
- Applied Price Fields: Price inputs can be calculated using high/low price bars (STO_LOWHIGH) or candle close prices (STO_CLOSECLOSE) via InpPrice.
2.2. Signal Timing and Non-Repainting Execution
The indicator executes its signal evaluation cycle strictly upon completed, closed candles (Bar Index 1):
- Closed-Bar Evaluation: The algorithm iterates across historical bars with index i >= 1. The currently developing bar (Bar Index 0) is excluded from signal confirmation and alert dispatching to avoid false intra-bar signals.
- Non-Repainting Characteristics: Once a bar closes and all signal and filter conditions are satisfied, a directional arrow is permanently anchored to the chart at the bar open timestamp. Confirmed arrows do not recalculate, shift coordinates, change color, or disappear on historical data.
- Swing Range Calculation: The optional Fibonacci and Support/Resistance modules scan swing extremes via historical ZigZag depth parameters; signal triggers remain strictly anchored to completed closed bars.
2.3. Entry Signal Generation Modes (InpEntryMode)
Traders can choose from three distinct entry calculation models:
- Mode 0: Stochastic Crossover (MODE_STOCH_CROSS)
* BUY Condition: %K crosses above %D from the previous bar to the evaluated bar (%K[1] > %D[1] and %K[2] <= %D[2]).
* SELL Condition: %K crosses below %D from the previous bar to the evaluated bar (%K[1] < %D[1] and %K[2] >= %D[2]).
- Mode 1: Level Cross / Boundary Exit (MODE_LEVEL_CROSS)
* BUY Condition: %K emerges upward from the oversold zone (%K[2] < LevelOversold and %K[1] >= LevelOversold).
* SELL Condition: %K emerges downward from the overbought zone (%K[2] > LevelOverbought and %K[1] <= LevelOverbought).
- Mode 2: Crossover Inside Extreme Zones (MODE_CROSS_IN_LEVEL)
* BUY Condition: %K crosses above %D strictly within oversold territory (%K[1] > %D[1], %K[2] <= %D[2], and %K[1] <= LevelOversold or %D[1] <= LevelOversold).
* SELL Condition: %K crosses below %D strictly within overbought territory (%K[1] < %D[1], %K[2] >= %D[2], and %K[1] >= LevelOverbought or %D[1] >= LevelOverbought).
2.4. Algorithmic Logic of the 14 Filter Modules (MultiFilter Suite)
When one or more filters are enabled, candidate signals from the Stochastic engine must satisfy every active filter rule simultaneously:
- 1. RSI Cross Filter: Evaluates Relative Strength Index boundary transitions. BUY requires RSI[1] to cross upward above RSI_Oversold. SELL requires RSI[1] to cross downward below RSI_Overbought.
- 2. ADX Filter: Evaluates market trend strength. Both BUY and SELL require ADX main line to be greater than or equal to ADX_Min_Level.
- 3. Single MA Filter: Evaluates macro trend alignment. BUY requires Close price to be strictly above the Moving Average. SELL requires Close price to be strictly below the Moving Average.
- 4. Ichimoku Senkou Span B Filter: Evaluates equilibrium cloud boundaries. BUY requires Close to be above Senkou Span B. SELL requires Close to be below Senkou Span B.
- 5. RSI 75 Filter: Evaluates long-period momentum. BUY requires 75-period RSI to be above 50.0. SELL requires 75-period RSI to be below 50.0.
- 6. Double MA Filter: Evaluates moving average hierarchy. BUY requires Fast MA (MA_A) to be above Slow MA (MA_B). SELL requires Fast MA to be below Slow MA.
- 7. Awesome Oscillator (AO) Filter: Evaluates market momentum through three optional modes: Volume threshold (AO >= AO_Buy_Min for BUY, AO <= AO_Sell_Max for SELL), Color histogram direction (AO rising for BUY, AO falling for SELL), and Zero line position (AO rising and positive for BUY, AO falling and negative for SELL).
- 8. Parabolic SAR Filter: Evaluates dynamic stop-and-reverse trajectory. BUY requires Close to be above SAR. SELL requires Close to be below SAR.
- 9. Heiken Ashi Filter: Evaluates synthetic candle momentum. BUY requires Heiken Ashi Close to exceed Heiken Ashi Open (bullish candle). SELL requires Heiken Ashi Close to be below Heiken Ashi Open (bearish candle).
- 10. CCI Trend Filter: Evaluates Commodity Channel Index zero-line polarity. BUY requires CCI to be positive (> 0.0). SELL requires CCI to be negative (< 0.0).
- 11. CCI OB & OS Filter: Evaluates extreme momentum conditions. BUY requires CCI to be above CCI_Overbought. SELL requires CCI to be below CCI_Oversold.
- 12. RVI Filters: Evaluates Relative Vigor Index. RVI Trend requires RVI main line to be positive (> 0.0) for BUY and negative (< 0.0) for SELL. RVI Signal requires RVI main line to be above its signal line for BUY and below for SELL.
- 13. MACD Filters: Evaluates Moving Average Convergence Divergence. MACD Histogram requires the histogram differential to be positive for BUY and negative for SELL. MACD Zero requires the MACD main line to be above zero for BUY and below zero for SELL.
- 14. Support / Resistance & Fibonacci Filters: Evaluates structural price geometry. Support / Resistance defines local extremes over SR_Period; BUY requires price to touch the support zone, SELL requires a touch of the resistance zone. Fibonacci identifies recent swing extremes via ZigZag algorithms; BUY and SELL signals require the candle price range to intersect the designated retracement zone (between Fib_Level_1 and Fib_Level_2).
3. Key Technical Features
- Modular Filter Architecture: 14 distinct algorithmic confirmation filters that can be toggled on/off independently or combined in any permutation to create customized trading rules.
- Triple Stochastic Entry Logic: Full versatility supporting standard crossovers, boundary zone exits, and strict intra-zone crossovers.
- Pure Closed-Bar Execution: Signals and alerts are calculated strictly on candle completion (Bar Index 1), preventing intra-bar repainting and arrow flickering.
- Comprehensive Alert Dispatcher: Immediate notifications via terminal pop-up dialogue windows, custom audio file playback (.wav), and push notifications to mobile MetaTrader devices via MetaQuotes ID.
- Duplicate Alert Protection: Integrated InpAlertOncePerBar filter prevents duplicate notifications on the same completed bar.
- Fully Customizable Visual Interface: Independent color settings, arrow widths, vertical chart distance in points, and configurable Wingdings arrow codes.
- Object-Oriented Architecture: Implemented through the CMultiFilterSuite class with dynamic memory management, efficient timeseries buffer indexing, and complete handle release on deinitialization.
- Multi-Asset and Multi-Timeframe Compatibility: Seamless execution across all MetaTrader 5 symbols, charts, and supported timeframe intervals.
4. Operation and Setup Recommendations
- Supported Financial Instruments: Universally applicable across liquid instruments including Forex currency pairs (EURUSD, GBPUSD, USDJPY, AUDUSD, EURGBP), spot metals (XAUUSD, XAGUSD), energy contracts, equity indices (US30, US500, USTEC, GER40), and liquid cryptocurrencies (BTCUSD, ETHUSD).
- Recommended Timeframes:
* Scalping Strategies (M1, M5): Enable fast confirmation filters such as Single MA, Parabolic SAR, or Heiken Ashi to validate short-term momentum.
* Day Trading Strategies (M15, M30, H1): Suitable for combining Stochastic Level Cross entries with higher-period trend filters like RSI-75, ADX Trend, or MACD Histogram.
* Swing Trading Strategies (H4, D1): Recommended for combining Stochastic Zone Crossovers with the Double MA, Ichimoku Senkou Span B, and Fibonacci Retracement modules.
- Account Type Recommendations: Fully compatible with Hedging and Netting account structures. ECN or Raw Spread accounts are recommended for lower timeframe intraday trading to minimize the impact of execution spreads.
- Computational Considerations: When activating multiple computational filters (such as the ZigZag-based Fibonacci module) across numerous charts simultaneously, ensure adequate terminal resources by adjusting 'Max bars in chart' in the MetaTrader 5 options menu.
5. Input Parameters Documentation
5.1. Signal Generation Mode Settings
- InpEntryMode (Default: MODE_LEVEL_CROSS) -> Core entry logic: MODE_STOCH_CROSS (0: Crossover), MODE_LEVEL_CROSS (1: Boundary exit), or MODE_CROSS_IN_LEVEL (2: Crossover within zones).
5.2. Core Stochastic Settings
- InpKPeriod (Default: 14) -> Number of bars for %K calculation (bars).
- InpDPeriod (Default: 3) -> Number of bars for %D line smoothing (bars).
- InpSlowing (Default: 3) -> Slowing factor applied to the %K calculation (bars).
- InpMethod (Default: MODE_SMA) -> Smoothing method (MODE_SMA, MODE_EMA, MODE_SMMA, MODE_LWMA).
- InpPrice (Default: STO_CLOSECLOSE) -> Price evaluation field (STO_LOWHIGH or STO_CLOSECLOSE).
5.3. Threshold Level Settings
- LevelOversold (Default: 20.0) -> Lower boundary defining the oversold territory (numeric value).
- LevelOverbought (Default: 80.0) -> Upper boundary defining the overbought territory (numeric value).
5.4. Signal Arrow Visual Settings
- InpShowSignal (Default: true) -> Enables or disables directional arrow rendering on the chart (boolean).
- BuyArrowColor (Default: clrAqua) -> Color used for rendering bullish BUY signal arrows (color).
- SellArrowColor (Default: clrRed) -> Color used for rendering bearish SELL signal arrows (color).
- ArrowWidth (Default: 2) -> Display thickness and size of chart signal arrows (pixels).
- CandleDistance (Default: 30) -> Vertical offset between the candle high/low and arrow anchor point (points).
- BuyArrowCode (Default: 233) -> Wingdings character font code for bullish arrows (symbol code).
- SellArrowCode (Default: 234) -> Wingdings character font code for bearish arrows (symbol code).
5.5. Notification and Alert Settings
- NotifAlert (Default: true) -> Enables pop-up message dialogue alerts in the terminal (boolean).
- NotifSound (Default: true) -> Enables audible audio file playback on confirmed signals (boolean).
- NotifPush (Default: false) -> Enables push notifications to mobile MetaTrader 5 terminals via MetaQuotes ID (boolean).
- SoundBuy (Default: "alert.wav") -> Audio file name executed upon confirmed BUY signals (string filename).
- SoundSell (Default: "alert2.wav") -> Audio file name executed upon confirmed SELL signals (string filename).
- InpAlertOncePerBar (Default: true) -> Restricts alerts to a single notification per completed bar (boolean).
5.6. Filter 1: RSI Cross Filter
- Use_RSI_Cross_Filter (Default: false) -> Activates the RSI boundary re-entry filter (boolean).
- RSI_Length (Default: 14) -> Lookback averaging period for the RSI calculation (bars).
- RSI_Price_Source (Default: PRICE_CLOSE) -> Applied price source for the RSI calculation (applied price enum).
- RSI_Oversold (Default: 30.0) -> Lower threshold boundary for bullish RSI crossover (numeric level).
- RSI_Overbought (Default: 70.0) -> Upper threshold boundary for bearish RSI crossover (numeric level).
5.7. Filter 2: ADX Filter
- Use_ADX_Filter (Default: false) -> Activates the Average Directional Index trend strength filter (boolean).
- ADX_Period (Default: 10) -> Lookback averaging period for the ADX calculation (bars).
- ADX_Min_Level (Default: 20.0) -> Minimum required ADX baseline value to confirm a trending state (numeric level).
5.8. Filter 3: Single MA Filter
- Use_MA_Filter (Default: false) -> Activates the single moving average macro trend filter (boolean).
- MA_Period (Default: 50) -> Averaging period for the single moving average line (bars).
- MA_Method (Default: MODE_SMA) -> Smoothing method applied to the moving average (method enum).
- MA_Shift (Default: 0) -> Horizontal bar offset displacement for the moving average (bars).
5.9. Filter 4: Ichimoku Senkou Span B Filter
- Use_Ichimoku_Filter (Default: false) -> Activates the Ichimoku Senkou Span B cloud baseline filter (boolean).
- Ichimoku_Tenkan (Default: 9) -> Calculation period for the Tenkan-sen conversion line (bars).
- Ichimoku_Kijun (Default: 26) -> Calculation period for the Kijun-sen base line (bars).
- Ichimoku_SenkouB (Default: 52) -> Calculation period for the Senkou Span B cloud line (bars).
5.10. Filter 5: RSI 75 Filter
- Use_RSI75_Filter (Default: false) -> Activates the long-term 75-period RSI momentum baseline filter (boolean).
- RSI_Filter_Period (Default: 75) -> Lookback averaging period for the macro RSI calculation (bars).
5.11. Filter 6: Double MA Filter
- Use_DoubleMA_Filter (Default: false) -> Activates the dual moving average alignment filter (boolean).
- MA_A_Period (Default: 30) -> Lookback averaging period for Fast Moving Average A (bars).
- MA_A_Method (Default: MODE_EMA) -> Smoothing method applied to Fast Moving Average A (method enum).
- MA_A_Applied (Default: PRICE_CLOSE) -> Applied price source for Fast Moving Average A (applied price enum).
- MA_A_Shift (Default: 0) -> Horizontal bar offset displacement for Fast Moving Average A (bars).
- MA_B_Period (Default: 140) -> Lookback averaging period for Slow Moving Average B (bars).
- MA_B_Method (Default: MODE_EMA) -> Smoothing method applied to Slow Moving Average B (method enum).
- MA_B_Applied (Default: PRICE_CLOSE) -> Applied price source for Slow Moving Average B (applied price enum).
- MA_B_Shift (Default: 0) -> Horizontal bar offset displacement for Slow Moving Average B (bars).
5.12. Filter 7: Awesome Oscillator (AO) Filter
- Use_AO_Filter (Default: false) -> Main switch activating the Awesome Oscillator filter module (boolean).
- Use_AO_Volume_Filter (Default: false) -> Enables threshold amplitude filtering on the AO histogram (boolean).
- AO_Buy_Min (Default: 4.0) -> Minimum positive AO histogram threshold for BUY qualification (numeric value).
- AO_Sell_Max (Default: -4.0) -> Maximum negative AO histogram threshold for SELL qualification (numeric value).
- Use_AO_Color_Filter (Default: false) -> Enables bar-by-bar AO directional color slope filtering (boolean).
- Use_AO_Zero_Filter (Default: false) -> Enables AO zero-line polarity and slope filtering (boolean).
5.13. Filter 8: Parabolic SAR Filter
- Use_SAR_Filter (Default: false) -> Activates the Parabolic Stop and Reverse trend filter (boolean).
- SAR_Step (Default: 0.02) -> Acceleration factor increment step for the Parabolic SAR (numeric step).
- SAR_Maximum (Default: 0.2) -> Maximum acceleration factor ceiling for the Parabolic SAR (numeric maximum).
5.14. Filter 9: Heiken Ashi Filter
- Use_HeikenAshi_Filter (Default: false) -> Activates the synthetic Heiken Ashi candle body color momentum filter (boolean).
5.15. Filter 10: CCI Trend Filter
- Use_CCI_Filter (Default: false) -> Activates the Commodity Channel Index zero-line trend filter (boolean).
- CCI_Period (Default: 50) -> Calculation averaging period for the trend CCI line (bars).
- CCI_Applied (Default: PRICE_CLOSE) -> Applied price source for the trend CCI calculation (applied price enum).
5.16. Filter 11: CCI OB & OS Filter
- Use_CCI_OBOS_Filter (Default: false) -> Activates the Commodity Channel Index overbought/oversold filter (boolean).
- CCI_OBOS_Period (Default: 14) -> Calculation averaging period for the oscillator CCI line (bars).
- CCI_OBOS_Applied (Default: PRICE_CLOSE) -> Applied price source for the oscillator CCI calculation (applied price enum).
- CCI_Overbought (Default: 100.0) -> Upper threshold level for overbought qualification (numeric level).
- CCI_Oversold (Default: -100.0) -> Lower threshold level for oversold qualification (numeric level).
5.17. Filter 12: RVI Filters
- Use_RVI_Filter (Default: false) -> Activates the Relative Vigor Index zero-line polarity filter (boolean).
- RVI_Period (Default: 75) -> Calculation averaging period for the trend RVI line (bars).
- Use_RVI_Signal_Filter (Default: false) -> Activates the RVI main line versus signal line crossover filter (boolean).
- RVI_Signal_Period (Default: 20) -> Calculation averaging period for the signal-filtered RVI lines (bars).
5.18. Filter 13: MACD Filters
- Use_MACD_Filter (Default: false) -> Activates the MACD histogram differential slope filter (boolean).
- MACD_FastEMA (Default: 12) -> Fast exponential moving average calculation period (bars).
- MACD_SlowEMA (Default: 26) -> Slow exponential moving average calculation period (bars).
- MACD_SignalSMA (Default: 9) -> Signal line simple moving average smoothing period (bars).
- MACD_Applied (Default: PRICE_CLOSE) -> Applied price source for MACD calculations (applied price enum).
- Use_MACD_Zero_Filter (Default: false) -> Activates the MACD main line zero-level polarity filter (boolean).
5.19. Filter 14: Support / Resistance & Fibonacci Filters
- Use_SR_Filter (Default: false) -> Activates the local Support and Resistance structural boundary filter (boolean).
- SR_Period (Default: 50) -> Historical bar lookback period for detecting extremes (bars).
- SR_Zone_Points (Default: 80) -> Vertical buffer zone tolerance around identified support/resistance lines (points).
- Use_Fib_Filter (Default: false) -> Activates the Fibonacci retracement confluence filter (boolean).
- Fib_Level_1 (Default: 0.382) -> Primary Fibonacci retracement boundary ratio (numeric ratio).
- Fib_Level_2 (Default: 0.618) -> Secondary Fibonacci retracement boundary ratio (numeric ratio).
- ZigZag_Depth (Default: 12) -> Minimum bar interval for swing point detection in the ZigZag algorithm (bars).
- ZigZag_Deviation (Default: 5) -> Minimum price deviation required to create new swing pivots (points).
- ZigZag_Backstep (Default: 3) -> Minimum number of bars between consecutive swing pivots (bars).
6. Risk Disclaimer
Trading foreign exchange (Forex), contracts for difference (CFDs), commodities, equities, and cryptocurrencies on margin carries a high level of risk and may not be suitable for all investors. The high degree of leverage available in financial trading can work against you as well as for you. Before deciding to trade financial markets, you should carefully consider your investment objectives, level of experience, and risk appetite. There is a possibility that you could sustain a loss of some or all of your initial investment; therefore, you should not invest money that you cannot afford to lose.
Past performance, historical backtest outcomes, and simulated trading data do not assure or predict future trading outcomes. This software is an analytical and operational technical indicator intended exclusively to assist traders in objective technical chart analysis; it does not constitute financial, investment, or trading advice, nor does it represent an assurance of profitable trading outcomes. Market conditions can change rapidly, and technical indicators are subject to market volatility, liquidity variations, and execution slippage. Traders must thoroughly test this product on a demo trading account under various market conditions before considering deployment in live trading environments.
