Run command: rtk .venv/bin/python /home/lxy/okx-codex-trader/scripts/refine_expansion_trend_validation.py --years 10.0
Output files:
reports/strategy-expansion/trend-validation-totals.csvreports/strategy-expansion/trend-validation-periods.csvreports/strategy-expansion/trend-validation-monthly-returns.csvreports/strategy-expansion/trend-validation-validated.csvreports/strategy-expansion/trend-validation-best.jsonreports/strategy-expansion/trend-validation-report.mdScope: existing trend-swing 1D and 4H parameter rows, rerun on BTC-USDT-SWAP and ETH-USDT-SWAP local 15m cache. Risk profiles: 1x full notional, 2x half notional, 1x half notional. Fee is 0.04% per side. Validation pass: trades >= 60, Calmar > 0.8, and non-negative 1y/6m/3m returns.
Exclude the 1D EMA branch despite headline metrics: every passing 1D EMA row has fewer than 30 trades, so the result is dominated by a small number of exits rather than repeatable evidence.
| result |
|---|
| name | symbol | bar | family | risk | trades | total_return | annualized_return | max_drawdown | calmar | return_1y | return_6m | return_3m | rolling_3y_total_return |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| BTC-USDT-SWAP-4H-donchian-f30-s120-e55-x20-a14-sl2.0-tp4.0-mh120-lev1-pos1 | BTC-USDT-SWAP | 4H | donchian | lev1-pos1 | 273 | 7.17592 | 0.393762 | 0.325164 | 1.21096 | -0.139729 | -0.0122325 | -0.0978116 | -0.0472086 |
| BTC-USDT-SWAP-4H-donchian-f30-s120-e55-x20-a14-sl2.0-tp4.0-mh120-lev2-pos0.5 | BTC-USDT-SWAP | 4H | donchian | lev2-pos0.5 | 273 | 7.17592 | 0.393762 | 0.325164 | 1.21096 | -0.139729 | -0.0122325 | -0.0978116 | -0.0472086 |
| BTC-USDT-SWAP-4H-donchian-f30-s120-e55-x20-a14-sl2.0-tp4.0-mh120-lev1-pos0.5 | BTC-USDT-SWAP | 4H | donchian | lev1-pos0.5 | 273 | 2.18753 | 0.20102 | 0.170684 | 1.17773 | -0.0654727 | -0.000877926 | -0.0473958 | -0.00411631 |
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e20-x10-a14-sl2.0-tp4.0-mh60-lev1-pos1 | ETH-USDT-SWAP | 1D | ema_cross | lev1-pos1 | 12 | 2.14467 | 0.209246 | 0.193178 | 1.08318 | 0.0124127 | 0.0618967 | 0 | 0.316447 |
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e20-x10-a14-sl2.0-tp4.0-mh60-lev2-pos0.5 | ETH-USDT-SWAP | 1D | ema_cross | lev2-pos0.5 | 12 | 2.14467 | 0.209246 | 0.193178 | 1.08318 | 0.0124127 | 0.0618967 | 0 | 0.316447 |
| BTC-USDT-SWAP-4H-ema_cross-f30-s120-e55-x20-a14-sl2.0-tp4.0-mh120-lev2-pos0.5 | BTC-USDT-SWAP | 4H | ema_cross | lev2-pos0.5 | 126 | 2.93554 | 0.241698 | 0.225299 | 1.07279 | 0.0929927 | -0.00643734 | -0.080713 | 0.175355 |
| BTC-USDT-SWAP-4H-ema_cross-f30-s120-e55-x20-a14-sl2.0-tp4.0-mh120-lev1-pos1 | BTC-USDT-SWAP | 4H | ema_cross | lev1-pos1 | 126 | 2.93554 | 0.241698 | 0.225299 | 1.07279 | 0.0929927 | -0.00643734 | -0.080713 | 0.175355 |
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e20-x10-a14-sl2.0-tp4.0-mh60-lev1-pos0.5 | ETH-USDT-SWAP | 1D | ema_cross | lev1-pos0.5 | 12 | 0.844191 | 0.106827 | 0.102186 | 1.04541 | 0.00692745 | 0.0309484 | 0 | 0.164003 |
| BTC-USDT-SWAP-4H-ema_cross-f30-s120-e55-x20-a14-sl2.0-tp4.0-mh120-lev1-pos0.5 | BTC-USDT-SWAP | 4H | ema_cross | lev1-pos0.5 | 126 | 1.06789 | 0.121647 | 0.118098 | 1.03005 | 0.0484586 | -0.00145424 | -0.0400289 | 0.0944876 |
| BTC-USDT-SWAP-4H-donchian-f30-s120-e55-x20-a14-sl3.0-tp6.0-mh120-lev1-pos1 | BTC-USDT-SWAP | 4H | donchian | lev1-pos1 | 203 | 9.34748 | 0.446614 | 0.441164 | 1.01235 | -0.226296 | -0.0804739 | -0.111625 | -0.213149 |
| BTC-USDT-SWAP-4H-donchian-f30-s120-e55-x20-a14-sl3.0-tp6.0-mh120-lev2-pos0.5 | BTC-USDT-SWAP | 4H | donchian | lev2-pos0.5 | 203 | 9.34748 | 0.446614 | 0.441164 | 1.01235 | -0.226296 | -0.0804739 | -0.111625 | -0.213149 |
| BTC-USDT-SWAP-4H-donchian-f30-s120-e55-x20-a14-sl3.0-tp6.0-mh120-lev1-pos0.5 | BTC-USDT-SWAP | 4H | donchian | lev1-pos0.5 | 203 | 2.66376 | 0.227737 | 0.241047 | 0.944782 | -0.110976 | -0.0326829 | -0.0520146 | -0.0907824 |
| name | symbol | risk | trades | total_return | annualized_return | max_drawdown | calmar | return_1y | return_6m | return_3m | rolling_3y_total_return |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e20-x10-a14-sl2.0-tp4.0-mh60-lev1-pos1 | ETH-USDT-SWAP | lev1-pos1 | 12 | 2.14467 | 0.209246 | 0.193178 | 1.08318 | 0.0124127 | 0.0618967 | 0 | 0.316447 |
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e20-x10-a14-sl2.0-tp4.0-mh60-lev2-pos0.5 | ETH-USDT-SWAP | lev2-pos0.5 | 12 | 2.14467 | 0.209246 | 0.193178 | 1.08318 | 0.0124127 | 0.0618967 | 0 | 0.316447 |
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e20-x10-a14-sl2.0-tp4.0-mh60-lev1-pos0.5 | ETH-USDT-SWAP | lev1-pos0.5 | 12 | 0.844191 | 0.106827 | 0.102186 | 1.04541 | 0.00692745 | 0.0309484 | 0 | 0.164003 |
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e55-x20-a14-sl2.0-tp4.0-mh60-lev2-pos0.5 | ETH-USDT-SWAP | lev2-pos0.5 | 12 | 2.14764 | 0.209436 | 0.266367 | 0.786269 | -0.0722148 | 0.0235816 | 0 | 0.171212 |
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e55-x20-a14-sl2.0-tp4.0-mh60-lev1-pos1 | ETH-USDT-SWAP | lev1-pos1 | 12 | 2.14764 | 0.209436 | 0.266367 | 0.786269 | -0.0722148 | 0.0235816 | 0 | 0.171212 |
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e20-x10-a14-sl3.0-tp6.0-mh60-lev1-pos1 | ETH-USDT-SWAP | lev1-pos1 | 12 | 1.31396 | 0.149271 | 0.193178 | 0.772713 | 0.0124127 | 0.0618967 | 0 | 0.239831 |
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e20-x10-a14-sl3.0-tp6.0-mh60-lev2-pos0.5 | ETH-USDT-SWAP | lev2-pos0.5 | 12 | 1.31396 | 0.149271 | 0.193178 | 0.772713 | 0.0124127 | 0.0618967 | 0 | 0.239831 |
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e55-x20-a14-sl2.0-tp4.0-mh60-lev1-pos0.5 | ETH-USDT-SWAP | lev1-pos0.5 | 12 | 0.864372 | 0.108826 | 0.143926 | 0.756126 | -0.0355557 | 0.0117908 | 0 | 0.102319 |
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e20-x10-a14-sl3.0-tp6.0-mh60-lev1-pos0.5 | ETH-USDT-SWAP | lev1-pos0.5 | 12 | 0.56589 | 0.0772041 | 0.102186 | 0.755523 | 0.00692745 | 0.0309484 | 0 | 0.129621 |
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e55-x20-a14-sl3.0-tp6.0-mh60-lev1-pos1 | ETH-USDT-SWAP | lev1-pos1 | 12 | 1.75738 | 0.183175 | 0.266367 | 0.687681 | -0.0722148 | 0.0235816 | 0 | 0.220316 |
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e55-x20-a14-sl3.0-tp6.0-mh60-lev2-pos0.5 | ETH-USDT-SWAP | lev2-pos0.5 | 12 | 1.75738 | 0.183175 | 0.266367 | 0.687681 | -0.0722148 | 0.0235816 | 0 | 0.220316 |
| ETH-USDT-SWAP-1D-ema_cross-f30-s120-e55-x20-a14-sl3.0-tp6.0-mh60-lev1-pos0.5 | ETH-USDT-SWAP | lev1-pos0.5 | 12 | 0.740212 | 0.0962257 | 0.143926 | 0.668578 | -0.0355557 | 0.0117908 | 0 | 0.125975 |
| name | symbol | bar | family | risk | trades | rolling_3y_start | rolling_3y_end | rolling_3y_total_return | rolling_3y_annualized_return | rolling_3y_max_drawdown | rolling_3y_calmar |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ETH-USDT-SWAP-1D-trend_pullback-f20-s80-e20-x10-a14-sl3.0-tp6.0-mh60-lev2-pos0.5 | ETH-USDT-SWAP | 1D | trend_pullback | lev2-pos0.5 | 121 | 2021-11-30 | 2024-11-30 | -0.859693 | -0.48006 | 0.859693 | -0.558409 |
| ETH-USDT-SWAP-1D-trend_pullback-f20-s80-e20-x10-a14-sl3.0-tp6.0-mh60-lev1-pos1 | ETH-USDT-SWAP | 1D | trend_pullback | lev1-pos1 | 121 | 2021-11-30 | 2024-11-30 | -0.859693 | -0.48006 | 0.859693 | -0.558409 |
| ETH-USDT-SWAP-4H-trend_pullback-f50-s200-e55-x20-a14-sl2.0-tp4.0-mh120-lev1-pos1 | ETH-USDT-SWAP | 4H | trend_pullback | lev1-pos1 | 557 | 2021-04-30 | 2024-04-30 | -0.858988 | -0.479192 | 0.876999 | -0.546399 |
| ETH-USDT-SWAP-4H-trend_pullback-f50-s200-e55-x20-a14-sl2.0-tp4.0-mh120-lev2-pos0.5 | ETH-USDT-SWAP | 4H | trend_pullback | lev2-pos0.5 | 557 | 2021-04-30 | 2024-04-30 | -0.858988 | -0.479192 | 0.876999 | -0.546399 |
| BTC-USDT-SWAP-4H-trend_pullback-f20-s80-e20-x10-a14-sl2.0-tp4.0-mh120-lev1-pos1 | BTC-USDT-SWAP | 4H | trend_pullback | lev1-pos1 | 805 | 2020-02-29 | 2023-02-28 | -0.847692 | -0.46596 | 0.852059 | -0.546864 |
| BTC-USDT-SWAP-4H-trend_pullback-f20-s80-e20-x10-a14-sl2.0-tp4.0-mh120-lev2-pos0.5 | BTC-USDT-SWAP | 4H | trend_pullback | lev2-pos0.5 | 805 | 2020-02-29 | 2023-02-28 | -0.847692 | -0.46596 | 0.852059 | -0.546864 |
| ETH-USDT-SWAP-1D-trend_pullback-f20-s80-e55-x20-a14-sl2.0-tp4.0-mh60-lev2-pos0.5 | ETH-USDT-SWAP | 1D | trend_pullback | lev2-pos0.5 | 101 | 2021-11-30 | 2024-11-30 | -0.837287 | -0.453764 | 0.837287 | -0.541945 |
| ETH-USDT-SWAP-1D-trend_pullback-f20-s80-e55-x20-a14-sl2.0-tp4.0-mh60-lev1-pos1 | ETH-USDT-SWAP | 1D | trend_pullback | lev1-pos1 | 101 | 2021-11-30 | 2024-11-30 | -0.837287 | -0.453764 | 0.837287 | -0.541945 |
| BTC-USDT-SWAP-4H-trend_pullback-f20-s80-e55-x20-a14-sl2.0-tp4.0-mh120-lev1-pos1 | BTC-USDT-SWAP | 4H | trend_pullback | lev1-pos1 | 642 | 2020-02-29 | 2023-02-28 | -0.834882 | -0.451389 | 0.842233 | -0.535943 |
| BTC-USDT-SWAP-4H-trend_pullback-f20-s80-e55-x20-a14-sl2.0-tp4.0-mh120-lev2-pos0.5 | BTC-USDT-SWAP | 4H | trend_pullback | lev2-pos0.5 | 642 | 2020-02-29 | 2023-02-28 | -0.834882 | -0.451389 | 0.842233 | -0.535943 |
| ETH-USDT-SWAP-4H-trend_pullback-f50-s200-e20-x10-a14-sl2.0-tp4.0-mh120-lev2-pos0.5 | ETH-USDT-SWAP | 4H | trend_pullback | lev2-pos0.5 | 657 | 2021-04-30 | 2024-04-30 | -0.831307 | -0.447158 | 0.852854 | -0.524308 |
| ETH-USDT-SWAP-4H-trend_pullback-f50-s200-e20-x10-a14-sl2.0-tp4.0-mh120-lev1-pos1 | ETH-USDT-SWAP | 4H | trend_pullback | lev1-pos1 | 657 | 2021-04-30 | 2024-04-30 | -0.831307 | -0.447158 | 0.852854 | -0.524308 |
| ETH-USDT-SWAP-1D-trend_pullback-f20-s80-e20-x10-a14-sl2.0-tp4.0-mh60-lev2-pos0.5 | ETH-USDT-SWAP | 1D | trend_pullback | lev2-pos0.5 | 130 | 2021-11-30 | 2024-11-30 | -0.827911 | -0.443477 | 0.827911 | -0.535657 |
| ETH-USDT-SWAP-1D-trend_pullback-f20-s80-e20-x10-a14-sl2.0-tp4.0-mh60-lev1-pos1 | ETH-USDT-SWAP | 1D | trend_pullback | lev1-pos1 | 130 | 2021-11-30 | 2024-11-30 | -0.827911 | -0.443477 | 0.827911 | -0.535657 |
| ETH-USDT-SWAP-4H-trend_pullback-f50-s200-e20-x10-a14-sl3.0-tp6.0-mh120-lev2-pos0.5 | ETH-USDT-SWAP | 4H | trend_pullback | lev2-pos0.5 | 595 | 2022-01-31 | 2025-01-31 | -0.827748 | -0.443301 | 0.852433 | -0.520042 |
| ETH-USDT-SWAP-4H-trend_pullback-f50-s200-e20-x10-a14-sl3.0-tp6.0-mh120-lev1-pos1 | ETH-USDT-SWAP | 4H | trend_pullback | lev1-pos1 | 595 | 2022-01-31 | 2025-01-31 | -0.827748 | -0.443301 | 0.852433 | -0.520042 |
Yearly and bull/bear phase metrics are written to the periods CSV. Monthly returns are written to the monthly CSV.