Technical User Guide: SFA Z-Score Dashboard (v1.09)

SFA Z-Score Dashboard is a professional multi-currency indicator dashboard for MetaTrader 5, designed for comprehensive fundamental and statistical analysis of the Forex market. The indicator simultaneously calculates and visualizes normalized deviations (Z-Score) for 8 major world currencies (USD, EUR, GBP, AUD, NZD, CAD, CHF, JPY) in a single indicator subwindow.

The core concept behind this tool is evaluating the absolute strength and weakness of each individual currency independently of its paired quotation. This enables analysts and traders to identify structural imbalances, detect extreme overbought and oversold conditions, and spot intermarket divergences before they appear on standard price charts.

Core Features and Architecture

  • Synthetic Calculation of 8 Currency Indices: The algorithm processes data across the entire matrix of 28 major Forex pairs simultaneously, building isolated dynamic profiles for each asset.
  • Automatic Broker Suffix and Prefix Detection: The FindSymbol function scans the Market Watch automatically and adapts to any broker's symbol naming conventions (supports tickers such as EURUSD.pro, mEURUSD, EURUSD_i, etc.).
  • Dynamic Color Legend: An interactive panel rendered directly inside the subwindow displays real-time Z-Score values for each index, color-coded to match the corresponding plotted lines.
  • Two-Level Spike Limiter: An anomaly filtering mechanism smooths non-market spikes and extreme outliers both during raw single-pair calculations and during final index aggregation.

Calculation Methodology and Basket Composition

The index calculation relies on mathematical statistics and quotation distribution principles without using fixed trade volume weights (unlike the classic DXY index), making the model equally objective for all 8 currencies.

1. Currency Basket Composition and Structure

A unique basket of 7 currency pairs is assigned to each of the 8 currencies, where the evaluated asset acts as either the base or quote currency:

  • USD Index: EURUSD (* -1), GBPUSD (* -1), AUDUSD (* -1), NZDUSD (* -1), USDCAD, USDCHF, USDJPY.
  • EUR Index: EURUSD, EURGBP, EURAUD, EURNZD, EURCAD, EURCHF, EURJPY.
  • GBP Index: GBPUSD, EURGBP (* -1), GBPAUD, GBPNZD, GBPCAD, GBPCHF, GBPJPY.
  • AUD Index: AUDUSD, EURAUD (* -1), GBPAUD (* -1), AUDNZD, AUDCAD, AUDCHF, AUDJPY.
  • NZD Index: NZDUSD, EURNZD (* -1), GBPNZD (* -1), AUDNZD (* -1), NZDCAD, NZDCHF, NZDJPY.
  • CAD Index: EURCAD (* -1), GBPCAD (* -1), AUDCAD (* -1), NZDCAD (* -1), USDCAD (* -1), CADCHF, CADJPY.
  • CHF Index: USDCHF (* -1), EURCHF (* -1), GBPCHF (* -1), AUDCHF (* -1), NZDCHF (* -1), CADCHF (* -1), CHFJPY.
  • JPY Index: USDJPY (* -1), EURJPY (* -1), GBPJPY (* -1), AUDJPY (* -1), NZDJPY (* -1), CADJPY (* -1), CHFJPY (* -1).

* -1 denotes an inverted quotation.

2. Step-by-Step Calculation Algorithm

  1. Single-Pair Z-Score Normalization: For every bar of a selected pair, its current price deviation from the moving average is calculated and divided by the standard deviation over a specified period. This brings diverse pairs with varying volatilities (e.g., EURUSD and GBPJPY) onto a unified, dimensionless scale.
  2. Inversion Logic Handling: If the analyzed currency acts as the quote currency in a pair (e.g., EUR in EURUSD when calculating the USD Index), its deviation value is mathematically inverted (multiplied by -1).
  3. Primary Spike Cutoff: If spike limiting is enabled, the calculated Z-Score values for individual pairs are capped at the specified upper and lower Sigma limits.
  4. Index Aggregation: The arithmetic mean of the normalized deviations across all 7 constituent pairs is calculated for each bar.
  5. Secondary Smoothing: The resulting index curve is smoothed using a Simple Moving Average (SMA) to eliminate market noise.

Input Parameters

ParameterDefault ValueDescription
ZScorePeriod200Base period for calculating the moving average and standard deviation (Z-Score). Defines the historical lookback window for evaluating average market conditions.
SmoothLength5Period for final smoothing of the index lines. Eliminates minor tick noise without introducing lag.
LimitSpikestrueEnables/disables hard filtering of extreme statistical outliers.
MaxSigmaLimit4.0Threshold cutoff level (in units of standard deviation $\sigma$). Values exceeding $+4.0$ or falling below $-4.0$ are clamped to these boundaries.
MaxHistoryBars3000Maximum history depth in bars used for full indicator recalculation, optimizing memory usage.
RecalcSafetyMargin20Number of guaranteed bars recalculated on every tick to prevent data corruption during price slippage.
LoadCushionBars100Buffer cushion of extra bars fetched per symbol beyond the calculation window to resolve history synchronization issues.
LineWidth1Line width for rendering all 8 currency index curves in the subwindow.
ShowLegendtrueToggles the display of the textual value legend panel in the subwindow.

Signal Levels and Practical Interpretation

The indicator subwindow features a fixed coordinate space centered at zero, marked by three key dotted levels:

  • Level 0.00 (Zero Line / Fair Value):The central balance axis. An index trading near zero indicates that the currency is valued close to its historical mean across its full basket. A cross above zero signals growing bullish momentum, while a cross below points to weakness.
  • Level +2.00 (Upper Limit / Overbought Zone):Statistical deviation boundary of +2 sigma (covering approximately 95% of normal distribution outcomes). An index line above this level indicates extreme expansion and overbought conditions, highlighting a potential momentum slowdown or reversal zone.
  • Level -2.00 (Lower Limit / Oversold Zone):Statistical deviation boundary of -2 sigma. An index line below this level points to critical weakness across the entire market spectrum and deep oversold conditions.

Practical Trading Applications:

  1. High-Probability Pair Selection (Divergence / Mirroring): The strongest trend moves occur on currency pairs composed of two assets positioned at opposite extremes of the dashboard (e.g., USD Index at -2.5 and JPY Index at +2.5 yields a high-conviction buy bias for USDJPY).
  2. Mean Reversion Trades: When a currency breaches extreme levels ( 2.0) and turns back inward, it signals profit-taking on existing trend positions or potential counter-trend entries.
  3. Clustering and Ranging: Entanglement of multiple index lines in a tight band around the zero line reflects low volatility and a lack of clear macro drivers across the currency market.