diff --git a/configs/experiments/return_max_long_v7.356_plus_earnings_runup_v1.json b/configs/experiments/return_max_long_v7.356_plus_earnings_runup_v1.json new file mode 100644 index 0000000..1278969 --- /dev/null +++ b/configs/experiments/return_max_long_v7.356_plus_earnings_runup_v1.json @@ -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" +} \ No newline at end of file