Strategies
XLE/USO energy equity-vs-crude OU log-spread reversion (USEQ daily, dollar-neutral, point-in-time OU fit)
Outcome: Abandoned
XleUsoOuLogSpreadReversion
Outcome Summary
XleUsoOuLogSpreadReversion tried to port a stochastic-spread commodity pairs model to XLE versus USO on 20 years of daily US equity data, trading OU z-score extremes of a beta-hedged log spread. The hypothesis cited a modest pre-study edge (average trade about +0.5%, Sharpe about 0.3) and flagged significant selection bias. Over 3 iterations the code never got through verification: Layer 1.5 rejected each attempt because the optimization_plan fixes leverage at 1.0. The run was abandoned before any backtest, optimization or analyst verdict, so the edge remains untested in the pipeline.
Hypothesis
Under-represented buckets: USEQ venue (4.7%), long_short (15.3% vs a <=55% long-only target), pairs. The crypto translation was tested and is fee-dead, and the crypto metal perps lack history. Equity commodity ETFs carry 20 years of daily data. Only 3 tunables, all economically meaningful. The pre-registered numbers are deliberately modest because of the selection-bias caveat.
verification_loop: Verification failed (Layer 1.5 — hypothesis/config consistency) [class=hypothesis_mismatch]: - optimization_plan fixes leverage at 1.0
Implementation
Dollar-neutral XLE/USO pairs trade on USEQ daily bars. Hedge ratio = rolling 252-session OLS beta of XLE on USO daily log returns, lagged one bar. Spread s = log(XLE) - beta*log(USO). OU parameters come from a closed-form AR(1) fit over the last z_window completed sessions, with every spread in the window rebuilt using the same lagged beta. z = (s - theta)/sigma_eq. Enter long spread at z <= -entry_z and short spread at z >= entry_z, only when the half-life is <= max_half_life and |z| < stop_z. Exit at the mean (exit_z), at the stop band (stop_z), or after max_hold sessions. Each leg is booked as its own position at gross_notional_frac/2 of equity.
Verification Results
Verification failed (Layer 1.5 — hypothesis/config consistency) [class=hypothesis_mismatch]: - optimization_plan fixes leverage at 1.0
Iteration History
Outcome Summary
Before coding, make the optimization plan's leverage setting match the hypothesis and venue declaration (a Reg-T 2x USEQ long-short pair), because a config-consistency mismatch that is not fixed across iterations ends the run before any backtest evidence exists.
After 3 iterations the strategy was abandoned in a verification loop. Each attempt failed Layer 1.5 (hypothesis/config consistency, class hypothesis_mismatch) because the optimization_plan fixes leverage at 1.0. It never reached backtesting, analyst review or risk review.
A dollar-neutral, daily USEQ pairs trade on the log spread log(XLE) - beta*log(USO), with a lagged 252-session rolling hedge ratio and a point-in-time AR(1)/OU fit, entering when the OU z-score is stretched and exiting at the mean (a translation of Mahajan et al. 2019, arXiv:1907.08397).
No pipeline backtest or optimization was produced. The only numbers come from the hypothesis's own pre-study: about 100-158 trades, average trade +0.51% to +0.58%, win rate about 0.6, Sharpe about 0.30-0.33, and positive in 60-70% of years. The hypothesis itself warned that XLE/USO was the best of 21 commodity-ETF pairs scanned.
Analysis
Stochastic Spread Pairs Trading in the Indian Commodity Market
Backtest and paper results are hypothetical. Trading involves risk of loss.