# ETH BB squeeze exit management task C Run command: `rtk .venv/bin/python /home/lxy/okx-codex-trader/scripts/search_eth_bb_squeeze_exit_management.py --bar 15m --years 10.0 --output-dir reports/eth-exploration` Aligned local history: `2019-12-25 00:00` to `2026-05-20 15:15`. Entry logic is fixed to the current live baseline: ETH 15m, band 96, bandwidth 960 q0.25, 1% stop, 3% take, middle exit 0.1% x1, vol cap 0.006, cooldown 24, BTC-up, NY weekday entries, skip US-open middle exits, both sides. Exit priority: pending middle exit at next open, then entry fill; while holding, open gaps are checked before intrabar checks, protected stop/stop-loss is conservative before take-profit, then middle exit can schedule next-open exit. Dynamic protection uses MFE confirmed before the current candle. ## Baseline | name | trades | win_rate | avg_return_pct | payoff_ratio | profit_factor | net_total_return | net_annualized_return | net_max_drawdown | net_calmar | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | benone-trailnone | 458 | 0.31441 | 0.456326 | 2.70113 | 1.23874 | 0.737524 | 0.0900513 | 0.631785 | 0.142535 | ## Top 5 by full maker_taker Calmar | name | trades | win_rate | avg_return_pct | payoff_ratio | profit_factor | net_total_return | net_annualized_return | net_max_drawdown | net_calmar | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | be0.008-0.001-trailnone | 469 | 0.567164 | 0.449519 | 1.04199 | 1.36536 | 1.0854 | 0.121546 | 0.538717 | 0.225622 | | be0.008-0-trailnone | 469 | 0.206823 | 0.453273 | 2.86379 | 1.36841 | 1.07583 | 0.120741 | 0.554637 | 0.217695 | | be0.01-0-trailnone | 466 | 0.227468 | 0.477047 | 2.85896 | 1.34689 | 1.21153 | 0.131872 | 0.606408 | 0.217465 | | be0.005-0.001-trailnone | 478 | 0.612971 | 0.411953 | 0.895307 | 1.41797 | 0.909032 | 0.106185 | 0.496816 | 0.21373 | | be0.01-0.001-trailnone | 466 | 0.517167 | 0.433214 | 1.22771 | 1.31501 | 0.850053 | 0.10078 | 0.579416 | 0.173934 | ## Top 5 horizons | name | horizon | trades | win_rate | avg_return_pct | payoff_ratio | profit_factor | net_total_return | net_annualized_return | net_max_drawdown | net_calmar | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | be0.008-0.001-trailnone | full | 469 | 0.567164 | 0.449519 | 1.04199 | 1.36536 | 1.0854 | 0.122099 | 0.538717 | 0.226647 | | be0.008-0-trailnone | full | 469 | 0.206823 | 0.453273 | 2.86379 | 1.36841 | 1.07583 | 0.12129 | 0.554637 | 0.218684 | | be0.01-0-trailnone | full | 466 | 0.227468 | 0.477047 | 2.85896 | 1.34689 | 1.21153 | 0.132475 | 0.606408 | 0.218458 | | be0.005-0.001-trailnone | full | 478 | 0.612971 | 0.411953 | 0.895307 | 1.41797 | 0.909032 | 0.106664 | 0.496816 | 0.214695 | | be0.01-0.001-trailnone | full | 466 | 0.517167 | 0.433214 | 1.22771 | 1.31501 | 0.850053 | 0.101234 | 0.579416 | 0.174717 | | be0.008-0.001-trailnone | 3y | 197 | 0.548223 | 0.388206 | 1.07378 | 1.30302 | 0.20999 | 0.0655376 | 0.538717 | 0.121655 | | be0.01-0.001-trailnone | 3y | 195 | 0.502564 | 0.352488 | 1.2365 | 1.24925 | 0.111747 | 0.0359083 | 0.579416 | 0.0619732 | | be0.008-0-trailnone | 3y | 197 | 0.218274 | 0.333383 | 2.60837 | 1.26022 | 0.0820363 | 0.0266054 | 0.554637 | 0.047969 | | be0.01-0-trailnone | 3y | 195 | 0.235897 | 0.317104 | 2.58153 | 1.22423 | 0.0337452 | 0.011114 | 0.606408 | 0.0183276 | | be0.005-0.001-trailnone | 3y | 201 | 0.61194 | 0.190077 | 0.753776 | 1.18865 | -0.144542 | -0.0506636 | 0.496816 | -0.101977 | | be0.008-0.001-trailnone | 1y | 64 | 0.640625 | 0.820553 | 0.995372 | 1.77436 | 0.400628 | 0.400628 | 0.17705 | 2.2628 | | be0.01-0.001-trailnone | 1y | 64 | 0.609375 | 0.723148 | 1.04493 | 1.63009 | 0.314747 | 0.314747 | 0.198293 | 1.58728 | | be0.008-0-trailnone | 1y | 64 | 0.25 | 0.703366 | 2.39167 | 1.66377 | 0.299365 | 0.299365 | 0.191502 | 1.56325 | | be0.01-0-trailnone | 1y | 64 | 0.25 | 0.615336 | 2.40024 | 1.53615 | 0.227037 | 0.227037 | 0.212842 | 1.0667 | | be0.005-0.001-trailnone | 1y | 64 | 0.65625 | 0.251292 | 0.677539 | 1.29348 | -0.00528428 | -0.00528428 | 0.16686 | -0.0316689 | | be0.008-0.001-trailnone | 6m | 33 | 0.636364 | 1.03818 | 1.1337 | 1.98397 | 0.273263 | 0.627704 | 0.0924258 | 6.79144 | | be0.01-0.001-trailnone | 6m | 33 | 0.606061 | 0.938176 | 1.18213 | 1.81865 | 0.231283 | 0.521296 | 0.0924258 | 5.64016 | | be0.008-0-trailnone | 6m | 33 | 0.242424 | 0.919994 | 2.80794 | 1.87196 | 0.224533 | 0.504524 | 0.0970462 | 5.1988 | | be0.01-0-trailnone | 6m | 33 | 0.242424 | 0.829085 | 2.80063 | 1.72346 | 0.18772 | 0.414707 | 0.0970462 | 4.27329 | | be0.005-0.001-trailnone | 6m | 33 | 0.636364 | 0.420912 | 0.844301 | 1.47753 | 0.0513299 | 0.106212 | 0.117857 | 0.901196 | | be0.008-0.001-trailnone | 3m | 18 | 0.722222 | 1.9381 | 1.31692 | 3.42399 | 0.336641 | 2.28702 | 0.0916089 | 24.965 | | be0.008-0-trailnone | 3m | 18 | 0.333333 | 1.82143 | 2.73173 | 3.27807 | 0.308848 | 2.01562 | 0.0970462 | 20.7697 | | be0.01-0.001-trailnone | 3m | 18 | 0.666667 | 1.75477 | 1.40806 | 2.81612 | 0.292572 | 1.86476 | 0.0916089 | 20.3557 | | be0.01-0-trailnone | 3m | 18 | 0.333333 | 1.65477 | 2.71262 | 2.71262 | 0.2695 | 1.66079 | 0.0970462 | 17.1134 | | be0.005-0.001-trailnone | 3m | 18 | 0.666667 | 1.02154 | 1.19704 | 2.39408 | 0.142114 | 0.724544 | 0.0705036 | 10.2767 | | be0.005-0.001-trailnone | 21d | 4 | 0.75 | 0.09645 | 0.387098 | 1.16129 | -0.00506551 | -0.0844837 | 0.026019 | -3.247 | | be0.01-0.001-trailnone | 21d | 4 | 0.75 | 0.09645 | 0.387098 | 1.16129 | -0.00506551 | -0.0844837 | 0.026019 | -3.247 | | be0.008-0.001-trailnone | 21d | 4 | 0.75 | 0.09645 | 0.387098 | 1.16129 | -0.00506551 | -0.0844837 | 0.026019 | -3.247 | | be0.01-0-trailnone | 21d | 4 | 0.25 | -0.05355 | 0.910448 | 0.910448 | -0.0110208 | -0.175201 | 0.0280644 | -6.24283 | | be0.008-0-trailnone | 21d | 4 | 0.25 | -0.05355 | 0.910448 | 0.910448 | -0.0110208 | -0.175201 | 0.0280644 | -6.24283 | ## Exit reason distribution | name | exit_reason | trades | wins | losses | sum_return_pct | avg_return_pct | payoff_ratio | profit_factor | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | be0.005-0.001-trailnone | breakeven | 214 | 214 | 0 | 64.2 | 0.3 | 0 | 0 | | be0.005-0.001-trailnone | breakeven_gap | 35 | 7 | 28 | -15.362 | -0.438914 | 0.363529 | 0.0908822 | | be0.005-0.001-trailnone | signal_middle | 22 | 7 | 15 | -10.9244 | -0.496564 | 1.31329 | 0.612869 | | be0.005-0.001-trailnone | stop | 142 | 0 | 142 | -426 | -3 | 0 | 0 | | be0.005-0.001-trailnone | take_profit | 65 | 65 | 0 | 585 | 9 | 0 | 0 | | be0.008-0-trailnone | breakeven | 169 | 0 | 0 | 0 | 0 | 0 | 0 | | be0.008-0-trailnone | breakeven_gap | 6 | 0 | 6 | -4.2721 | -0.712017 | 0 | 0 | | be0.008-0-trailnone | signal_middle | 30 | 13 | 17 | 0.8573 | 0.0285767 | 1.34192 | 1.02617 | | be0.008-0-trailnone | stop | 180 | 0 | 180 | -540 | -3 | 0 | 0 | | be0.008-0-trailnone | take_profit | 84 | 84 | 0 | 756 | 9 | 0 | 0 | | be0.008-0.001-trailnone | breakeven | 171 | 171 | 0 | 51.3 | 0.3 | 0 | 0 | | be0.008-0.001-trailnone | breakeven_gap | 10 | 4 | 6 | -3.3329 | -0.33329 | 0.329768 | 0.219845 | | be0.008-0.001-trailnone | signal_middle | 30 | 13 | 17 | 0.8573 | 0.0285767 | 1.34192 | 1.02617 | | be0.008-0.001-trailnone | stop | 180 | 0 | 180 | -540 | -3 | 0 | 0 | | be0.008-0.001-trailnone | take_profit | 78 | 78 | 0 | 702 | 9 | 0 | 0 | | be0.01-0-trailnone | breakeven | 135 | 0 | 0 | 0 | 0 | 0 | 0 | | be0.01-0-trailnone | breakeven_gap | 5 | 0 | 5 | -4.142 | -0.8284 | 0 | 0 | | be0.01-0-trailnone | signal_middle | 35 | 14 | 21 | -4.554 | -0.130114 | 1.32798 | 0.885323 | | be0.01-0-trailnone | stop | 199 | 0 | 199 | -597 | -3 | 0 | 0 | | be0.01-0-trailnone | take_profit | 92 | 92 | 0 | 828 | 9 | 0 | 0 | | be0.01-0.001-trailnone | breakeven | 140 | 140 | 0 | 42 | 0.3 | 0 | 0 | | be0.01-0.001-trailnone | breakeven_gap | 7 | 2 | 5 | -3.5685 | -0.509786 | 0.346149 | 0.13846 | | be0.01-0.001-trailnone | signal_middle | 35 | 14 | 21 | -4.554 | -0.130114 | 1.32798 | 0.885323 | | be0.01-0.001-trailnone | stop | 199 | 0 | 199 | -597 | -3 | 0 | 0 | | be0.01-0.001-trailnone | take_profit | 85 | 85 | 0 | 765 | 9 | 0 | 0 | | benone-trailnone | signal_middle | 73 | 29 | 44 | -16.0027 | -0.219215 | 1.14618 | 0.75544 | | benone-trailnone | stop | 270 | 0 | 270 | -810 | -3 | 0 | 0 | | benone-trailnone | take_profit | 115 | 115 | 0 | 1035 | 9 | 0 | 0 | ## Recommendation Do not update live from this task unless a candidate beats the baseline on full-window Calmar and does not degrade 1y, 6m, 3m, and 21d net total return versus baseline. See CSV outputs for the strict comparison.