
************************************************************
*                                                          *
*              OPTIMIZATION COMPLETE                       *
*   Study : gold_regime_x_small_headway_cent              *
*   Trials: 200                                           *
*   Best  : +1.7352                                       *
*                                                          *
************************************************************


=== Best Result [H1] ===
Score:         1.735
Broker:        headway_cent  |  Balance: $15  |  WFO mode: standard
Best Params:
  obs_cov: 0.9321251372950005
  trans_cov: 0.004603307301112349
  n_states: 4
  max_depth: 4
  reg_alpha: 0.319900974283491
  reg_lambda: 0.17782250902035257
  min_child_weight: 25
  learning_rate: 0.022607714893612768
  n_estimators: 50
  subsample: 0.798051539915732
  colsample_bytree: 0.5851453122273682
  gamma: 0.0103967818333213
  scale_pos_weight: 0.9585264413646426
PS C:\GoldRegime_X> python main.py --mode train --tf H1 --broker headway_cent --balance 15
[2026-05-16 20:03:03,813 INFO] main: Using Optuna best params [H1/headway_cent]: {'obs_cov': 0.9321251372950005, 'trans_cov': 0.004603307301112349, 'n_states': 4, 'max_depth': 4, 'reg_alpha': 0.319900974283491, 'reg_lambda': 0.17782250902035257, 'min_child_weight': 25, 'learning_rate': 0.022607714893612768, 'n_estimators': 50, 'subsample': 0.798051539915732, 'colsample_bytree': 0.5851453122273682, 'gamma': 0.0103967818333213, 'scale_pos_weight': 0.9585264413646426}
[2026-05-16 20:03:04,027 INFO] src.processor: Loaded 126451 rows from data\raw\XAU_1h_data.csv
[2026-05-16 20:03:04,037 INFO] src.processor: Filtered to last 10 years: 58427 rows (0 low-volume bars removed)
[2026-05-16 20:03:07,479 INFO] src.processor: GMM saved: gmm_H1_headway_cent.pkl | Scaler: scaler_H1_headway_cent.pkl
[2026-05-16 20:03:07,664 INFO] src.processor: Loaded usdchf_log_return master: 100000 rows from USDCHF_master.csv
[2026-05-16 20:03:07,697 INFO] src.processor: USDCHF [H1] merged: 58427 non-null usdchf_log_return values.
[2026-05-16 20:03:07,821 INFO] src.processor: Loaded xagusd_log_return master: 61108 rows from XAGUSD_master.csv
[2026-05-16 20:03:07,846 INFO] src.processor: XAGUSD [H1] merged: 58427 non-null xagusd_log_return values.
[2026-05-16 20:03:07,979 INFO] src.processor: Loaded xtiusd_log_return master: 54527 rows from XTIUSD_master.csv
[2026-05-16 20:03:08,002 INFO] src.processor: XTIUSD [H1] merged: 53448 non-null xtiusd_log_return values.
[2026-05-16 20:03:08,026 INFO] src.processor: Pipeline [H1] complete: 58407 rows, columns: ['Open', 'High', 'Low', 'Close', 'Volume', 'log_return', 'kalman_return', 'volatility', 'rsi', 'rsi_slope', 'atr_normalized', 'gmm_vol_cluster', 'usdchf_log_return', 'xagusd_log_return', 'xtiusd_log_return', 'synth_vix_zscore']
[2026-05-16 20:03:08,330 INFO] src.processor: Saved processed data to data\processed\gold_h1_processed.parquet
[2026-05-16 20:03:15,415 INFO] src.engine_hmm: Transition Matrix:
[2026-05-16 20:03:15,415 INFO] src.engine_hmm:              Bull      Bear  Chop_Low  Chop_High
[2026-05-16 20:03:15,415 INFO] src.engine_hmm:     Bull   0.9574    0.0017    0.0251    0.0158
[2026-05-16 20:03:15,416 INFO] src.engine_hmm:     Bear   0.0023    0.9724    0.0007    0.0245
[2026-05-16 20:03:15,416 INFO] src.engine_hmm: Chop_Low   0.0222    0.0014    0.9720    0.0044
[2026-05-16 20:03:15,416 INFO] src.engine_hmm: Chop_High   0.0271    0.0056    0.0038    0.9635
[2026-05-16 20:03:15,416 INFO] src.engine_hmm: State means (scaled: kalman_return, volatility, rsi_slope):
[2026-05-16 20:03:15,417 INFO] src.engine_hmm:   Bull: return=0.073464, vol=-0.205455, rsi_slope=0.004513
[2026-05-16 20:03:15,417 INFO] src.engine_hmm:   Bear: return=-0.184902, vol=2.136550, rsi_slope=-0.010461
[2026-05-16 20:03:15,417 INFO] src.engine_hmm:   Chop_Low: return=-0.021650, vol=-0.637116, rsi_slope=-0.002644
[2026-05-16 20:03:15,417 INFO] src.engine_hmm:   Chop_High: return=-0.005039, vol=0.393932, rsi_slope=0.001174
[2026-05-16 20:03:15,418 INFO] src.engine_hmm: Total regime transitions: 2332
[2026-05-16 20:03:15,419 INFO] src.engine_hmm: REGIME CHANGE at 2016-04-11 22:00:00: Chop_High -> Bull
[2026-05-16 20:03:15,419 INFO] src.engine_hmm: REGIME CHANGE at 2016-04-12 19:00:00: Bull -> Chop_High
[2026-05-16 20:03:15,419 INFO] src.engine_hmm: REGIME CHANGE at 2016-04-13 11:00:00: Chop_High -> Bull
[2026-05-16 20:03:15,419 INFO] src.engine_hmm: REGIME CHANGE at 2016-04-14 03:00:00: Bull -> Chop_High
[2026-05-16 20:03:15,420 INFO] src.engine_hmm: REGIME CHANGE at 2016-04-15 12:00:00: Chop_High -> Bull
[2026-05-16 20:03:15,420 INFO] src.engine_hmm: REGIME CHANGE at 2016-04-18 16:00:00: Bull -> Chop_High
[2026-05-16 20:03:15,421 INFO] src.engine_hmm: REGIME CHANGE at 2016-04-20 12:00:00: Chop_High -> Bull
[2026-05-16 20:03:15,421 INFO] src.engine_hmm: REGIME CHANGE at 2016-04-21 08:00:00: Bull -> Chop_High
[2026-05-16 20:03:15,421 INFO] src.engine_hmm: REGIME CHANGE at 2016-04-21 16:00:00: Chop_High -> Bear
[2026-05-16 20:03:15,422 INFO] src.engine_hmm: REGIME CHANGE at 2016-04-22 13:00:00: Bear -> Bull
[2026-05-16 20:03:15,470 INFO] src.engine_xgb: Features prepared: 58367 samples, 9 features: ['hmm_state', 'gmm_vol_cluster', 'rsi_slope', 'atr_normalized', 'prev_log_return', 'usdchf_log_return', 'xagusd_log_return', 'xtiusd_log_return', 'synth_vix_zscore']
[2026-05-16 20:03:15,472 INFO] src.processor: Feature scaler saved: feature_scaler_H1_headway_cent.pkl
[2026-05-16 20:03:15,597 INFO] src.engine_xgb: XGB Train Acc: 0.5757 | Test Acc: 0.5757
[2026-05-16 20:03:15,598 INFO] src.engine_xgb: Feature importance: {'hmm_state': np.float32(0.06483526), 'gmm_vol_cluster': np.float32(0.09616215), 'rsi_slope': np.float32(0.06623433), 'atr_normalized': np.float32(0.071258895), 'prev_log_return': np.float32(0.06528759), 'usdchf_log_return': np.float32(0.43032253), 'xagusd_log_return': np.float32(0.06551867), 'xtiusd_log_return': np.float32(0.06990036), 'synth_vix_zscore': np.float32(0.07048019)}
[2026-05-16 20:03:15,598 INFO] src.engine_xgb: Trained vol-bucket 'low': 19261 samples.
[2026-05-16 20:03:15,714 INFO] src.engine_xgb: XGB Train Acc: 0.5760 | Test Acc: 0.5760
[2026-05-16 20:03:15,715 INFO] src.engine_xgb: Feature importance: {'hmm_state': np.float32(0.09538614), 'gmm_vol_cluster': np.float32(0.081925966), 'rsi_slope': np.float32(0.06854473), 'atr_normalized': np.float32(0.08267128), 'prev_log_return': np.float32(0.06812458), 'usdchf_log_return': np.float32(0.37262455), 'xagusd_log_return': np.float32(0.07576584), 'xtiusd_log_return': np.float32(0.074022815), 'synth_vix_zscore': np.float32(0.0809341)}
[2026-05-16 20:03:15,715 INFO] src.engine_xgb: Trained vol-bucket 'med': 19261 samples.
[2026-05-16 20:03:15,834 INFO] src.engine_xgb: XGB Train Acc: 0.5735 | Test Acc: 0.5735
[2026-05-16 20:03:15,834 INFO] src.engine_xgb: Feature importance: {'hmm_state': np.float32(0.09775019), 'gmm_vol_cluster': np.float32(0.05600933), 'rsi_slope': np.float32(0.08452174), 'atr_normalized': np.float32(0.097091965), 'prev_log_return': np.float32(0.07635064), 'usdchf_log_return': np.float32(0.34897852), 'xagusd_log_return': np.float32(0.08847401), 'xtiusd_log_return': np.float32(0.07628185), 'synth_vix_zscore': np.float32(0.07454169)}
[2026-05-16 20:03:15,834 INFO] src.engine_xgb: Trained vol-bucket 'high': 19845 samples.
[2026-05-16 20:03:15,835 INFO] src.engine_xgb: Ensemble trained: buckets={'low': 19261, 'med': 19261, 'high': 19845}  thresholds=(-0.42149, 0.21212)  features=['hmm_state', 'gmm_vol_cluster', 'rsi_slope', 'atr_normalized', 'prev_log_return', 'usdchf_log_return', 'xagusd_log_return', 'xtiusd_log_return', 'synth_vix_zscore']
[2026-05-16 20:03:16,008 INFO] src.engine_xgb:   Regime stats  state=0  mean=0.5082  std=0.0311  n=19668
[2026-05-16 20:03:16,009 INFO] src.engine_xgb:   Regime stats  state=1  mean=0.5018  std=0.0305  n=5032
[2026-05-16 20:03:16,010 INFO] src.engine_xgb:   Regime stats  state=2  mean=0.5022  std=0.0318  n=19473
[2026-05-16 20:03:16,012 INFO] src.engine_xgb:   Regime stats  state=3  mean=0.5078  std=0.0293  n=14194
[2026-05-16 20:03:16,140 INFO] src.backtester: Backtest [H1]: Sharpe=0.897 | MaxDD=0.038 | WR=0.655 | Return=27.0% | Trades=142
[2026-05-16 20:03:16,140 INFO] src.backtester: headway_cent: account=$15.00 | costs=0.0004/trade
[2026-05-16 20:03:16,217 INFO] src.engine_hmm: HMM model saved to models\hmm_model_H1_headway_cent.pkl
[2026-05-16 20:03:16,226 INFO] src.engine_xgb: Ensemble saved to models\xgb_ensemble_H1_headway_cent.pkl

=== Training Results [H1] ===
Broker: headway_cent | Balance: $15 | Tier: small
Full-data model trained on 100% of available bars (CPCV validation via optimize step).
Full-period Sharpe: 0.897 | MaxDD: 3.8% | WR: 65.5% | Trades: 142