from __future__ import annotations from dragon_strategy_config import StrategyConfig def workbook_preserving_config() -> StrategyConfig: return StrategyConfig() def alpha_first_selective_veto_config() -> StrategyConfig: return workbook_preserving_config().with_updates( deep_oversold_selective_positive_b1_c1_max=15.3, deep_oversold_selective_shallow_c1_min=12.0, deep_oversold_selective_shallow_b1_min=-0.025, deep_oversold_selective_mixed_c1_max=10.2, deep_oversold_selective_mixed_require_no_ql=True, ) def alpha_first_glued_selective_veto_config() -> StrategyConfig: return alpha_first_selective_veto_config().with_updates( glued_selective_hot_c1_min=40.0, glued_selective_hot_b1_min=0.10, glued_selective_low_c1_min=23.0, glued_selective_low_c1_max=28.0, glued_selective_low_b1_max=0.02, ) def alpha_first_glued_refined_hot_cap_config() -> StrategyConfig: return alpha_first_selective_veto_config().with_updates( glued_selective_hot_c1_min=40.0, glued_selective_hot_c1_max=75.0, glued_selective_hot_b1_min=0.10, glued_selective_low_c1_min=23.0, glued_selective_low_c1_max=28.0, glued_selective_low_b1_max=0.02, ) def alpha_first_glued_followthrough_probe_config() -> StrategyConfig: return alpha_first_glued_refined_hot_cap_config().with_updates( glued_followthrough_pending_enabled=True, glued_followthrough_confirm_window_bars=3, glued_followthrough_allow_mid_zone_very_weak_b1=True, glued_followthrough_allow_high_zone_weak_b1=False, glued_followthrough_allow_ql_rebound_weak_followthrough=False, glued_followthrough_require_ql_buy_reconfirm=True, glued_followthrough_require_close_break_signal_close=True, glued_followthrough_require_b1_repair=True, glued_followthrough_b1_repair_min=0.02, ) def alpha_first_glued_followthrough_mid_exit_probe_config() -> StrategyConfig: return alpha_first_glued_followthrough_probe_config().with_updates( glued_followthrough_exit_hold_kdj_only_enabled=True, glued_followthrough_exit_hold_kdj_only_days_max=12, glued_followthrough_exit_hold_kdj_only_c1_low=55.0, glued_followthrough_exit_hold_kdj_only_c1_high=60.0, glued_followthrough_exit_hold_kdj_only_a1_min=0.0, glued_followthrough_exit_hold_kdj_only_b1_min=-0.02, )