Add v7.356+EarningsRunup composite config (NEUTRAL — not promoted)

Falsifies the "EarningsRunup as PEAD sleeve adjunct" hypothesis on
v7.356 base. Backtest results:
  v7.356 baseline:   +2356% / MDD 23.55% / Sharpe 2.69
  ER standalone:     +254%  / MDD 23.97% / Sharpe 1.10
  v7.356 + ER comp:  +2746% / MDD 25.21% / Sharpe 2.63

Headline composite gain (+390pp) is portfolio-luck distributed across
other sleeves (bullish_raised +$19.8k, parking +$11.2k, idle_form4
+$8.2k). EarningsRunup engine itself contributed -$7.6k in composite.

Symbol orthogonality CONFIRMED (0 ticker overlap between ER/PEAD
within ±14 days). Capital orthogonality FALSIFIED — composite missed
30 of 121 standalone ER entries (25%) due to insufficient_cash;
v7.356 base is already capital-saturated (47% idle baseline → 41%
with ER, indicating cash pressure).

Sharpe and profit_factor BOTH worse in composite, MDD slightly higher.

Verdict: do not integrate at engine_risk_budget=0.20. Engine kept
in-tree as falsification evidence + scaffolding for alternate
integration paths (lower budget, v7.364 base, or fully separate
capital bucket).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
main
I Luk Kim 3 months ago
parent 465e248cb4
commit 2a8e9c526e

