12 Commits (8dacdaab4e4aefb410714a53b86c662f144e62e6)

Author SHA1 Message Date
I Luk Kim 8dacdaab4e Add v10 macro regime scoring (VIX+HY) and FRED macro features — SQS 59.1 (rejected)
New features:
- _enrich_macro_features() in snapshot_export: adds macro_vix, macro_hy_spread from FRED
- compute_return_max_long_score_v10: +12% bonus in favorable regime (VIX>18+HY>3.25)
- _macro_regime_score(): regime-aware scoring component

Findings:
- VIX signal is statistically strong: 62.3% WR (VIX>18+HY>3.25) vs 50.8% (other)
- But scoring bonus promotes marginal trades, diluting OOS quality
- Same pattern as eps_growth, drift bonus: raw signal ≠ scoring improvement
- v6new.17 SQS 59.1 < v6new.9 SQS 63.3

v6new.9 remains best at SQS 63.3 after 17 experiments.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5 months ago
I Luk Kim 75de2493f0 Add v6new.14-16 (execution tuning) — all worse, v6new.9 (63.3) holds
v6new.14 (warmup 9d, hold 30d): SQS 61.2 — 100% WFV positive but DD 8.6% hurts RQS
v6new.15 (tighter early exit d2/r0.20): SQS 58.6 — too aggressive cutting
v6new.16 (warmup 8d, hold 27d): SQS 59.8 — RM worst -4.11% degrades

Execution parameters are already optimal in v6new.9. 16 experiments done.
v6new.9 confirmed as final best at SQS 63.3.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5 months ago
I Luk Kim a1a0209342 Add v6new.12-13 (risk sizing tuning) — neutral, v6new.9 (63.3) confirmed optimal
v6new.12: per_trade_risk 0.052->0.062 → SQS 63.2 (neutral)
v6new.13: daily_risk 0.76->0.95, max_positions 24->30 → SQS 63.3 (same)

Risk sizing changes don't help — strategy is signal-limited, not capital-limited.
v6new.9 remains #1 at SQS 63.3.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5 months ago
I Luk Kim 5f470b73da Add v6new.11 (engine tuning) — SQS 62.7, v6new.9 (63.3) remains best
Widened mixed_notprovided gap cap 0.08->0.15, tightened bullish_raised_strong
(mcap>10B, reaction<15%). WFV gap improved to 9.85% but lost 2 trades vs v6new.9.

Final standings: v6new.9 (SQS 63.3) > v6.29 (62.8) > v6new.11 (62.7)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5 months ago
I Luk Kim 0e62b01c89 Add v6new.10 (engine pruning) — SQS 61.9, confirms v6new.9 remains best at 63.3
Pruned bullish_raised_strong (OOS -16.7%) and unknown_ome (OOS 0% WR) from v6new.9.
Result: trade count dropped 118->105, activity penalty offset the quality gain.
v6new.9 (SQS 63.3) confirmed as new #1 over v6.29 (62.8).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5 months ago
I Luk Kim 5d728298cf Add v6new.9: coverage expansion with tuned risk — SQS 63.3 beats v6.29 (62.8)
v6new.9 adds 2 post-market engines with conservative risk sizing:
- bullish_raised_strong: 1.5% risk, 3.0 ATR stop, 10% budget
- mixed_notprovided_postmarket: 1.0% risk, 3.0 ATR stop, 5% budget

Results vs v6.29 (same OOT conditions, 252d windows):
- SQS: 62.8 -> 63.3 (+0.5)
- Trades: 111 -> 118 (+7), test 23 -> 28 (+5)
- WFV: 91.7% positive (same), gap 12.35% -> 10.35%
- Train DD: 6.79% -> 6.34%

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5 months ago
I Luk Kim 85c4d98987 Add v6new experiment suite: scoring v8/v9/v9g, cross-event drift, coverage engines
Scoring additions (libs/backtest/scoring.py):
- v8: conditional financial bonus (eps_growth_qoq/revenue_growth_qoq)
- v9: cross-event drift momentum (+/-10% from prior same-ticker 5d return)
- v9g: gated variant — reject events with negative prior drift

Snapshot export (libs/export/snapshot_export.py):
- _enrich_prior_event_drift: computes prior_event_fwd5d for all snapshots
- smallcap-liquid-long-v1 universe profile ($500M-$2B)
- market_cap_max support in screener and filtering

8 experiment configs (v6new.1-v6new.8):
- v6new.1: unknown event reclassification (neutral)
- v6new.2: financial features (neutral, EPS growth is noise)
- v6new.3: small-cap (blocked, survivorship bias)
- v6new.4-6: cross-event drift variants (rejected)
- v6new.7: engine pruning (quality up, count down)
- v6new.8: coverage expansion with 2 new post-market engines (best result)

Best result: v6new.8 SQS 41.5 vs v6.29 control 32.3 on same conditions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5 months ago
I Luk Kim 02542248b7 Add attention-aware PEAD caps and promote step75 5 months ago
I Luk Kim b507fbf499 Add attention client and continue PEAD research 5 months ago
I Luk Kim c646303423 Recalibrate public SQS and exposure-aware tracking 5 months ago
I Luk Kim 9ec0b26e10 Implement multi-engine PEAD strategy research workflow 5 months ago
I Luk Kim 2395a0c0c3 feat: PEAD mid-cap strategy + pipeline hardening + README cleanup
- Implement PEAD 7% Long+Short strategy with mid-cap universe expansion
- Add Stock Oracle screener/company clients, text sentiment features
- Enhance backtest engine: short-side execution, walk-forward CV, MFE/MAE analysis
- Harden pipeline: sequential Oracle API calls, scoring recalibration (event_quality 65%)
- Add experiment configs for 60+ strategy variants and journal tracking
- Add review/analysis CLI tools
- Remove obsolete dev/phase0-4 design documents and analysis scripts
- Clean README to reflect only implemented features (remove unbuilt adapters/engines)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5 months ago