# Chinext50 Backtrader Experiments - Data: `chinext50.csv` (2014-06-18 to 2026-04-03, 2868 bars) - Initial cash: `100000` - Commission: `0.0010` ## Commands - Run all experiments: `python3 chinext50_experiments.py` ## Configs - **TrendRegimeFlatStrategy**: `fast=20`, `slow=60`, `regime=120`, `vol_fast=20`, `vol_slow=60`, `vol_cap=1.1` - **TrendTightVolStrategy**: `fast=20`, `slow=60`, `regime=120`, `vol_fast=20`, `vol_slow=60`, `vol_cap=0.95` - **TrendLooseVolStrategy**: `fast=20`, `slow=60`, `regime=120`, `vol_fast=20`, `vol_slow=60`, `vol_cap=1.25` - **SmaLongFilterTrendStrategy**: `fast=20`, `slow=60`, `regime=120` - **MomentumBasicStrategy**: `mom_short=20`, `mom_long=120` - **MomentumVolTargetBasicStrategy**: `mom_short=20`, `mom_long=120`, `vol_period=30`, `target_vol=0.3`, `max_weight=1.0`, `rebalance_band=0.15` - **MomentumVolTargetLowerTargetStrategy**: `mom_short=20`, `mom_long=120`, `regime=150`, `vol_period=30`, `target_vol=0.25`, `max_weight=1.0`, `rebalance_band=0.15` - **MomentumVolTargetHigherTargetStrategy**: `mom_short=20`, `mom_long=120`, `regime=150`, `vol_period=30`, `target_vol=0.35`, `max_weight=1.0`, `rebalance_band=0.15` - **MomentumRegimeStrategy**: `mom_short=20`, `mom_long=120`, `regime=150` - **MomentumMaFilterStrategy**: `mom_short=20`, `mom_long=120`, `ma_filter=60` - **MomentumAtrTrailBasicStrategy**: `mom_short=20`, `mom_long=120`, `atr_period=20`, `atr_mult=4.0` - **MomentumAtrTrailTighterStrategy**: `mom_short=20`, `mom_long=120`, `regime=150`, `atr_period=20`, `atr_mult=3.0` - **MomentumAtrTrailLooserStrategy**: `mom_short=20`, `mom_long=120`, `regime=150`, `atr_period=20`, `atr_mult=5.0` - **MomentumAtrTrailStrategy**: `mom_short=20`, `mom_long=120`, `regime=150`, `atr_period=20`, `atr_mult=4.0` - **MomentumDefensiveFilterStrategy**: `mom_short=20`, `mom_long=120`, `regime=150`, `vol_fast=20`, `vol_slow=60`, `vol_cap=1.05` - **DonchianRegimeStrategy**: `breakout=55`, `exit_period=30`, `regime=150` - **DonchianRegimeFastStrategy**: `breakout=40`, `exit_period=20`, `regime=150` - **DonchianRegimeSlowStrategy**: `breakout=70`, `exit_period=35`, `regime=150` - **MomentumVolTargetStrategy**: `mom_short=20`, `mom_long=120`, `regime=150`, `vol_period=30`, `target_vol=0.3`, `max_weight=1.0`, `rebalance_band=0.15` - **DonchianBasicStrategy**: `breakout=55`, `exit_period=30` - **DonchianAdxStrategy**: `breakout=55`, `exit_period=30`, `adx_period=14`, `adx_threshold=20.0` - **DonchianAtrTrailStrategy**: `breakout=55`, `exit_period=30`, `atr_period=20`, `atr_mult=4.0` - **DonchianVolTargetStrategy**: `breakout=55`, `exit_period=30`, `vol_period=30`, `target_vol=0.3`, `max_weight=1.0`, `rebalance_band=0.15` - **DonchianHybridVolAtrStrategy**: `breakout=55`, `exit_period=30`, `vol_period=30`, `target_vol=0.3`, `max_weight=1.0`, `rebalance_band=0.15`, `atr_period=20`, `atr_mult=4.0` - **SuperTrendLongMaStrategy**: `supertrend_period=14`, `supertrend_mult=2.0`, `regime=200` - **SuperTrendLongMaFastRegimeStrategy**: `supertrend_period=14`, `supertrend_mult=2.0`, `regime=150` - **SuperTrendBasicStrategy**: `supertrend_period=14`, `supertrend_mult=2.0` - **TsmomLooseThresholdStrategy**: `mom_windows=(60, 120, 240)`, `positive_threshold=1`, `regime=200` - **TsmomBasicStrategy**: `mom_windows=(60, 120)`, `positive_threshold=1` - **TsmomRegimeStrategy**: `mom_windows=(60, 120)`, `positive_threshold=1`, `regime=200` - **KamaBasicStrategy**: `kama_period=30`, `kama_fast=2`, `kama_slow=30` - **KamaTrendStrategy**: `kama_period=30`, `kama_fast=2`, `kama_slow=30`, `regime=120` - **DualThrustBasicStrategy**: `range_period=20`, `k1=0.3`, `k2=0.3` - **DualThrustFastStrategy**: `range_period=15`, `k1=0.3`, `k2=0.3` - **DualThrustSlowStrategy**: `range_period=30`, `k1=0.3`, `k2=0.3` - **DualThrustRegimeStrategy**: `range_period=20`, `k1=0.3`, `k2=0.3`, `regime=120` - **MacdBasicStrategy**: `macd_fast=12`, `macd_slow=26`, `macd_signal=9` - **MacdLongMaFastRegimeStrategy**: `macd_fast=12`, `macd_slow=26`, `macd_signal=9`, `regime=150` - **MacdLongMaStrategy**: `macd_fast=12`, `macd_slow=26`, `macd_signal=9`, `regime=120` ## Metrics | Strategy | Final Value | Total Return | Annual Return | Sharpe | Max DD | Entries | Closed Trades | Win Rate | Avg Exposure | | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | TrendRegimeFlatStrategy | 200749.92 | 100.75% | 6.31% | 0.251 | 40.36% | 48 | 48 | 39.58% | 26.80% | | TrendTightVolStrategy | 105167.73 | 5.17% | 0.44% | -0.04 | 36.07% | 49 | 49 | 48.98% | 17.84% | | TrendLooseVolStrategy | 180294.34 | 80.29% | 5.32% | 0.213 | 57.20% | 43 | 43 | 30.23% | 33.79% | | SmaLongFilterTrendStrategy | 191020.05 | 91.02% | 5.85% | 0.231 | 60.73% | 36 | 36 | 30.56% | 37.97% | | MomentumBasicStrategy | 302900.87 | 202.90% | 10.23% | 0.315 | 37.29% | 85 | 85 | 35.29% | 27.89% | | MomentumVolTargetBasicStrategy | 347255.98 | 247.26% | 11.56% | 0.379 | 34.80% | 87 | 85 | 41.18% | 25.83% | | MomentumVolTargetLowerTargetStrategy | 331107.17 | 231.11% | 11.09% | 0.415 | 36.55% | 78 | 74 | 36.49% | 22.64% | | MomentumVolTargetHigherTargetStrategy | 289653.47 | 189.65% | 9.80% | 0.338 | 43.13% | 73 | 73 | 35.62% | 24.61% | | MomentumRegimeStrategy | 331339.70 | 231.34% | 11.10% | 0.376 | 42.25% | 69 | 69 | 36.23% | 25.99% | | MomentumMaFilterStrategy | 254309.95 | 154.31% | 8.55% | 0.287 | 44.36% | 73 | 73 | 35.62% | 24.45% | | MomentumAtrTrailBasicStrategy | 248913.56 | 148.91% | 8.34% | 0.255 | 35.80% | 97 | 97 | 36.08% | 27.06% | | MomentumAtrTrailTighterStrategy | 184844.27 | 84.84% | 5.55% | 0.218 | 45.04% | 94 | 94 | 40.43% | 24.41% | | MomentumAtrTrailLooserStrategy | 289373.74 | 189.37% | 9.79% | 0.35 | 45.57% | 75 | 75 | 38.67% | 25.48% | | MomentumAtrTrailStrategy | 301242.39 | 201.24% | 10.17% | 0.344 | 41.97% | 80 | 80 | 42.50% | 24.97% | | MomentumDefensiveFilterStrategy | 174139.22 | 74.14% | 4.99% | 0.213 | 32.27% | 74 | 74 | 40.54% | 16.74% | | DonchianRegimeStrategy | 362600.70 | 262.60% | 11.98% | 0.44 | 40.47% | 20 | 20 | 45.00% | 25.98% | | DonchianRegimeFastStrategy | 288816.80 | 188.82% | 9.77% | 0.351 | 36.17% | 29 | 29 | 34.48% | 26.86% | | DonchianRegimeSlowStrategy | 278840.33 | 178.84% | 9.43% | 0.353 | 42.29% | 18 | 18 | 33.33% | 28.46% | | MomentumVolTargetStrategy | 361493.22 | 261.49% | 11.95% | 0.419 | 37.62% | 74 | 72 | 38.89% | 24.21% | | DonchianBasicStrategy | 266380.71 | 166.38% | 8.99% | 0.327 | 53.55% | 19 | 19 | 42.11% | 33.68% | | DonchianAdxStrategy | 209771.69 | 109.77% | 6.73% | 0.262 | 47.26% | 16 | 16 | 37.50% | 29.89% | | DonchianAtrTrailStrategy | 319679.78 | 219.68% | 10.75% | 0.327 | 27.09% | 32 | 32 | 53.12% | 22.30% | | DonchianVolTargetStrategy | 264861.38 | 164.86% | 8.94% | 0.324 | 48.37% | 30 | 20 | 45.00% | 32.56% | | DonchianHybridVolAtrStrategy | 286192.79 | 186.19% | 9.68% | 0.328 | 31.30% | 34 | 33 | 57.58% | 20.37% | | SuperTrendLongMaStrategy | 243213.49 | 143.21% | 8.12% | 0.283 | 28.83% | 84 | 84 | 45.24% | 24.77% | | SuperTrendLongMaFastRegimeStrategy | 182682.80 | 82.68% | 5.44% | 0.203 | 45.77% | 99 | 99 | 36.36% | 27.56% | | SuperTrendBasicStrategy | 171373.65 | 71.37% | 4.85% | 0.2 | 60.46% | 164 | 164 | 35.37% | 51.39% | | TsmomLooseThresholdStrategy | 105001.15 | 5.00% | 0.43% | 0.067 | 65.87% | 31 | 30 | 23.33% | 40.25% | | TsmomBasicStrategy | 177287.00 | 77.29% | 5.16% | 0.205 | 69.79% | 62 | 61 | 42.62% | 56.38% | | TsmomRegimeStrategy | 198638.31 | 98.64% | 6.22% | 0.222 | 63.63% | 26 | 25 | 24.00% | 40.59% | | KamaBasicStrategy | 136162.13 | 36.16% | 2.75% | 0.164 | 64.11% | 122 | 122 | 33.61% | 45.69% | | KamaTrendStrategy | 180932.59 | 80.93% | 5.35% | 0.207 | 48.38% | 89 | 89 | 31.46% | 32.71% | | DualThrustBasicStrategy | 739254.80 | 639.25% | 19.22% | 0.501 | 37.27% | 51 | 51 | 43.14% | 40.20% | | DualThrustFastStrategy | 187601.28 | 87.60% | 5.68% | 0.218 | 47.36% | 91 | 91 | 35.16% | 38.72% | | DualThrustSlowStrategy | 366127.99 | 266.13% | 12.08% | 0.409 | 55.03% | 31 | 31 | 38.71% | 45.50% | | DualThrustRegimeStrategy | 491771.44 | 391.77% | 15.02% | 0.405 | 34.04% | 36 | 36 | 47.22% | 26.24% | | MacdBasicStrategy | 263245.27 | 163.25% | 8.88% | 0.323 | 57.37% | 105 | 105 | 40.95% | 48.67% | | MacdLongMaFastRegimeStrategy | 194952.18 | 94.95% | 6.04% | 0.233 | 48.59% | 74 | 74 | 39.19% | 23.37% | | MacdLongMaStrategy | 266977.38 | 166.98% | 9.01% | 0.347 | 39.78% | 72 | 72 | 44.44% | 23.28% | ## Verdict - Highest annual return: **DualThrustBasicStrategy** (19.22% annual return, 37.27% max DD) - Best risk-adjusted balance by Sharpe: **DualThrustBasicStrategy** (Sharpe 0.501, 19.22% annual return, 37.27% max DD) - Best Sharpe with max DD <= 35%: **DualThrustRegimeStrategy** (Sharpe 0.405, 15.02% annual return, 34.04% max DD) - New-strategy return leader: **DualThrustBasicStrategy** beat the prior return leader **DonchianRegimeStrategy** (19.22% vs 11.98% annual return) - New-strategy Sharpe leader: **DualThrustBasicStrategy** beat the prior Sharpe leader **DonchianRegimeStrategy** (Sharpe 0.501 vs 0.44) - Most defensive new addition: **DonchianAtrTrailStrategy** delivered the lowest max DD among the new strategies with 27.09% max DD, 10.75% annual return, and 53.12% win rate.