MA Cross Signal Scan All Pair Timeframe Dashboard
- Indicateurs
- Version: 1.14
- Mise à jour: 29 septembre 2026
- Activations: 5
Overview
The MA Cross Scanner Pro is an advanced, highly optimized multi-symbol and multi-timeframe analytical dashboard engineered specifically for the MetaTrader 5 terminal. Designed for technical analysts, systemic traders, and quantitative researchers, this utility serves as a comprehensive market surveillance engine. Its primary objective is to continuously monitor a customized array of financial instruments across numerous timeframes simultaneously, detecting precise moving average crossover events without requiring the user to manually cycle through individual chart windows. The software functions strictly as a technical analysis and alert utility. It processes historical bar data to generate objective, rule-based directional alerts. The system is built around a robust crossover engine supported by an expansive library of 14 customizable technical filtering modules. These modules span momentum oscillators, structural price action modifiers, and dynamic support/resistance algorithms. By combining the primary moving average crossover with strict secondary filter consensus, users can mathematically define and isolate specific market conditions.
Operating Principle and Non-Repainting Logic
The foundational mathematical algorithm of this scanner relies on the spatial relationship between a Fast Moving Average and a Slow Moving Average. To comply with rigorous technical analysis standards and ensure absolute historical data integrity, this indicator is programmed with a strict closed-bar (Bar 1) validation mechanism. The software explicitly does not calculate valid signals on the currently active, fluctuating price candle (Open Bar / Bar 0). Intraday price fluctuations can cause moving averages to cross and un-cross multiple times before a candle concludes. Instead, the algorithm waits for the specific timeframe's candle to reach its absolute conclusion. Only when the candle fully closes and transitions into historical data does the indicator run its validation matrix. Because the mathematical calculation is applied exclusively to closed historical data structures, the signals generated by the MA Cross Scanner Pro are strictly non-repainting. Once a bullish or bearish arrow is plotted on the active chart, or once a signal log is generated inside the dashboard interface, it becomes a permanent historical data point. The signal will never dynamically shift to a different candle, disappear, or alter its directional parameter upon terminal restart or chart refresh.
Signal Entry and Filter Consensus Logic
The indicator operates on a strict consensus mechanism. It requires absolute alignment between the primary moving average crossover and every single secondary filter activated by the user. If even one active filtering module contradicts the primary crossover direction, the entire signal is invalidated and discarded by the scanning engine.
Buy Signal Logic: A valid bullish sequence is initiated when the Fast Moving Average calculates a numerical value greater than the Slow Moving Average on the most recently closed bar, whereas on the preceding bar, the Fast Moving Average was equal to or less than the Slow Moving Average. Simultaneously, all user-activated secondary modules must output a bullish state. For example, if the Awesome Oscillator filter is active, its histogram must reside above the zero baseline or meet the required positive momentum thresholds. Only when absolute consensus is achieved across the primary engine and all active sub-modules will a BUY arrow be drawn and the graphical interface updated.
Sell Signal Logic: A valid bearish sequence is initiated when the Fast Moving Average calculates a numerical value lower than the Slow Moving Average on the most recently closed bar, whereas on the preceding bar, the Fast Moving Average was equal to or greater than the Slow Moving Average. Concurrently, all active secondary modules must output a bearish state. If the Heiken Ashi structural filter is enabled, the closed Heiken Ashi candle for that specific timestamp must be mathematically bearish. Upon complete system consensus, a SELL arrow is rendered, and notification protocols are triggered.
Dynamic Volatility Targeting (ATR Stop Loss & Take Profit)
Fixed point-based Stop Loss and Take Profit levels often fail to adapt to expanding or contracting market volatility. To solve this, the scanner incorporates a built-in Average True Range (ATR) algorithm to calculate risk perimeters dynamically. Upon the generation of a valid crossover signal, the algorithm retrieves the exact ATR value corresponding to the closed signal bar. The Stop Loss distance is computed by multiplying this baseline ATR value by a user-defined coefficient multiplier. The Take Profit levels are subsequently derived utilizing risk-to-reward (RR) proportionality. TP1 is projected using a 1.0 RR ratio, meaning the projected profit distance is exactly mathematically equal to the Stop Loss distance. TP2 is projected using a 2.0 RR ratio, projecting a target distance twice as large as the Stop Loss. These precise coordinates are rendered visually on the active chart as extended horizontal trendlines equipped with precise textual price tags.
Advanced Filtering Modules Mechanics
The scanner features 14 independent technical filtering algorithms. Below is the technical breakdown of each module's internal logic:
1. Baseline Trend Filter: Utilizes a macro-level Moving Average (default 200 EMA) to determine the overarching market environment. Buy signals are processed exclusively when the crossover closing price is situated above this macro moving average. Sell signals are strictly processed when the crossover price is below it.
2. RSI Cross Filter: Evaluates the Relative Strength Index momentum trajectory. A bullish crossover requires the RSI main line to have recently crossed above a specified lower boundary (e.g., crossing above 30.0). A bearish crossover requires the RSI to have recently crossed below a specified upper boundary.
3. ADX Momentum Filter: Measures trend velocity using the Average Directional Index. Regardless of whether the signal is long or short, the ADX main line must exceed a minimum threshold (e.g., 20.0). This prevents the scanner from issuing signals during flat, non-directional consolidation phases.
4. Single MA Validation Filter: An additional moving average layer. The closing price of the crossover bar must simply reside above this secondary MA for long signals, and below it for short signals.
5. RSI 75 Long-Term Bias Filter: Deploys a smoothed, long-period RSI to determine long-term oscillator bias. Bullish signals demand this specific RSI to calculate above the 50.0 median baseline; bearish signals demand it to calculate below 50.0.
6. Double MA Validation Filter: Deploys two independent, secondary moving averages (MA A and MA B). For a bullish output, MA A must be numerically greater than MA B. For a bearish output, MA A must be numerically lower than MA B.
7. Awesome Oscillator (AO) Filter: Analyzes the momentum histogram logic. Users can dictate that the AO volume physically exceeds specific thresholds, that the AO histogram color matches the signal direction, or that the AO strictly crosses the zero baseline synchronously with the moving average cross.
8. Parabolic SAR Filter: Evaluates trailing trend acceleration. The closing price of the crossover bar must be positioned structurally above the SAR coordinate dots for a valid buy signal, and below the SAR dots for a valid sell signal.
9. Heiken Ashi Price Action Filter: Processes standard OHLC market data through Heiken Ashi mathematical transformation. The module can be configured to require the HA candle color to match the signal, require a strict HA color flip on the exact signal bar, or require a specific continuous chain of consecutive aligned HA bars. It also fully supports Heiken Ashi Smoothed (HAS) calculations.
10. CCI Trend Filter: Evaluates the Commodity Channel Index position relative to its zero baseline. Bullish configurations require a CCI value above 0; bearish configurations require a value below 0.
11. CCI Overbought/Oversold Filter: Demands that the CCI value physically resides in extreme statistical boundary zones (e.g., above 100.0 for buys, below -100.0 for sells) to intercept momentum exhaustion setups.
12. RVI Trend Filter: Evaluates the Relative Vigor Index position relative to its zero baseline to determine intrinsic structural market energy.
13. RVI Signal Filter: Requires the RVI Main line to be positioned strictly above the RVI Signal line for bullish setups, and below the RVI Signal line for bearish setups.
14. MACD Signal & Zero Filter: Evaluates the Moving Average Convergence Divergence histogram dynamics. It can demand that the MACD histogram is physically above its specific signal line for longs, or demand that it resides completely above the absolute zero baseline.
15. Support & Resistance Proximity Filter: Scans historical bar arrays over a defined lookback period to dynamically locate the highest macro high and lowest macro low. The crossover signal is validated if and only if the price action physically touches or closes within a highly specific point-buffer proximity zone of these historical extremes.
16. Fibonacci Retracement Filter: Calculates an internal structural ZigZag algorithm to locate the most prominent recent Swing High and Swing Low vectors. It overlays mathematical Fibonacci zones. The crossover is validated only if it manifests precisely within this predefined retracement pocket.
Graphical User Interface (GUI) and Interaction
The scanner is equipped with an optimized graphical user interface rendered via Object functions directly onto the active chart. The dashboard is constructed as a structured data grid comprising the following columns: Pair, Timeframe, Direction (Dir), Time of Signal, Exact Cross Price, Stop Loss Price, Target Profit 1 Price, Target Profit 2 Price, Signal Age, and an interactive Open button. The dashboard supports dynamic user interaction. Traders can click directly on the column headers (PAIR, TF, DIR, TIME) to sort the active signals in ascending or descending chronological or alphabetical order. The OPEN button serves as a rapid-navigation tool; clicking it instantly forces the currently active chart to switch to that exact currency pair and timeframe, facilitating immediate technical review without the need to manually search the Market Watch directory. The GUI panel can be repositioned across the chart by dragging the top header and can be collapsed via the MIN button to conserve workspace visibility.
Hardware Resource Management and Computational Efficiency
Scanning dozens of financial instruments across numerous timeframes requires significant CPU thread allocation. To prevent terminal freezing and mitigate RAM overloading, this scanner incorporates specialized operational limits. The InpBarsCopy parameter restricts the algorithm from scanning infinite historical data. By limiting the computational loop to the most recent 200 bars per timeframe, the software drastically reduces calculation time. The InpScanSec parameter acts as a CPU throttle. Instead of calculating complex data matrices on every single price tick, the scanner updates its dashboard at fixed temporal intervals. Users deploying the scanner on lower-specification desktop environments or shared Virtual Private Servers (VPS) are advised to reduce the InpMaxSymbols array and increase the InpScanSec timer to maintain optimal terminal stability.
Operation and Setup Recommendations
- Supported Instruments: Applicable to major and minor forex currency pairs, commodities, and stock indices. Users should analyze spread characteristics before deployment.
- Recommended Timeframes: Functions across all standard timeframes from M1 to MN1.
- Execution Environment: Compatible with both Hedging and Netting account structures. Standard or ECN execution environments are acceptable.
- Performance Tip: Do not open excessive instances of the scanner on multiple charts. A single instance is designed to handle multi-symbol operations.
Input Parameters List
[Scanner Settings]
InpSymbols (Default: EURUSD,GBPUSD,USDJPY...) -> Comma-separated string of instruments to scan.
InpTimeframes (Default: M1,M5,M15,M30,H1,H4,D1) -> Comma-separated string of timeframes to scan.
InpUseWatch (Default: true) -> If true, scans all instruments currently visible in the Market Watch window, overriding the symbols list.
InpMaxSymbols (Default: 10) -> The maximum number of symbols to load into the dashboard memory array to manage RAM usage.
InpScanSec (Default: 5) -> The interval delay in seconds between each background scan cycle. Higher values reduce CPU usage.
InpBarsCopy (Default: 200) -> The historical depth (number of bars) analyzed per timeframe.
InpDirection (Default: 0) -> Signal direction allowance: 0=Both, 1=Buy Only, 2=Sell Only.
InpLatestOnly (Default: true) -> If true, displays only the most recent valid signal per pair and timeframe, purging older alerts.
[MA Crossing Settings]
InpMethod (Default: MODE_EMA) -> The calculation method applied to the primary moving averages (SMA, EMA, SMMA, LWMA).
InpFast (Default: 10) -> The period length of the Fast Moving Average.
InpFastShift (Default: 0) -> The horizontal shift applied to the Fast Moving Average.
InpSlow (Default: 25) -> The period length of the Slow Moving Average.
InpSlowShift (Default: 0) -> The horizontal shift applied to the Slow Moving Average.
[ATR SL & TP Settings]
InpATRPeriod (Default: 14) -> The calculation period for the Average True Range volatility measurement.
InpATR_SL_Mult (Default: 1.5) -> The multiplier applied to the ATR value to calculate the physical Stop Loss distance.
InpTP1_RR (Default: 1.0) -> The Risk-Reward ratio for Target 1 (1.0 equals 1:1 risk-to-reward).
InpTP2_RR (Default: 2.0) -> The Risk-Reward ratio for Target 2 (2.0 equals 1:2 risk-to-reward).
InpDrawLinesOnChart (Default: true) -> Toggles the visual rendering of Entry, SL, and TP horizontal levels on the chart.
InpSignalPrefix (Default: MA) -> Text label prefix printed next to the entry line.
InpLineExtendBars (Default: 10) -> The number of future bars the horizontal level lines will extend into for visual tracking.
[Trend Filter]
UseTrend (Default: false) -> Activates a baseline Moving Average to determine global trend direction.
TrendPeriod (Default: 200) -> The period length of the trend filtering average.
TrendMethod (Default: MODE_EMA) -> The moving average method used for the trend filter.
[RSI Cross Filter]
Use_RSI_Cross_Filter (Default: false) -> Activates filtering based on RSI line crossing standard boundaries.
RSI_Length (Default: 14) -> The period length of the Relative Strength Index.
RSI_Price_Source (Default: PRICE_CLOSE) -> The applied price data for RSI calculation.
Oversold (Default: 30.0) -> The lower boundary threshold; bullish signals require RSI to cross above this level.
Overbought (Default: 70.0) -> The upper boundary threshold; bearish signals require RSI to cross below this level.
[ADX Filter]
Use_ADX_Filter (Default: false) -> Activates the Average Directional Movement Index to measure trend strength.
ADX_Period (Default: 10) -> The calculation period for the ADX filter.
ADX_Min_Level (Default: 20.0) -> The minimum ADX value required to validate any signal.
[Single MA Filter]
Use_MA_Filter (Default: false) -> Activates an additional secondary Moving Average filter.
MA_Period (Default: 50) -> The period length of the secondary MA.
MA_Method (Default: MODE_SMA) -> The calculation method for the secondary MA.
MA_Applied (Default: PRICE_CLOSE) -> The applied price source.
MA_Shift (Default: 0) -> The horizontal timeline shift parameter.
[RSI 75 Filter]
Use_RSI75_Filter (Default: false) -> Activates a specific long-period RSI for baseline bias.
RSI_Filter_Period (Default: 75) -> The period length of the bias RSI.
RSI75_Price_Source (Default: PRICE_CLOSE) -> The applied price for bias calculation.
[Double MA Filter]
Use_DoubleMA_Filter (Default: false) -> Activates a secondary dual MA crossover validation system.
MA_A_Period (Default: 30) -> The period of the first validation MA.
MA_A_Method (Default: MODE_EMA) -> The calculation method of the first validation MA.
MA_A_Applied (Default: PRICE_CLOSE) -> The applied price of the first validation MA.
MA_A_Shift (Default: 0) -> The horizontal shift of the first validation MA.
MA_B_Period (Default: 140) -> The period of the second validation MA.
MA_B_Method (Default: MODE_EMA) -> The calculation method of the second validation MA.
MA_B_Applied (Default: PRICE_CLOSE) -> The applied price of the second validation MA.
MA_B_Shift (Default: 0) -> The horizontal shift of the second validation MA.
[Awesome Oscillator Filter]
Use_AO_Filter (Default: false) -> Activates the Awesome Oscillator histogram filter.
Use_AO_Volume_Filter (Default: false) -> Requires the AO value to exceed specific numeric thresholds.
AO_Buy_Min (Default: 4.0) -> The minimum positive AO value for buy confirmation.
AO_Sell_Max (Default: -4.0) -> The maximum negative AO value for sell confirmation.
Use_AO_Color_Filter (Default: false) -> Requires the AO histogram to display rising or falling momentum appropriately.
Use_AO_Zero_Filter (Default: false) -> Requires the AO to cross the zero baseline concurrently.
[Parabolic SAR Filter]
Use_SAR_Filter (Default: false) -> Activates the Parabolic Stop and Reverse indicator.
SAR_Step (Default: 0.02) -> The incremental step parameter for SAR calculation.
SAR_Maximum (Default: 0.2) -> The maximum threshold parameter for SAR acceleration.
[Heiken Ashi Filter]
Use_HeikenAshi_Filter (Default: false) -> Activates structural price action filtering via Heiken Ashi mathematics.
HA_Mode (Default: HA_CANDLE_COLOR) -> The evaluation logic (0=Match Color, 1=Color Change, 2=Consecutive Bars).
HA_ConfirmBars (Default: 1) -> The number of consecutive HA bars required if Mode 2 is selected.
HA_AllowDoji (Default: false) -> If true, considers HA Doji bars as valid continuations rather than neutral rejections.
HA_Smoothed (Default: false) -> Activates the Heiken Ashi Smoothed variant via prior moving average calculation.
HA_SmoothPeriod (Default: 0) -> The period length applied to the OHLC data prior to HA construction.
HA_SmoothMethod (Default: MODE_SMMA) -> The moving average method used for HA smoothing.
InpDrawHA (Default: false) -> Toggles the visual rendering of HA candles directly on the chart interface.
InpHidePriceCandles (Default: false) -> Hides standard MT5 price bars to display only the calculated HA candles.
[CCI Trend Filter]
Use_CCI_Filter (Default: false) -> Activates the Commodity Channel Index for baseline zero-line bias.
CCI_Period (Default: 50) -> The period length of the CCI trend calculation.
CCI_Applied (Default: PRICE_CLOSE) -> The applied price for the CCI algorithm.
[CCI OB & OS Filter]
Use_CCI_OBOS_Filter (Default: false) -> Activates CCI filtering based on specific extreme zone levels.
CCI_OBOS_Period (Default: 14) -> The short-term period length for the extreme zone CCI.
CCI_OBOS_Applied (Default: PRICE_CLOSE) -> The applied price source.
CCI_Overbought (Default: 100.0) -> The upper extreme threshold logic parameter.
CCI_Oversold (Default: -100.0) -> The lower extreme threshold logic parameter.
[RVI Trend Filter]
Use_RVI_Filter (Default: false) -> Activates the Relative Vigor Index to determine energy bias above/below zero.
RVI_Period (Default: 75) -> The period length for the RVI algorithm.
[RVI Signal Filter]
Use_RVI_Signal_Filter (Default: false) -> Activates evaluation of the RVI Main line crossing the RVI Signal line.
RVI_Signal_Period (Default: 20) -> The period length for the dual-line RVI crossover logic.
[MACD Signal Filter]
Use_MACD_Filter (Default: false) -> Activates evaluation of the MACD histogram crossing the signal line.
MACD_FastEMA (Default: 12) -> The period of the MACD Fast Exponential Moving Average.
MACD_SlowEMA (Default: 26) -> The period of the MACD Slow Exponential Moving Average.
MACD_SignalSMA (Default: 9) -> The period of the Simple Moving Average applied to the MACD line.
MACD_Applied (Default: PRICE_CLOSE) -> The applied price for MACD components.
[MACD Level 0 Filter]
Use_MACD_Zero_Filter (Default: false) -> Requires the MACD main histogram to be positioned strictly above or below the zero baseline.
[Support & Resistance Filter]
Use_SR_Filter (Default: false) -> Activates proximity logic to historical swing highs and lows.
SR_Period (Default: 50) -> The historical lookback period in bars to determine the baseline extreme prices.
SR_Zone_Points (Default: 80) -> The tolerance buffer measured in points extending outward from the calculated S&R lines. Signals are valid only if occurring within this buffer.
[Fibonacci Filter]
Use_Fib_Filter (Default: false) -> Activates retracement zone validations derived from ZigZag swing structure.
Fib_Level_1 (Default: 0.382) -> The primary Fibonacci retracement ratio boundary.
Fib_Level_2 (Default: 0.618) -> The secondary Fibonacci retracement ratio boundary.
ZigZag_Depth (Default: 12) -> The peak depth variable for the internal ZigZag pointer.
ZigZag_Deviation (Default: 5) -> The deviation variable for swing generation in points.
ZigZag_Backstep (Default: 3) -> The structural backstep parameter for swing validation.
[Signal Settings]
SignalOffset (Default: 12) -> The visual displacement distance in points for chart arrows to prevent overlap with candles.
BuyArrowCode (Default: 233) -> The wingdings font character code for the bullish chart arrow.
SellArrowCode (Default: 234) -> The wingdings font character code for the bearish chart arrow.
[Alert Settings]
InpAlertPopup (Default: true) -> Enables native MetaTrader dialog box notifications.
InpAlertSound (Default: true) -> Enables audio notifications upon signal generation.
InpAlertSoundFile (Default: alert.wav) -> The specific audio file executed for sound alerts.
InpAlertPush (Default: false) -> Dispatches push notifications to the MetaTrader mobile application via MetaQuotes ID.
InpAlertEmail (Default: false) -> Dispatches email reports via the terminal SMTP configuration.
InpAlertOnlyNew (Default: true) -> If true, restricts alerts strictly to new chronological events, ignoring duplicate timestamps to prevent spam.
[Display / Size / Sorting Parameters]
InpX (Default: 12) -> Dashboard horizontal X-axis coordinate positioning.
InpY (Default: 28) -> Dashboard vertical Y-axis coordinate positioning.
InpScale (Default: 110) -> Graphical scaling percentage for 4K or high-DPI monitor adjustments.
InpRowH (Default: 18) -> The calculated height dimension of each dashboard table row.
InpFont (Default: 7) -> The primary font size utilized for dashboard text rendering.
InpPadX (Default: 7) -> The internal padding dimensions inside dashboard cells.
InpWPair to InpWOpen -> Column width adjustment parameters for Pair, TF, Dir, Time, Price, SL, TP1, TP2, Age, and Open buttons.
InpShowEmpty (Default: false) -> If true, displays instruments on the dashboard even when no valid signal is currently active.
InpMaxRows (Default: 17) -> Limits the maximum number of rows visually drawn on the interface to save space.
InpSortBy (Default: SORT_TIME) -> Selects the default startup sorting parameter (Time, Pair, TF, Direction).
InpSortNewest (Default: true) -> Toggles descending or ascending chronological sorting logic.
[Draw on this chart & Colors]
InpDrawOnChart (Default: true) -> Toggles the visual rendering of the primary moving averages on the current chart.
InpDrawHistory (Default: true) -> Renders historical signal arrows for back-testing and visual review.
InpColBg to InpColTP2 -> An expansive list of color parameter definitions allowing users to customize the visual theme of the dashboard, encompassing backgrounds, text, and alert levels to match light or dark mode terminals.
Risk Disclaimer:
Trading foreign exchange, commodities, stock indices, and other leveraged financial instruments involves a high degree of risk and may not be suitable for all investors. The leverage provided by brokerages can work against you as well as for you. Past market performance, including any structural demonstrations or historical backtest scenarios generated by this software, is not indicative of and does not guarantee future results. This software is provided strictly as a technical analysis, mathematical calculation, and operational assistance tool. It is not an automated trading robot, it operates independent of direct capital allocation, and it does not represent investment advice. Traders are strongly advised to extensively test the operational behavior and filtering mechanics of this product within a simulated Demo Account environment before considering deployment in any live, real-capital trading operations.