@ -0,0 +1,663 @@
{
"experiment_name": "return_max_long_v7.356_plus_earnings_runup_v1",
"dataset_snapshot_id": "midlarge-liquid-long-v1_bucketfix_full_audit_canonical_ftb_fix_v2",
"description": "v7.356 + EarningsRunup adjunct. v7.356 PEAD champion (12 engines + sleeves) augmented with the EarningsRunup v2 tuned engine (commit 465e248: +254.69%/MDD 23.97%/SQS 69.7 standalone). Hypothesis: orthogonal entry timing \u2014 EarningsRunup (T-7..T-3 pre-print) does not collide for capital with PEAD (post-reaction-day). engine_risk_budget_pct=0.20 (top of 15-25% recommended range). Per-engine override per_trade_risk_pct_override=0.30 keeps EarningsRunup's tuned sizing (v7.356 base is 0.65 + a-tier 0.715). All 12 PEAD engines and all 5 sleeves preserved unchanged. engine_risk_budget_pct values are not normalized across engines (each is a multiplier on daily budget capped by daily_remaining), so adding 0.20 does not require rescaling existing budgets.",
"base_config": "configs/backtest/return_max_long_v1.json",
"overrides": {
"signal": {
"scoring_model": "return_max_long_v13e",
"score_threshold": 0.45,
"max_candidates_per_day": 18,
"a_tier_score_threshold": 0.58
},
"risk": {
"per_trade_risk_pct": 0.65,
"per_trade_risk_pct_a_tier": 0.715,
"max_daily_new_risk_pct": 50,
"max_positions": 30,
"max_positions_per_sector": 5,
"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,
"macro_regime_risk_off_a_tier_only": false,
"stop_atr_multiplier": 3,
"allow_budget_downsizing": true,
"cash_parking_preset": "qqqm_low_dd_tqqq_active_v2_gld_brake_v2",
"fixed_capital_sizing": false
},
"execution": {
"a_tier_target_1_r": 3.5,
"a_tier_target_1_fraction": 0,
"non_a_tier_target_1_r": 2.25,
"non_a_tier_target_1_fraction": 0,
"trailing_warmup_days": 7,
"max_holding_days": 12,
"early_failure_no_progress_days": 1,
"early_failure_no_progress_r": 0.15,
"early_failure_no_progress_fraction": 1,
"lookback_entry_enabled": true
},
"event_type_profiles": {
"material_contract": {
"enabled": true,
"direction_filter": "any",
"max_holding_days_override": 20
},
"other_material_event": {
"enabled": true,
"direction_filter": "any",
"max_holding_days_override": 20
},
"unknown": {
"enabled": true,
"direction_filter": "any",
"max_holding_days_override": 12
}
},
"idle_alpha_sleeve_preset": "micro_event_alpha_plus_event_plus_cash_convex_microcap8_guarded",
"form4_capture_sleeve_preset": "reserve_form4_cluster_plus_fresh_same_day_v3_aggressive_plus_cooldown180_high_maxval500m",
"ownership_capture_sleeve_preset": "ownership_13d_raise_reserve_ultra_balanced_purpose_plus_cooldown90_r95",
"risk_off_alpha_sleeve_preset": "risk_off_alpha_gld_crisis65_heavy"
},
"strategy_engines": [
{
"engine_id": "next_open_long_unknown_material_patient",
"_disabled_reason": "LOO: removing adds +234pp CW on ftb_fix_v2",
"event_types": [
"material_contract"
],
"event_directions": [
"unknown"
],
"guidance_statuses": [
"not_provided"
],
"filing_time_buckets": [
"post_market"
],
"timing_class": "after_close",
"direction": "long_only",
"entry_timing_policy": "next_open",
"max_holding_days": 12,
"engine_risk_budget_pct": 0.25,
"reaction_day_return_min": 0,
"reaction_day_return_max": 0.15,
"close_location_min": 0.5,
"close_location_max": 0.85,
"gap_size_min": 0,
"gap_size_max": 0.02,
"volume_ratio_min": 0.8,
"volume_ratio_max": 2,
"max_market_cap_proxy": 10000000000,
"document_quality_score_min": 0.5,
"parse_confidence_overall_min": 0.45,
"score_threshold_override": 0,
"residual_reserve_selected": true,
"veto_parse_confidence_min_override": 0.45,
"next_open_gap_cap_pct": 0.02,
"early_failure_close_below_entry_and_reaction_close_override": true,
"early_failure_no_progress_days_override": 15,
"early_failure_no_progress_r_override": 0,
"early_failure_no_progress_fraction_override": 1,
"target_1_r_override": 5,
"target_1_fraction_override": 0.1,
"trailing_warmup_days_override": 12,
"enabled": false,
"min_market_cap_proxy": 5000000000,
"macro_vix_max": 30
},
{
"engine_id": "reaction_close_long_core",
"event_types": [
"earnings_release",
"guidance_update"
],
"timing_class": "same_day",
"direction": "long_only",
"entry_timing_policy": "reaction_close",
"max_holding_days": 12,
"engine_risk_budget_pct": 1,
"reaction_day_return_min": 0,
"reaction_day_return_max": 0.18,
"close_location_min": 0.45,
"volume_ratio_min": 1,
"gap_size_min": 0,
"weak_reaction_threshold": 0.03,
"weak_reaction_gap_max": 0.02,
"unknown_direction_reaction_min": 0.05,
"unknown_direction_close_location_min": 0.7,
"attention_max_wiki_spike_10d": 6,
"score_threshold_override": 0.42,
"enabled": true,
"residual_reserve_selected": true,
"mixed_inline_close_location_max": 0.88,
"mixed_inline_gap_size_max": 0.1,
"unknown_inline_exit_close_location_min": 0.9,
"unknown_inline_exit_gap_size_max": 0.04,
"unknown_inline_early_failure_no_progress_days_override": 2,
"unknown_inline_early_failure_no_progress_r_override": 0.1,
"unknown_inline_early_failure_no_progress_fraction_override": 1,
"per_trade_risk_pct_override": 1.39,
"trailing_warmup_days_override": 8,
"macro_vix_max": 30,
"early_failure_close_below_entry_and_reaction_close_override": false,
"early_failure_no_progress_r_override": 0.2
},
{
"engine_id": "reaction_close_long_residual_lowclose_gap_d3",
"event_types": [
"earnings_release",
"guidance_update"
],
"timing_class": "same_day",
"direction": "long_only",
"entry_timing_policy": "reaction_close",
"max_holding_days": 12,
"engine_risk_budget_pct": 0.12,
"reaction_day_return_min": 0.03,
"reaction_day_return_max": 0.2,
"close_location_min": 0.35,
"close_location_max": 0.45,
"volume_ratio_min": 1.25,
"gap_size_min": 0.05,
"gap_size_max": 0.1,
"max_market_cap_proxy": 10000000000,
"score_threshold_override": 0.35,
"target_1_r_override": 3,
"target_1_fraction_override": 0,
"residual_reserve_selected": true,
"early_failure_close_below_entry_and_reaction_close_override": false,
"early_failure_no_progress_days_override": 3,
"early_failure_no_progress_r_override": 0.25,
"early_failure_no_progress_fraction_override": 1,
"enabled": true,
"macro_vix_max": 30
},
{
"engine_id": "reaction_close_long_residual_smallcap_gap",
"event_types": [
"earnings_release",
"guidance_update"
],
"timing_class": "same_day",
"direction": "long_only",
"entry_timing_policy": "reaction_close",
"max_holding_days": 12,
"engine_risk_budget_pct": 0.12,
"reaction_day_return_min": 0.03,
"reaction_day_return_max": 0.2,
"close_location_min": 0.45,
"volume_ratio_min": 1.25,
"gap_size_min": 0.05,
"gap_size_max": 0.1,
"max_market_cap_proxy": 10000000000,
"score_threshold_override": 0.35,
"target_1_r_override": 3,
"target_1_fraction_override": 0,
"enabled": true,
"macro_vix_max": 30
},
{
"engine_id": "reaction_close_long_extreme_orderly",
"event_types": [
"earnings_release",
"guidance_update"
],
"timing_class": "same_day",
"direction": "long_only",
"entry_timing_policy": "reaction_close",
"max_holding_days": 12,
"engine_risk_budget_pct": 0.35,
"reaction_day_return_min": 0.2,
"reaction_day_return_max": 0.4,
"close_location_min": 0.83,
"volume_ratio_min": 6,
"gap_size_min": 0,
"gap_size_max": 0.15,
"attention_max_wiki_spike_10d": 6,
"score_threshold_override": 0.65,
"enabled": true,
"target_1_r_override": 99,
"target_1_fraction_override": 0,
"trailing_warmup_days_override": 8,
"early_failure_close_below_entry_and_reaction_close_override": false,
"early_failure_no_progress_days_override": null,
"early_failure_no_progress_r_override": null,
"early_failure_no_progress_fraction_override": null,
"per_trade_risk_pct_override": 1.5,
"macro_vix_max": 30
},
{
"engine_id": "next_open_long_unknown_inline_hivol",
"event_types": [
"earnings_release"
],
"event_directions": [
"unknown"
],
"guidance_statuses": [
"inline_or_maintained"
],
"filing_time_buckets": [
"post_market"
],
"timing_class": "after_close",
"direction": "long_only",
"entry_timing_policy": "next_open",
"max_holding_days": 12,
"engine_risk_budget_pct": 0.1,
"reaction_day_return_min": 0,
"reaction_day_return_max": 0.06,
"close_location_min": 0.74,
"close_location_max": 0.86,
"gap_size_min": 0,
"gap_size_max": 0.04,
"volume_ratio_min": 2.1,
"volume_ratio_max": 2.8,
"document_quality_score_min": 0.5,
"parse_confidence_overall_min": 0.5,
"score_threshold_override": 0,
"residual_reserve_selected": true,
"veto_oneoff_penalty_override": 1,
"next_open_gap_cap_pct": 0.04,
"early_failure_close_below_entry_and_reaction_close_override": false,
"early_failure_no_progress_days_override": 15,
"early_failure_no_progress_r_override": 0,
"early_failure_no_progress_fraction_override": 1,
"target_1_r_override": 5,
"target_1_fraction_override": 0.1,
"trailing_warmup_days_override": 12,
"enabled": true,
"per_trade_risk_pct_override": 1.95,
"macro_vix_max": 30
},
{
"engine_id": "next_open_long_guidance_unknown_orderly",
"event_types": [
"guidance_update"
],
"event_directions": [
"unknown"
],
"guidance_statuses": [
"not_provided"
],
"filing_time_buckets": [
"post_market"
],
"timing_class": "after_close",
"direction": "long_only",
"entry_timing_policy": "next_open",
"max_holding_days": 12,
"engine_risk_budget_pct": 0.0675,
"reaction_day_return_min": -0.03,
"reaction_day_return_max": 0.05,
"close_location_min": 0.9,
"gap_size_min": -0.02,
"gap_size_max": 0.03,
"volume_ratio_min": 0.8,
"min_market_cap_proxy": 9000000000,
"document_quality_score_min": 0.52,
"parse_confidence_overall_min": 0.48,
"score_threshold_override": 0,
"residual_reserve_selected": true,
"next_open_gap_cap_pct": 0.03,
"early_failure_close_below_entry_and_reaction_close_override": false,
"early_failure_no_progress_days_override": 15,
"early_failure_no_progress_r_override": 0,
"early_failure_no_progress_fraction_override": 1,
"target_1_r_override": 4,
"target_1_fraction_override": 0.1,
"trailing_warmup_days_override": 15,
"enabled": true,
"veto_parse_confidence_min_override": 0.48,
"per_trade_risk_pct_override": 0.98,
"stop_atr_multiplier_override": 2,
"use_reaction_day_low_stop_override": false,
"macro_vix_max": 30
},
{
"engine_id": "next_open_long_earnings_mixed_inline_orderly",
"event_types": [
"earnings_release"
],
"event_directions": [
"mixed"
],
"guidance_statuses": [
"inline_or_maintained"
],
"filing_time_buckets": [
"post_market"
],
"timing_class": "after_close",
"direction": "long_only",
"entry_timing_policy": "next_open",
"max_holding_days": 12,
"engine_risk_budget_pct": 0.03,
"reaction_day_return_min": -0.03,
"reaction_day_return_max": 0.06,
"close_location_min": 0.5,
"gap_size_min": -0.02,
"gap_size_max": 0.05,
"volume_ratio_min": 1,
"min_market_cap_proxy": 8000000000,
"document_quality_score_min": 0.5,
"parse_confidence_overall_min": 0.5,
"score_threshold_override": 0,
"residual_reserve_selected": true,
"next_open_gap_cap_pct": 0.04,
"early_failure_close_below_entry_and_reaction_close_override": false,
"early_failure_no_progress_days_override": 15,
"early_failure_no_progress_r_override": 0,
"early_failure_no_progress_fraction_override": 1,
"target_1_r_override": 5,
"target_1_fraction_override": 0.1,
"trailing_warmup_days_override": 12,
"enabled": true,
"veto_parse_confidence_min_override": 0.5,
"per_trade_risk_pct_override": 1.34,
"stop_atr_multiplier_override": 3,
"use_reaction_day_low_stop_override": false,
"macro_vix_max": 30
},
{
"engine_id": "next_open_long_unknown_material_orderly",
"event_types": [
"material_contract"
],
"event_directions": [
"unknown"
],
"guidance_statuses": [
"not_provided"
],
"filing_time_buckets": [
"post_market"
],
"timing_class": "after_close",
"direction": "long_only",
"entry_timing_policy": "next_open",
"max_holding_days": 12,
"engine_risk_budget_pct": 0.02,
"reaction_day_return_min": -0.02,
"reaction_day_return_max": 0.07,
"close_location_min": 0.5,
"close_location_max": 0.8,
"gap_size_min": -0.02,
"gap_size_max": 0.02,
"volume_ratio_min": 0.9,
"volume_ratio_max": 1.4,
"min_market_cap_proxy": 10000000000,
"max_market_cap_proxy": 100000000000,
"document_quality_score_min": 0.5,
"parse_confidence_overall_min": 0.45,
"score_threshold_override": 0,
"residual_reserve_selected": true,
"next_open_gap_cap_pct": 0.03,
"early_failure_close_below_entry_and_reaction_close_override": false,
"early_failure_no_progress_days_override": 15,
"early_failure_no_progress_r_override": 0,
"early_failure_no_progress_fraction_override": 1,
"target_1_r_override": 5,
"target_1_fraction_override": 0.1,
"trailing_warmup_days_override": 12,
"enabled": false,
"veto_parse_confidence_min_override": 0.45,
"per_trade_risk_pct_override": 0.23,
"stop_atr_multiplier_override": 3,
"use_reaction_day_low_stop_override": false,
"macro_vix_max": 30,
"_disabled_reason": "LOO v7.132: +37pp delta"
},
{
"engine_id": "next_open_long_megacap_material_contract_orderly",
"event_types": [
"material_contract",
"other_material_event"
],
"event_directions": [
"unknown",
"mixed"
],
"guidance_statuses": [
"not_provided"
],
"filing_time_buckets": [
"post_market"
],
"timing_class": "after_close",
"direction": "long_only",
"entry_timing_policy": "next_open",
"max_holding_days": 8,
"engine_risk_budget_pct": 0.03,
"reaction_day_return_min": 0.02,
"reaction_day_return_max": 0.12,
"close_location_min": 0.55,
"volume_ratio_min": 1,
"min_market_cap_proxy": 100000000000,
"document_quality_score_min": 0.45,
"parse_confidence_overall_min": 0.4,
"score_threshold_override": 0,
"residual_reserve_selected": true,
"next_open_gap_cap_pct": 0.05,
"gap_size_min": -0.01,
"gap_size_max": 0.05,
"early_failure_close_below_entry_and_reaction_close_override": false,
"early_failure_no_progress_days_override": 2,
"early_failure_no_progress_r_override": 0.1,
"early_failure_no_progress_fraction_override": 1,
"target_1_r_override": 3,
"target_1_fraction_override": 0.15,
"trailing_warmup_days_override": 8,
"enabled": true,
"veto_parse_confidence_min_override": 0.4,
"per_trade_risk_pct_override": 0.57,
"stop_atr_multiplier_override": 2.5,
"use_reaction_day_low_stop_override": false,
"macro_vix_max": 28
},
{
"engine_id": "next_open_long_other_material_mixed_orderly",
"_disabled_reason": "LOO: zero CW contribution on ftb_fix_v2",
"event_types": [
"other_material_event"
],
"event_directions": [
"mixed"
],
"guidance_statuses": [
"not_provided"
],
"filing_time_buckets": [
"post_market"
],
"timing_class": "after_close",
"direction": "long_only",
"entry_timing_policy": "next_open",
"max_holding_days": 12,
"engine_risk_budget_pct": 0.02,
"reaction_day_return_min": -0.04,
"reaction_day_return_max": 0.06,
"close_location_min": 0.45,
"gap_size_min": -0.03,
"gap_size_max": 0.05,
"volume_ratio_min": 1,
"min_market_cap_proxy": 6000000000,
"document_quality_score_min": 0.54,
"parse_confidence_overall_min": 0.5,
"score_threshold_override": 0,
"residual_reserve_selected": true,
"next_open_gap_cap_pct": 0.04,
"early_failure_close_below_entry_and_reaction_close_override": false,
"early_failure_no_progress_days_override": 1,
"early_failure_no_progress_r_override": 0,
"early_failure_no_progress_fraction_override": 1,
"target_1_r_override": 5,
"target_1_fraction_override": 0.1,
"trailing_warmup_days_override": 12,
"enabled": false,
"veto_parse_confidence_min_override": 0.5,
"veto_oneoff_penalty_override": 0,
"per_trade_risk_pct_override": 0.23,
"stop_atr_multiplier_override": 3,
"use_reaction_day_low_stop_override": false,
"macro_vix_max": 30
},
{
"engine_id": "next_open_long_unknown_ome_orderly",
"_disabled_reason": "LOO: removing adds +336pp CW on ftb_fix_v2",
"event_types": [
"other_material_event"
],
"event_directions": [
"unknown"
],
"guidance_statuses": [
"not_provided"
],
"filing_time_buckets": [
"post_market"
],
"timing_class": "after_close",
"direction": "long_only",
"entry_timing_policy": "next_open",
"max_holding_days": 12,
"engine_risk_budget_pct": 0.04,
"reaction_day_return_min": 0,
"reaction_day_return_max": 0.12,
"close_location_min": 0.55,
"volume_ratio_min": 1,
"min_market_cap_proxy": 4000000000,
"score_threshold_override": 0,
"residual_reserve_selected": true,
"next_open_gap_cap_pct": 0.04,
"early_failure_close_below_entry_and_reaction_close_override": false,
"early_failure_no_progress_days_override": 1,
"early_failure_no_progress_r_override": 0,
"early_failure_no_progress_fraction_override": 1,
"target_1_r_override": 5,
"target_1_fraction_override": 0.1,
"trailing_warmup_days_override": 12,
"enabled": false,
"veto_parse_confidence_min_override": 0.4,
"per_trade_risk_pct_override": 0.13,
"stop_atr_multiplier_override": 4,
"use_reaction_day_low_stop_override": false,
"macro_vix_max": 30
},
{
"engine_id": "next_open_long_bullish_raised_recovery_broad_oneoff",
"event_types": [
"earnings_release"
],
"event_directions": [
"bullish"
],
"guidance_statuses": [
"raised"
],
"filing_time_buckets": [
"post_market"
],
"timing_class": "after_close",
"direction": "long_only",
"entry_timing_policy": "next_open",
"max_holding_days": 10,
"engine_risk_budget_pct": 0.03,
"reaction_day_return_min": 0,
"reaction_day_return_max": 0.1,
"close_location_min": 0.3,
"close_location_max": 0.75,
"gap_size_min": 0.01,
"gap_size_max": 0.12,
"volume_ratio_min": 1.3,
"volume_ratio_max": 5,
"min_market_cap_proxy": 8000000000,
"document_quality_score_min": 0.5,
"parse_confidence_overall_min": 0.5,
"score_threshold_override": 0,
"residual_reserve_selected": true,
"veto_parse_confidence_min_override": 0.5,
"veto_oneoff_penalty_override": 0.75,
"allow_oneoff_downsizing_override": true,
"oneoff_downsize_floor_override": 0.15,
"next_open_gap_cap_pct": 0.12,
"early_failure_close_below_entry_and_reaction_close_override": false,
"early_failure_no_progress_days_override": 10,
"early_failure_no_progress_r_override": 0,
"early_failure_no_progress_fraction_override": 1,
"target_1_r_override": 5,
"target_1_fraction_override": 0.1,
"trailing_warmup_days_override": 12,
"per_trade_risk_pct_override": 0.55,
"stop_atr_multiplier_override": 3,
"use_reaction_day_low_stop_override": false,
"enabled": true,
"macro_vix_max": 30
},
{
"engine_id": "earnings_runup_preevent_long",
"event_types": [
"earnings_runup_preevent"
],
"timing_class": "after_close",
"direction": "long_only",
"entry_timing_policy": "next_open",
"engine_risk_budget_pct": 0.2,
"score_threshold_override": 0.0,
"max_holding_days": 7,
"macro_vix_max": 30.0,
"earnings_runup_enabled": true,
"earnings_runup_days_to_earnings_min": 3,
"earnings_runup_days_to_earnings_max": 7,
"earnings_runup_attention_zscore_20d_min": 1.5,
"earnings_runup_dollar_volume_zscore_20d_min": 1.0,
"earnings_runup_min_avg_dollar_volume": 50000000.0,
"earnings_runup_stop_pct": 0.04,
"earnings_runup_target_pct": 0.08,
"earnings_runup_trailing_activate_pct": 0.05,
"earnings_runup_trailing_giveback_pct": 0.03,
"earnings_runup_calendar_buffer_days": 1,
"per_trade_risk_pct_override": 0.3,
"enabled": true
}
],
"splits": [
{
"kind": "named_snapshot",
"params": {
"name": "train"
}
},
{
"kind": "named_snapshot",
"params": {
"name": "valid"
}
},
{
"kind": "named_snapshot",
"params": {
"name": "test"
}
}
],
"tags": [
"v6new",
"de-risk",
"return-max",
"earnings_runup",
"adjunct"
],
"notes": "Add macro_vix_max to reaction_close_long_core on top of v6new.350 to keep current split/WFV while sharply improving matched stress OOT.",
"aliases": [
"v7.356_plus_earnings_runup_v1"
],
"version_family": "v7",
"status": "draft",
"changelog": "Add 13th engine: earnings_runup_preevent_long with engine_risk_budget_pct=0.20 and per_trade_risk_pct_override=0.30. Goal: capture pre-print attention runup on top of PEAD post-print drift.",
"parent": "return_max_long_v7.356_composed_gld_compound"
}
Loading…
Cancel
Save