Validation Digest - 2026-07-20

July 20, 2026 ยท View on GitHub

This digest summarizes the public validation surface available for the v0.2.0 release. It is a release note for reproducibility and contributor planning, not a trading-performance claim.

Scope

The digest covers reports and blocker notes merged or documented after the v0.1.0 public baseline:

  • synthetic validation baseline on Windows CPU
  • Baostock A-share validation report
  • yfinance ETF-50 rate-limit failure mode
  • public-data validation harness improvements
  • benchmark and validation contribution workflow

Current Public Reports

ReportSourceUniversePurposeStatus
validation_synthetic_20260716.mdSyntheticGenerated GBM panelCross-platform CLI and metric reproducibilityMerged
validation_baostock_20260716.mdBaostockA-share public dataPublic-data validation on a China-market sourceMerged
public_data_mini_reproduction.mdyfinanceETF mini exampleFactor IC and public-data smoke reproductionMerged
Issue #22 blocker reportyfinanceETF-50 attemptDocuments HTTP 429 rate limitingDocumented

Main Takeaways

  • The synthetic source is useful for checking plumbing, report generation, bootstrap paths, cost grids, and Windows CPU reproducibility. It is not expected to contain predictive signal.
  • The Baostock path gives Chinese contributors a public-data route that does not depend on Yahoo Finance access.
  • yfinance can fail with several different-looking errors when Yahoo Finance rate limits a network. JSONDecodeError, YFTzMissingError, and YFRateLimitError can all point to the same HTTP 429 root cause.
  • Turnover and transaction costs dominate interpretation. High-turnover signals can deteriorate sharply under realistic cost assumptions.
  • The current public evidence should be read as validation and reproducibility diagnostics, not as a deployable trading strategy.

Contributor Gaps

The next useful reports are:

  • CUDA GPU tensor-factor benchmark.
  • Linux CPU benchmark on a common cloud instance.
  • Apple Silicon benchmark with a larger panel.
  • A rerun of ETF-50 validation after yfinance rate limits clear.
  • Another public-data case study with clearly documented data provenance.

Reproduction Entry Points

Use these entry points when adding a report:

python scripts/benchmark_tensor_factors.py --device auto
python scripts/public_data_validation.py \
  --source synthetic \
  --models equal_weight,momentum_20,alpha101_mean \
  --epochs 1 \
  --batch-size 4096 \
  --hidden 32 \
  --cost-grid-bps 0,7,15,30 \
  --bootstrap-samples 100
python scripts/public_data_validation.py \
  --source baostock \
  --preset cn-large-25 \
  --start 2021-01-01 \
  --end 2025-01-01 \
  --models equal_weight,momentum_20,alpha101_mean \
  --epochs 1 \
  --batch-size 4096 \
  --hidden 32 \
  --cost-grid-bps 0,7,15,30 \
  --bootstrap-samples 100

Report results in Discussions #13 or the pairing issue #22.