From 9b3697be982a54eb17362503e7fd1f1206f58b03 Mon Sep 17 00:00:00 2001 From: momentum dev Date: Wed, 17 Jun 2026 16:07:46 -0400 Subject: [PATCH] sweep_exits: add profit-lock tier variants (lock_off/tight/mid/wide/only) For verifying the profit-lock checkpoints out-of-sample against the current trail (lock_off = trailLow_a1). In-sample, lock_mid matches lock_off on expectancy (+0.264 vs +0.262R) with a higher win rate (61% vs 57%). Co-Authored-By: Claude Opus 4.8 --- sweep_exits.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sweep_exits.py b/sweep_exits.py index 1147537..79c4638 100644 --- a/sweep_exits.py +++ b/sweep_exits.py @@ -68,6 +68,18 @@ def variants() -> dict[str, ExitConfig]: v["scale50_be1_trailLow"] = ExitConfig( target_r=10.0, breakeven_at_r=1.0, scale_out_r=1.0, scale_out_pct=0.5, trail_mode=TRAIL_PRIOR_LOW, trail_after_r=1.0) + # --- PROFIT-LOCK tiers on top of the verified prior-low trail (= the live + # config). lock_off is the baseline to beat; the rest add %-gain floors. --- + _trail = dict(target_r=10.0, trail_mode=TRAIL_PRIOR_LOW, trail_after_r=1.0) + v["lock_off"] = ExitConfig(**_trail) # == trailLow_a1, current live exit + v["lock_tight"] = ExitConfig(**_trail, + profit_lock_tiers=[(.05, .01), (.10, .05), (.20, .13), (.30, .22)]) + v["lock_mid"] = ExitConfig(**_trail, + profit_lock_tiers=[(.08, .03), (.15, .09), (.25, .18), (.40, .30)]) + v["lock_wide"] = ExitConfig(**_trail, + profit_lock_tiers=[(.12, .05), (.25, .16), (.40, .30)]) + v["lock_only_mid"] = ExitConfig(target_r=10.0, + profit_lock_tiers=[(.08, .03), (.15, .09), (.25, .18), (.40, .30)]) return v