Validation Dashboard

July 29, 2026 ยท View on GitHub

This page tracks the maintained public-data validation snapshot for ml-quant-trading. It is designed as a reproducibility dashboard, not a live trading scoreboard.

Latest Snapshot

FieldValue
Snapshot date2026-07-29
Primary reportAkShare CSI 300 Daily 213-Factor Validation
SourceAkShare public A-share data
UniverseCurrent CSI 300 constituents
Date range2021-01-04 to 2024-12-31
Panel shape969 dates x 300 stocks
Factor setFull registered factor library, 213 factors
Main cadenceDaily evaluation and daily cost accounting
Effective cost7 bps

Headline Results

Daily 213-factor validation cost sensitivity

This chart is a cost stress test, not a time-series equity curve. The downward slope shows how final equity changes as the assumed transaction cost increases.

StrategyAnnual returnSharpeMax drawdownTurnoverCost dragFinal equity
equal_weight_daily17.75%0.88225.76%0.00100.13%1.8744
factor_mean_daily15.80%0.70132.51%0.362749.16%1.7579
factor_mean_buffered_daily22.20%0.91927.76%0.139718.94%2.1616

What The Snapshot Shows

  • The 213-factor mean signal has positive gross evidence: gross annual return is 31.57% versus 17.79% for equal weight.
  • The naive daily factor portfolio loses much of that edge to turnover and costs, which is the expected failure mode for rough daily rank selection.
  • The buffered daily factor rule still evaluates scores daily, but avoids replacing a position until it falls out of a wider exit band. In this run that reduces turnover enough for the factor portfolio to beat equal weight after costs.
  • The useful takeaway is framework-level: factor construction has to be paired with cost-aware portfolio construction before public-data backtests are interpreted as alpha evidence.

Caveats

  • This is not an exact paper reproduction. The paper data is not redistributed, and this public run uses current CSI 300 membership resolved at runtime.
  • The public AkShare path does not include industry, size, liquidity, beta, or production execution metadata.
  • Results can change when AkShare endpoints revise data or when the current CSI 300 constituent list changes.
  • The dashboard is updated manually for maintained validation snapshots. A scheduled refresh should be treated as monitoring, not as a source of trading claims.

Acknowledgements

  • Thanks to @redamancy231-create for contributing the AkShare zero-auth A-share data loader in PR #42. That data path made the CSI 300 public validation workflow possible without account registration.
  • Thanks to the AkShare project and its maintainers for providing public Python access to A-share market data. Public endpoints can change, so this dashboard treats AkShare as a reproducibility aid rather than a production data vendor.

Reproduce

python scripts/akshare_csi300_full_pipeline.py \
  --factor-set all \
  --max-tickers 300 \
  --start 2021-01-01 \
  --end 2025-01-01 \
  --rebalance-step 1 \
  --cost-grid-bps 0,7,15,30