Promote PeerSympathy v2 reaction_close sweep10 — corr 0.80 + top_n 1

Threshold sweep over PeerSympathy v2 reaction_close found a viable config.
After 10 ablation runs (correlation_min, leader_reaction_min, top_n_peers,
event_types, VIX gate), the dominant lever is correlation_min:

  baseline 0.55:  -2.35% / MDD 24.5% / SQS 30.2 / PF 0.977
  sweep01 0.65: +11.10% / MDD 16.1% / SQS 50.2 / PF 1.204
  sweep02 0.75: +15.76% / MDD  9.1% / SQS 62.5 / PF 1.835
  sweep07 0.80: +14.11% / MDD  3.8% / SQS 80.2 / PF 2.198
  sweep10 0.80 + top_n 1: +15.35% / MDD 3.83% / SQS 81.5 / PF 2.46
  sweep09 0.85:  +0.98% / MDD  3.8% / SQS 21.4 / PF 1.156 (cliff)

Mechanical insight: pushing correlation gate from 0.55 → 0.80 trims
coincidental ETF-shared peers and concentrates on structurally-clean
pairs where the leader's print is new information for the peer's
fundamentals — NOT the noisy NVDA/AVGO/AMD/MU semis cluster (their
mutual corr usually 0.55-0.70 with high cross-noise from competing
product cycles).

Sympathy pairs that surfaced in sweep10:
  Utilities      VST → CEG (independent power generators)
  Ag equipment   AGCO → DE
  Industrials    DAL → CAT, HWM → GE
  Software       DT → CRM, IT → INTU
  Datacenter     VRT → PWR (electrification)
  Energy         OVV/OXY/EOG/COP cluster

Hits all PROMOTE thresholds: SQS 81.5 > 50, return +15.35% > +5%,
MDD 3.83% < 25%. Sub-scores: profitability 100, risk 62.9, consistency
84.3, robustness 59.3 (lowest — sample-size discount). Sharpe 0.721,
Calmar 0.906, expectancy 0.072 R, avg holding 3.56 days, win rate 55.6%.

CAVEATS:
- N=27 trades is thin. Bootstrap PF 95% CI is [0.68, 10.82]. Treat as
  directional candidate, not production. Robustness 59.3 reflects this.
- corr_min cliff at 0.85 (universe runs out). 0.80 is at the inside edge
  of viable; re-baseline on snapshot shifts.
- macro_vix_max=30 was a no-op in sweep08. Either no candidates on
  VIX>30 days, or gate not wired to peer_sympathy in selector.py.
  Falsified hypothesis; not promoted as a lever.

Run: bt_return_max_long_v1_midlarge-liq_20260509072637244341_e1c62252.
Parent: peer_sympathy_poc_v2_reaction_close (commit 68102f1).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
main
I Luk Kim 3 months ago
parent 68102f1b3a
commit 261f67dfde

@ -0,0 +1,89 @@
{
"experiment_name": "peer_sympathy_poc_v2_reaction_close_sweep10_corr080_topn1",
"dataset_snapshot_id": "midlarge-liquid-long-v1_bucketfix_full_audit_canonical_ftb_fix_v2",
"description": "Sweep10 combo final: corr_min 0.80 + top_n 1. Parent: peer_sympathy_poc_v2_reaction_close. Combines the SQS 80.2 winner (sweep07 corr=0.80) with top_n=1 to maximize signal purity.",
"base_config": "configs/backtest/return_max_long_v1.json",
"overrides": {
"signal": {
"scoring_model": "return_max_long_v13e",
"score_threshold": 0.0,
"max_candidates_per_day": 18,
"a_tier_score_threshold": 0.99
},
"risk": {
"per_trade_risk_pct": 0.65,
"per_trade_risk_pct_a_tier": 0.65,
"max_daily_new_risk_pct": 50,
"max_positions": 30,
"max_positions_per_sector": 30,
"max_position_value_pct": 25,
"max_adv_fraction": 0.3,
"macro_regime_neutral_size_scaler": 1,
"macro_regime_risk_off_size_scaler": 1,
"veto_unknown_direction": false,
"veto_bearish_direction": false,
"macro_regime_risk_off_a_tier_only": false,
"stop_atr_multiplier": 1.75,
"allow_budget_downsizing": true,
"cash_parking_preset": null,
"fixed_capital_sizing": false
},
"execution": {
"trailing_warmup_days": 7,
"max_holding_days": 3,
"early_failure_no_progress_days": 1,
"early_failure_no_progress_r": 0.0,
"early_failure_no_progress_fraction": 0,
"lookback_entry_enabled": false
},
"event_type_profiles": {
"peer_sympathy": {
"enabled": true,
"direction_filter": "any",
"max_holding_days_override": 3
}
},
"idle_alpha_sleeve_preset": null,
"form4_capture_sleeve_preset": null,
"ownership_capture_sleeve_preset": null,
"risk_off_alpha_sleeve_preset": null,
"dividend_capture_sleeve_preset": null
},
"strategy_engines": [
{
"engine_id": "peer_sympathy_long_reaction_close",
"event_types": ["peer_sympathy"],
"timing_class": "same_day",
"direction": "long_only",
"entry_timing_policy": "reaction_close",
"engine_risk_budget_pct": 1.0,
"score_threshold_override": 0.0,
"max_holding_days": 3,
"peer_sympathy_enabled": true,
"peer_sympathy_entry_timing_policy": "reaction_close",
"peer_sympathy_leader_filing_time_buckets": ["pre_market", "regular_hours"],
"peer_sympathy_leader_event_types": [
"earnings_release",
"guidance_update",
"material_contract"
],
"peer_sympathy_leader_reaction_min": 0.05,
"peer_sympathy_correlation_min": 0.80,
"peer_sympathy_correlation_window_start": 65,
"peer_sympathy_correlation_window_end_skip": 5,
"peer_sympathy_top_n_peers": 1,
"peer_sympathy_blackout_days_to_peer_event": 3,
"peer_sympathy_stop_pct": 0.035,
"peer_sympathy_target_pct": 0.06,
"peer_sympathy_max_holding_days": 3,
"leader_follower_min_days_to_event": 3,
"enabled": true
}
],
"tags": ["peer_sympathy", "sympathy_rally", "poc", "salvage_v2", "reaction_close", "sweep", "combo", "final_candidate"],
"version_family": "peer_sympathy",
"status": "draft",
"changelog": "Sweep10 combo final: corr_min 0.80 + top_n 1",
"parent": "peer_sympathy_poc_v2_reaction_close",
"performance_summary": null
}
Loading…
Cancel
Save