Reproducible empirical research on intraday futures and ETF market behavior, with leakage-resistant validation and dependence-aware inference.
Quantitative Market Research
Status: active research portfolio. Registered studies may be complete,
but this repository does not claim validated alpha or a deployable strategy.
Live Research โ MLB Information Efficiency
Study 05 is now live. A frozen chronological Elo model will create timestamped, pregame MLB win-probability forecasts under a prospective protocol. The study covers the full league and uses the 2026 New York Mets as its public-facing case study. Historical development used 8,566 completed regular-season games; the selected Elo baseline achieved Development log loss 0.684305 versus 0.690881 for a fixed home-win baseline. No profitability, Alpha, or market-beating claim is made.
Read the public launch and preregistered research boundary.
Start with the concise research portfolio summary or the plain-English research walkthrough. Study 01 produced a registered negative forecasting result and kept its final holdout sealed. Study 02 confirmed a small MNQโQQQ information-transmission effect in a single-use holdout. Neither result is presented as validated Alpha or a deployable strategy.
Study 03 is a prospective, cost-aware economic-relevance protocol. It has not started and contains no performance result. Its role is to test whether a frozen signal survives executable delay, commissions, spread, and slippage on a newly protected sample without reopening either completed holdout.
Study 04 is a completed market-microstructure replication study. Ten-level MNQ order-book features passed Development validation but failed the prespecified July final-holdout threshold. The negative decision is reported without retuning and without an Alpha or profitability claim.
Study registry
| Study | Research question | Registered disposition | |---|---|---| | STUDY-01 | Opening-range features for same-session volatility | Closed negative result; final holdout remains sealed | | STUDY-02 | MNQ-to-QQQ one-minute information transmission | Closed statistical confirmation; not validated Alpha | | STUDY-03 | Prospective cost-aware economic relevance | Preregistered; not started; 0/343 new sessions | | STUDY-04 | Order-book depth for one-second price direction | Closed failed replication; no retuning |
The auditable study registry links every question, sample boundary, protocol, holdout state, decision, and primary evidence file. Its machine-readable source is configs/study_registry.toml.
This repository develops a reproducible empirical-research workflow for liquid futures and ETFs. The first study examines opening-range behavior in Micro E-mini Nasdaq-100 futures (MNQ). MNQ is the initial test case; the research design is intended to extend to NQ, ES, QQQ, SPY, and related instruments.
The emphasis is on falsifiable hypotheses, reliable market-data construction, leakage-resistant validation, statistical uncertainty, and clear reporting of negative or inconclusive evidence.
Run without market data
Exercise the full forecasting path with deterministic synthetic data. This validates software behavior only and does not reproduce or imply market results:
python -m src.synthetic_demo
Study 01 โ Opening Range Behavior in Nasdaq-100 Futures
Question. Are prespecified opening-range characteristics associated with the direction or magnitude of the remainder of the same trading session?
Primary unit of analysis. One regular trading session.
Research decision. Phase I finds a positive but regime-sensitive descriptive association that attenuates after controlling for lagged volatility. Phase II then asks whether Opening Range features improve a pre-open volatility forecast. They do not: the candidate has relative out-of-sample Rยฒ of -0.0401, worse QLIKE, and improves only 3 of 12 walk-forward folds. The registered confirmation gate is not passed, so the final holdout remains sealed. This is a completed negative decision for the registered question, not validated alpha or a trading strategy.
The full hypotheses and limitations are in research_questions.md. The methodology is in reports/research_methodology.md, and the current construction audit is in reports/dataquality_report.md. The development-only model report is in reports/development_analysis.md. The Phase II forecasting protocol is in reports/phase2_protocol.md. The development-only feature audit is in reports/phase2data_quality.md. The development-period forecasting decision is documented in reports/phase2development_results.md. The Phase I exploratory specification is in configs/opening_range.toml, and the Phase II specification is in configs/phase2_forecasting.toml.
Research architecture
Licensed raw bars (local only)
|
v
Schema, timestamp, OHLCV and interval audits
|
v
Session construction and prespecified opening-range features
|
v
Session-level analytical panel
|
v
Development sample -> expanding-window validation -> untouched holdout
|
v
Effect sizes, uncertainty, multiplicity control and development-only robustness
checksโincluding robust slopes, influence removal, nonlinear form, trailing
volatility regimes, and contract-roll sensitivity
|
v
Registered gate fails -> stop research question and keep holdout sealed
Implemented research controls
| Research risk | Control implemented in this repository | |---|---| | Ambiguous timestamps | Timezone-aware parsing and explicit New York conversion | | Invalid observations | OHLC invariants, volume checks, duplicate and interval audits | | Look-ahead leakage | Opening features and post-opening outcomes use disjoint intervals | | Random time-series splitting | Chronological and expanding-window validation utilities | | Multiple comparisons | Holm family-wise p-value adjustment | | Overstated conclusions | Minimum-sample gate and explicit study-decision status | | Restricted vendor data | Raw and processed observations excluded from version control | | Publication integrity | CI checks relative links, SVG validity, and tracked-data policy | | Post-hoc model search | Frozen confirmation gate and formal stop decision | | Irreproducible licensed sample | Deterministic synthetic end-to-end demonstration |
Repository structure
quant-research/
โโโ .github/workflows/ # Continuous test validation
โโโ configs/
โ โโโ opening_range.toml # Phase I machine-readable specification
โ โโโ phase2_forecasting.toml # Forecasting protocol and confirmation gate
โ โโโ crossassetlead_lag.toml # Frozen MNQโQQQ specification
โ โโโ economic_relevance.toml # Prospective cost-aware protocol
โโโ data/
โ โโโ README.md # Provenance, schema and limitations
โ โโโ raw/ # Licensed source data; never committed
โ โโโ processed/ # Reproducible derived data; never committed
โโโ notebooks/ # Thin exploratory/reporting notebooks
โโโ src/
โ โโโ data_loader.py # Typed OHLC ingestion and validation
โ โโโ databento_loader.py # Vendor normalization and RTH selection
โ โโโ data_quality.py # Structural market-data audit
โ โโโ opening_range.py # Opening-range calculation
โ โโโ study_dataset.py # Session-level feature/outcome panel
โ โโโ statistical_tests.py # Inference and multiplicity controls
โ โโโ robustness_analysis.py # Guarded development-only sensitivities
โ โโโ forecast_features.py # Point-in-time features and leakage audit
โ โโโ forecast_validation.py # Expanding-window folds and holdout guard
โ โโโ forecast_models.py # Baselines, losses and paired inference
โ โโโ synthetic_demo.py # Data-free end-to-end software demonstration
โ โโโ cross_asset.py # Point-in-time MNQโQQQ panel construction
โ โโโ crossassetmodels.py # Restricted and unrestricted baselines
โ โโโ crossassetevaluation.py # Walk-forward comparison and inference
โ โโโ crossassetholdout.py # Single-use holdout enforcement
โ โโโ economic_relevance.py # Point-in-time execution and cost model
โ โโโ economic_validation.py # Prospective splits and untouched holdout
โ โโโ economic_evaluation.py # Frozen net-performance decision metrics
โ โโโ sample_registry.py # Immutable local sample-boundary records
โ โโโ protocol_audit.py # Cross-field preregistration consistency
โ โโโ study03_preflight.py # Fail-closed protocol and sample start gate
โ โโโ publication_integrity.py # Public links, figures and data-policy audit
โ โโโ validation.py # Leakage-resistant time-series splits
โโโ reports/
โ โโโ executive_summary.md # Concise four-study portfolio overview
โ โโโ crossassetprotocol.md # Registered information-transmission design
โ โโโ crossassetdevelopment_results.md # Development-only evidence
โ โโโ crossassetfinal_results.md # Single-use holdout decision
โ โโโ economicrelevanceprotocol.md # Preregistered Study 03 design
โ โโโ research_methodology.md # Prespecified research standards
โโโ tests/ # Deterministic synthetic-data tests
โโโ PORTFOLIO_ROADMAP.md
โโโ research_questions.md
โโโ pyproject.toml
โโโ requirements.txt
Reproduce the test suite
python -m venv .venv
python -m pip install -e ".[dev]"
python -m pytest
Tests use synthetic fixtures only. No fabricated market observation is used as an empirical result.
Research principles
- Freeze primary definitions before inspecting the final holdout.
- Treat data construction as part of the statistical model.
- Report sample size, effect size, confidence interval, and failure periods.
- Prefer transparent baselines before complex machine-learning models.
- Distinguish statistical association from economic value after costs.
- Preserve negative and inconclusive findings.
- Do not describe a backtest as a production strategy.
Study 02 โ MNQโQQQ Information Transmission
This independent study examines cross-asset information transmission between Nasdaq futures and QQQ with synchronized timestamps, lead-lag controls, and a separately protected evaluation sample.
The frozen protocol is versioned in reports/crossasset_protocol.md, with its machine-readable specification in configs/crossassetlead_lag.toml. The non-redistributive coverage audit is in reports/crossassetdata_quality.md. The leakage-safe development-panel audit is in reports/crossassetdevelopment_panel.md. Development results are reported in reports/crossassetdevelopment_results.md. The registered model pair, information timing, allowed uses, and known limitations are summarized in the model card. Lagged MNQ returns improve one-minute QQQ forecasts in the development sample, but the improvement disappears when the one-minute lag is removed. This is evidence of rapid information transmission, not validated Alpha or a trading strategy. Licensed observations remain local. The final holdout was evaluated exactly once and confirmed a smaller positive effect: 0.1888% incremental OOS Rยฒ with paired-loss p = 0.0182 and session-level p = 0.0432. The single-use holdout procedure is frozen in reports/crossassetholdout_execution.md, and the final decision is reported in reports/crossassetfinal_results.md. The holdout is now permanently closed to retuning or repeat evaluation.
Study 03 โ Prospective Economic Relevance
The next study is preregistered but not executed. It separates statistical predictability from economic value by freezing signal timing, next-bar execution, transaction-cost stress tests, exposure constraints, chronological validation, and a single-use future holdout. The completed Study 02 holdout is explicitly unavailable for tuning or confirmation.
See the prospective protocol and its machine-readable specification. The minimum prospective sample is 343 sessions strictly after 2026-07-29: 274 development sessions and a separately reserved 69-session final holdout. The current readiness state is 0/343, so empirical development is blocked.
Software-only execution, validation, and evaluation primitives are implemented in src/economic_relevance.py, src/economic_validation.py, and src/economic_evaluation.py. They are validated entirely with deterministic synthetic fixtures. No Study 03 market outcome has been inspected and no empirical result has been produced.
Future sample readiness can be checked without loading prices, returns, or outcomes. The command reads only session_date; its boundary and minimum count come directly from the frozen protocol rather than duplicated command-line defaults:
python scripts/auditeconomicrelevancesample.py path/to/localpanel.csv
The resulting local JSON status file remains under data/processed/ and is not published to GitHub. Reaching the date-count gate permits Development work only; it does not authorize opening the newly reserved final holdout.
Study 04 โ Market Microstructure Replication
This completed study asks whether five- and ten-level MNQ order-book features improve one-second midpoint-direction forecasts beyond transparent market-state and top-of-book baselines. It audits approximately 291 million licensed CME Globex MBP-10 updates across 62 sessions while keeping raw and derived market data outside version control.
The multi-level candidate passed chronological Development validation, but its incremental log-loss improvement attenuated from 0.001738 in Development to 0.000222 in the one-time July holdout. It improved 11 of 19 holdout sessions, but the session bootstrap interval crossed zero and the frozen replication threshold was not met. The registered conclusion is non-replicationโnot validated Alpha, profitability, or a deployable trading strategy.
See the complete market-microstructure holdout report, including the data contract, model ladder, quality controls, uncertainty, procedural disclosure, limitations, and final research disposition. The post-hoc stability diagnosis documents measured input drift and session influence without refitting the model or changing the failed replication decision.
Disclaimer
Research and educational use only. Nothing in this repository is investment advice or evidence of guaranteed performance.