The **Pairs Trading Cointegration Pro Suite** is an institutional-grade, high-performance separate window statistical arbitrage trading suite comprising two advanced indicators: `PairsTrading_Pro` (Z-Score separate window oscillator) and `PairsTrading_Bands_Pro` (Main-chart overlay bands). Based on Modern Portfolio Theory and econometric cointegration, the suite decomposes the pricing relationship of two correlated assets into a stationary, volatility-normalized spread.
While traditional retail pairs trading methods rely on simple price correlation (which is highly unstable and prone to structural drift), the `PairsTrading_Pro` suite utilizes a dynamic rolling **Ordinary Least Squares (OLS) mathematical engine**. It dynamically calculates the rolling Hedge Ratio ($\beta$) and Intercept ($\alpha$) between any two assets to extract the true stationary spread.
Featuring **VWAP-style Anchored Resets** (Session, Weekly, Monthly, and Custom Session), the indicators can completely isolate intraday/intraweek price relationships from overnight gaps and illiquidity, delivering a highly visual and robust quantitative scanner system.
The statistical calculations operate on synchronized close prices for Asset $A$ ($P_{A,t}$) and Asset $B$ ($P_{B,t}$) over an active rolling or anchored window of size $N$ (`window_size`):
The calculator computes the rolling mean of Asset $A$ ($\bar{A}$) and Benchmark $B$ ($\bar{B}$). It then solves the OLS regression of $A$ on $B$ to find the dynamic Hedge Ratio ($\beta$) and Intercept ($\alpha$):
The spread at each bar $t$ within the window is calculated. Because we subtract the OLS intercept ($\alpha_i$), the rolling mean of this spread over the window is **algebraically guaranteed to be exactly 0.0**:
The final Z-Score is calculated, representing how many standard deviations the current spread has drifted away from its statistical equilibrium of $0.0$:
### D. Main Chart Cointegration Bands (PairsTrading_Bands_Pro)
By rearranging the spread equation back to the price space of Asset $A$, we project the dynamic statistical boundaries directly onto the main price chart:
All covariance, variance, rolling OLS, and Z-Score computations are encapsulated inside the highly optimized `CPairsTradingCalculator` include class. It exposes public getter methods (`GetBeta()`, `GetAlpha()`, `GetStdDev()`) to feed calculated coefficients directly to the main-chart bands wrapper, completely eliminating redundant loops and guaranteeing 100% data alignment.
The calculator uses the platform's `prev_calculated` parameter to process only the newest incoming bar on every tick. This keeps CPU usage at absolute zero, allowing both the separate-window histogram and the main-chart bands to update live in real-time.
In addition to standard rolling windows (`InpLookback`), the indicators support dynamic resets:
* **Daily Reset (`ANCHOR_SESSION`):** Resets daily. Excellent for intraday trading.
* **Weekly Reset (`ANCHOR_WEEK`):** Resets weekly. Ideal for swing trading.
* **Custom Session (`ANCHOR_CUSTOM_SESSION`):** Resets at a user-defined broker-time range (e.g. `09:00` to `18:00`). It completely filters out overnight gaps and illiquid trading hours, plotting `EMPTY_VALUE` during inactive periods to keep statistics pure.
Assets do not always share identical trading calendars or liquidity densities. `PairsTrading_Pro` aligns Symbol A and Symbol B prices perfectly by timestamp using `iBarShift(..., false)` and `iClose`, ensuring that different market open/close times do not distort the calculation. To ensure chart-independence, the synchronization uses a dedicated `iClose` fallback rather than the local chart's `close[0]`.
* **Hardlocked Separate Window Scale Bounds `[-3.5, 3.5]`:**
To prevent single extreme black-swan spikes (e.g., Z-score hitting $-10.0$ during weekend gaps) from squishing the entire historical chart into an unreadable flat line, the separate window's scale is fixed between `-3.5` and `3.5`. Outliers are simply clipped at the boundaries, maintaining a perfect, consistent visual aspect ratio across all timeframes.
* **The Exit (Z-Score $\to 0.0$ or Price touches Center Line):** When the spread returns to its statistical equilibrium, close both legs simultaneously to lock in the mean-reversion profit.
### B. The Quant-Grade Synergy: Cointegration + LLD Pro (Single-Leg Trading)
A major drawback of classic pairs trading is that opening two legs is capital-intensive and subject to double-broker execution slippage. By combining `PairsTrading_Pro` with the **`LLD_Pro` (Lead-Lag Dominance)** indicator, you can trade **a single, high-probability leg**:
1.**Identify the Spread Extremes:**`PairsTrading_Pro` alerts you that the spread is extremely cheap (e.g., $Z = -2.5$, meaning Symbol A is cheap, Symbol B is expensive).
2.**Identify the Leader:** Open the `LLD_Pro` indicator for the two symbols.
* **If Symbol B (WTI) is the Leader (leads Symbol A / Brent):** WTI has already moved, and Brent (Symbol A) is mathematically guaranteed to follow to close the gap. Since Symbol A is currently too cheap, you simply **BUY Symbol A (Brent) as a single directional trade!**
* This allows you to trade with half the margin requirement and zero execution hassle, leveraging the leader's predictive momentum to capture the gap-reversal.
To ensure statistical validity, only trade assets that share a **fundamental, structural, or macroeconomic link**. Below are the most robust, cointegrated global pairs optimized for live execution, mapped in `PairsTrading_Preset_Manager.mqh`:
| Asset Class | Symbol A | Symbol B | Recommended TF | Lookback / Anchor | Inner / Outer Mult | Trading Style & Concept |