Skip to content

[Research] Re-run All GEX Research with Expanded Data (2008+, Multi-Ticker) #548

Description

@iAmGiG

Objective

Re-run all 8 GEX research strategies with expanded historical data (back to 2008) and broader ticker universe once the EOD backfill completes. This enables analysis across multiple market epochs (GFC, COVID, 2022 bear) and validates whether findings generalize beyond SPY.

Blocked by: EOD historical backfill (currently in progress — equity prices from 2008, options chains, regime data for all symbols).


Current Data State (as of 2026-02-16)

Table Current Coverage After Backfill
equity_prices_daily 61 symbols, 2020–2026 61+ symbols, 2008–2026
options_daily_summary SPY: 1,505 days (2020–2025); QQQ/IWM: ~224 days Full regime data for all symbols
options_chains_* Empty (backfill in progress) Full chains 2008–2026
intraday_gex_snapshots Does not exist yet TBD

Current Symbol Universe (61 tickers)

SPY, QQQ, IWM, XLF, XLE, XLK, XLV, AAPL, MSFT, AMZN, GOOGL, META, NVDA, TSLA, and 47 others in equity_prices_daily.

Key Limitation

Regime data (options_daily_summary.regime) currently only has meaningful coverage for SPY. Multi-symbol regime stratification requires the backfill to populate regime classifications for QQQ, IWM, sector ETFs, and individual names.


Research Tasks to Re-run

Batch 1: Core GEX Strategies (originally 2021–2023, SPY-focused)

  • [Research] Delta Neutral / Long Volatility Signal from GEX Data #544 Delta Neutral / Long Volatility — Re-run with 2008–2023 data

    • Test whether vol thresholds stabilize with longer calibration windows
    • GFC 2008 + COVID 2020 provide extreme-vol calibration data
    • Multi-symbol: QQQ, IWM (if regime data available)
  • [Research] Correlation / Dispersion Trading via GEX #545 Correlation / Dispersion Trading — Re-run with expanded sectors

    • Currently: SPY vs XLF/XLE/XLK/XLV/QQQ/IWM
    • Add: individual mega-caps (AAPL, MSFT, NVDA, etc.) as correlation pairs
    • Test 2008–2023 for GFC dispersion behavior
    • Best candidate for improvement — already showed +0.108 Sharpe improvement
  • [Research] Pairs Trading (Mean Reversion) Z-Score Signal #546 Pairs Trading Mean Reversion — Test new pairs

    • SPY/IWM failed cointegration — try sector ETF pairs (XLK/XLF, XLE/XLV)
    • Individual stock pairs from same sector
    • Longer data (2008+) may reveal cointegration that shorter windows miss

Batch 2: Extended Research (originally 2020–2023)


New Analysis Opportunities (with 2008+ data)

Market Epoch Comparison

Epoch Period Character
GFC 2008-09 to 2009-03 Systemic financial crisis
Post-GFC Recovery 2009-03 to 2012-12 Low-vol grind higher
Pre-COVID Bull 2013-01 to 2020-02 Extended bull market
COVID Crash 2020-02 to 2020-03 Fastest bear market in history
COVID Recovery 2020-03 to 2021-12 Stimulus-driven rally
2022 Bear 2022-01 to 2022-10 Rate-driven bear
2023-2025 Bull 2023-01 to 2025-12 AI-driven bull

Key Questions

  1. Does the GEX regime overlay add more value during crisis periods vs calm markets?
  2. Are the MACD+RSI regime differences consistent across all epochs?
  3. Do fat-tail risk metrics (ES/VaR) show structural changes over time?
  4. Which strategies improve most with longer calibration windows?
  5. Do any strategies that failed on 2020–2023 work on 2008–2020?

Backfill Progress Checklist

Before re-running, verify:

  • equity_prices_daily has data back to 2008 for core symbols
  • options_daily_summary has regime data for QQQ, IWM, sector ETFs
  • options_chains_* partitions populated for 2008–2020
  • Run SELECT symbol, MIN(trading_date), MAX(trading_date), COUNT(*) FROM equity_prices_daily GROUP BY symbol ORDER BY symbol to verify coverage

Implementation Notes

  • All research runners are in scripts/research/
  • Signal generators in src/backtesting/signals/
  • Backtester: src/backtesting/research_backtester.py (PostgreSQL-backed)
  • GEX overlay: src/backtesting/gex_overlay.py
  • Risk metrics: src/backtesting/risk_metrics.py
  • Existing test suite: 121 unit + 33 integration = 154 tests

Runner Modifications Needed

  • Parameterize start/end dates (currently hardcoded to 2020–2023)
  • Accept ticker list from CLI args or config
  • Add epoch-splitting logic for cross-epoch comparison
  • Output per-epoch YAML results alongside full-period results

Related Issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions