Strategies
Dual-Class Share Spread OU Reversion with Translation-Invariant, Cost-Aware Thresholds (GOOGL/GOOG, NWSA/NWS, FOXA/FOX on USEQ 1-DAY, dollar-neutral long-short)
Outcome: Abandoned
DualClassShareSpreadOUReversion
Outcome Summary
The strategy sought mean reversion across three pairs of share classes from the same companies. Its sandbox averaged 0.099% per closed position. After three iterations, QA found that its entry threshold could permit trades whose projected convergence did not cover estimated execution costs, and the run was abandoned before later stages.
Hypothesis
This keeps the OU-threshold mechanism from the source. It applies the answer to the post's question by using symmetric, deviation-based thresholds around a point-in-time theta, which are invariant to shifts in theta. It moves the OU assumption onto the one spread class where mean reversion is contractual: same-company dual share classes. It avoids the dead statistical-pairs and crypto pairs families: DogeBybitOkxOu, Tadi basket and XOM/CVX Bertram are all in the pipeline or failed. USEQ (5%) and long_short (15.7%) are under-represented. The pre-study was point-in-time on catalog data. Implementation note: daily bars, 6 instruments and about 3.3k sessions, with O(1) deque statistics per sleeve. This avoids the sandbox_timeout that killed the Tadi and PEAD runs.
verification_loop: Verification failed (Layer 4 — QA review) [class=code_defect]: - [edge_concern] The sandbox averaged 0.099% per closed position; assess full-history results after spread, impact, and borrow costs. - [critical] The 0.0004 threshold permits entries with only 0.04% projected convergence per total two-leg notional. USEQ round-trip spread and impact can reach approximately 0.05%, before short borrow costs. (line 156) — fix: Require projected convergence to exceed a conservative, pair-specific estimate of all execution and borrow costs.
Implementation
Three independent dollar-neutral sleeves (GOOGL/GOOG, NWSA/NWS, FOXA/FOX) on USEQ daily bars. Each sleeve tracks the log price ratio of the two share classes with O(1) rolling mean/variance over `lookback` sessions. It enters long the cheap class and short the rich class at equal notional (leg_notional_pct of equity per leg) when |z| >= entry_z and the deviation clears round-trip cost. It exits when z reverts past exit_z, on a stop_z blow-out, or after max_hold_sessions sessions.
Verification Results
Verification failed (Layer 4 — QA review) [class=code_defect]: - [edge_concern] The sandbox averaged 0.099% per closed position; assess full-history results after spread, impact, and borrow costs. - [critical] The 0.0004 threshold permits entries with only 0.04% projected convergence per total two-leg notional. USEQ round-trip spread and impact can reach approximately 0.05%, before short borrow costs. (line 156) — fix: Require projected convergence to exceed a conservative, pair-specific estimate of all execution and borrow costs.
Iteration History
sandbox_timeout: Verification failed (Layer 3 — sandbox backtest): smoke test exceeded the 300s wall-clock limit on a ~20000-bar window (2400 days of GOOGL.USEQ-1-DAY-LAST-EXTERNAL). This almost always means per-bar work that scales with history — e.g. rescanning the full funding/supplementary series, or rebuilding a list and calling min()/sorted() inside calculate_signal()/on_bar() on every bar. Precompute sorted timestamp arrays ONCE in __init__ and use bisect, or cache lookups keyed by timestamp, so per-bar cost is O(log n) not O(n).
Outcome Summary
Require projected convergence to exceed conservative, pair-specific execution and borrow costs.
After three iterations, Layer 4 QA rejected an entry threshold allowing 0.04% projected convergence when estimated spread and impact costs could reach approximately 0.05%, before short borrow costs. The run was abandoned at verification.
It traded mean reversion in three dual-class share spreads using dollar-neutral long and short positions.
The sandbox averaged 0.099% per closed position. No full backtest or optimization report was provided.
Abandon Reason
verification_loop: Verification failed (Layer 4 — QA review) [class=code_defect]: - [edge_concern] The sandbox averaged 0.099% per closed position; assess full-history results after spread, impact, and borrow costs. - [critical] The 0.0004 threshold permits entries with only 0.04% projected convergence per total two-leg notional. USEQ round-trip spread and impact can reach approximately 0.05%, before short borrow costs. (line 156) — fix: Require projected convergence to exceed a conservative, pair-specific estimate of all execution and borrow costs.
Analysis
Why aren't the optimal entry/exit thresholds for OU pairs trading relatively invariant to shifts in the OU mean?
Backtest and paper results are hypothetical. Trading involves risk of loss.