ml-quant-trading

Research validation arena

ml-quant-trading

Compare factor, model, data-source, and transaction-cost assumptions through reproducible PyTorch research workflows. No black-box signal claims, just public validation reports and inspectable backtests.

Research and educational use only.

This project is not investment advice and is not production-ready. Backtests depend on data quality, transaction costs, slippage, and assumptions that differ from live markets.

Read the reality check

Research Arena

A compact view of the current validation surface: which data routes run, what each report is allowed to prove, and where the next useful community submissions should land.

Validation-first baseline
4 public lanes Synthetic, Baostock, yfinance mini, and ETF-50 blocker notes.
Cost grid 0, 7, 15, and 30 bps scenarios expose turnover sensitivity.
Bootstrap CIs Reports include uncertainty estimates instead of single-number claims.
Open reports Every row links back to source docs, issues, or reproducible commands.
Lane Data route Current evidence Interpretation Status
Synthetic baselineReport Generated GBM panel CLI, report writing, cost grids, and bootstrap paths complete on Windows CPU. Plumbing and reproducibility check. Not a predictive-signal claim. Merged
Baostock A-share routeReport Public China-market data A Baostock validation path gives Chinese contributors a non-Yahoo route. Useful for public-data access and A-share workflow testing. Merged
yfinance mini reproductionReport Liquid US equities Small public-data factor-IC smoke test with documented assumptions. Good first check before scaling to larger ETF or equity universes. Merged
ETF-50 validation attemptBlocker note yfinance ETF-50 HTTP 429 rate limiting can surface as multiple Python-side errors. Failure evidence is tracked so empty result PRs do not pollute the board. Blocked

A runnable baseline for factor research.

The repository packages the full research loop into one forkable codebase: data panels, tensor factor computation, neutralization, bias correction, ML models, portfolio construction, backtesting, reproducibility notes, and contributor benchmark lanes.

The goal is not to claim deployable alpha. It is to make the assumptions visible, run the pipeline end to end, and invite public validation across machines, data sources, and markets.

213 factor dimensions across Alpha101-style and legacy families
3 data routes: synthetic, yfinance, and Baostock A-share panels
v0.2.0 public validation and contributor workflow release
MIT open-source license with citation metadata

Validation surface

Synthetic

Cross-platform plumbing check

Deterministic GBM panels exercise the CLI, report generation, cost grids, bootstrap paths, and Windows CPU reproducibility.

Baostock

A-share public-data route

A China-market data path helps contributors validate the pipeline without depending on Yahoo Finance access.

yfinance

Failure modes documented

HTTP 429 rate limits can surface as several Python errors, so the docs include a smoke-test workflow before larger ETF runs.

Run the small pipeline.

The synthetic smoke test is designed for ordinary laptops and CI runners. It checks that the pipeline completes, not that a metric matches exactly across every BLAS, solver, and PyTorch build.

git clone https://github.com/initial-d/ml-quant-trading.git
cd ml-quant-trading
python -m pip install -e .[dev]
make paper CONFIG=configs/small.yaml

Useful first contributions

Run a benchmark Share CPU, GPU, or Apple Silicon tensor-factor results.
Try public data Report whether yfinance or Baostock validation works from your network.
Add caveats Improve assumptions, data notes, or factor-family explanations.
Pair on a report Use the maintainer pairing issue for reproducible validation PRs.

Project links

Start with the research card and validation digest before reading any backtest number as evidence. The current evidence is best read as reproducibility diagnostics and a base for community experiments.