Yahoo purges delisted members: the S&P research panel was missing 209 ever-members (AGN/CELG/ESRX/ATVI/TWTR/XLNX/...), the production store 89, and the S&P 400/600 panels ~180 more. The gap inflated momentum-family factors (overnight_mom holdout 16.9->14.8%/yr, rec_126 14.7->10.7 on the research panel; factor_panel_check). research/lab/fetch_tiingo.py pulls full EOD histories (free tier: 500 unique symbols/month, 50/hour; paced, resume-safe, key never logged). research/lab/tiingo_merge.py overlays the caches on the research S&P panel at build time (>=50% PIT-coverage gate, median-overlap cross-check, stub-column replacement, rename splices GPS<-GAP, DISCA<-WBD, WLTW<-WTW, ADS<-BFH, CCE<-CCEP, ESV<-VAL, FBHS<-FBIN, HFC<-DINO) and can apply the same to the production store (--production [--apply]; data/us*.csv, .bak-tiingo backups, under the panel lock). load_us() rebuilds when the overlay changes (_tiingo_sig); fetch_us_mid.load_bars falls back to converted CSVs. Round 1 (2026-10-08): 165/209 S&P names and 183 mid/small PIT members restored (2011-19 snapshots were 15-20% short of PIT members). prod_impact A/B on registered replays: overnight_recovery_top10 23.8%/0.83/-38.3% vs 27.8%/0.88/-47.3% backfill-off; lowrisk_top20 6.1%/0.58 vs 8.6%/0.60 - honest long returns with shallower drawdowns; trend_rider_v10 (ETF path) unchanged at 55.0%/1.64. Official precompute refreshed (backup at data/precomputed/backtest_results.json.pretiingo). midsmall_scan on the corrected panel: no factor beats the EW benchmark (0.60 holdout Sharpe vs 0.51-0.52 best) - no mid/small sleeve.
72 lines
1.2 KiB
Plaintext
72 lines
1.2 KiB
Plaintext
.claude/*
|
|
!.claude/skills/
|
|
.qoder/
|
|
|
|
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*.egg-info/
|
|
build/
|
|
dist/
|
|
wheels/
|
|
|
|
# Virtual environment
|
|
.venv/
|
|
|
|
# Data files — downloaded at runtime, large CSVs
|
|
data/*.csv
|
|
data/*.png
|
|
|
|
# Universe caches — re-fetched daily
|
|
data/universe_*.json
|
|
data/sp500_history.json
|
|
data/csi300_history.json
|
|
|
|
# Trader state — per-machine, regenerated by auto/simulate
|
|
data/trader_*.json
|
|
data/books/
|
|
# Agent candidate packs and score files (agent_review.py) — per-machine forward record
|
|
data/agent/
|
|
|
|
# Factor attribution output and cached factors
|
|
data/attribution_*/
|
|
data/factors/
|
|
data/factors_review_tmp/
|
|
|
|
# SEC fundamental data — fetched from EDGAR API
|
|
data/sec_frames/
|
|
data/sec_company_tickers.json
|
|
|
|
# External tool artifacts
|
|
docs/superpowers/
|
|
|
|
# IDE / editor
|
|
.idea/
|
|
.vscode/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
|
|
# OS
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Price panel locks, repair backups and Yahoo availability markers
|
|
data/.*.lock
|
|
data/backup_*/
|
|
data/*_unavailable.json
|
|
data/*.bak-tiingo
|
|
|
|
# Local secrets, logs and agent scratch output
|
|
.env
|
|
logs/
|
|
memory/
|
|
.tmp_finance/
|
|
|
|
# Web UI state and precomputed backtests (web/src/server/paths.ts)
|
|
data/web/
|
|
data/precomputed/
|
|
|
|
# Research panels and results — fetched/rebuilt by research/lab
|
|
data/research/
|