{ "timestamp": "2026-05-07T13:02:05.351253", "model_config": { "boosting_type": "gbdt", "best_params": { "objective": "multiclass", "num_class": 3, "metric": "multi_logloss", "boosting_type": "gbdt", "verbosity": -1, "random_state": 42, "n_estimators": 500, "num_leaves": 31, "learning_rate": 0.05, "max_depth": -1, "min_child_samples": 20, "subsample": 0.8, "colsample_bytree": 0.8, "reg_alpha": 0.1, "reg_lambda": 0.1, "min_split_gain": 0.01 }, "num_features": 25, "total_features": 40 }, "single_model_metrics": { "model_name": "final", "accuracy": 0.37773487773487774, "macro_f1": 0.37009914507843256, "precision_per_class": [ 0.32879377431906615, 0.49642857142857144, 0.2916666666666667 ], "recall_per_class": [ 0.35208333333333336, 0.44126984126984126, 0.3153153153153153 ], "f1_per_class": [ 0.34004024144869216, 0.4672268907563025, 0.30303030303030304 ], "directional_accuracy": 0.31086519114688127, "classification_report": { "SELL": { "precision": 0.32879377431906615, "recall": 0.35208333333333336, "f1-score": 0.34004024144869216, "support": 480.0 }, "HOLD": { "precision": 0.49642857142857144, "recall": 0.44126984126984126, "f1-score": 0.4672268907563025, "support": 630.0 }, "BUY": { "precision": 0.2916666666666667, "recall": 0.3153153153153153, "f1-score": 0.30303030303030304, "support": 444.0 }, "accuracy": 0.37773487773487774, "macro avg": { "precision": 0.37229633747143476, "recall": 0.3695561633061633, "f1-score": 0.37009914507843256, "support": 1554.0 }, "weighted avg": { "precision": 0.38614608215775537, "recall": 0.37773487773487774, "f1-score": 0.3810281284538593, "support": 1554.0 } }, "confusion_matrix": [ [ 169, 151, 160 ], [ 172, 278, 180 ], [ 173, 131, 140 ] ], "best_iteration": 6 }, "confidence_filtering": { "all": { "accuracy": 0.37773487773487774, "macro_f1": 0.37009914507843256 }, "confidence_0.55": { "accuracy": 0.40540540540540543, "macro_f1": 0.1923076923076923, "coverage": 0.0 }, "confidence_0.65": { "accuracy": 0.40540540540540543, "macro_f1": 0.1923076923076923, "coverage": 0.0 } }, "regime_metrics": { "bull": { "model_name": "regime_bull", "accuracy": 0.28330522765598654, "macro_f1": 0.267104237869703, "precision_per_class": [ 0.270935960591133, 0.5, 0.2630057803468208 ], "recall_per_class": [ 0.3470031545741325, 0.08103130755064457, 0.558282208588957 ], "f1_per_class": [ 0.30428769017980634, 0.13946117274167988, 0.3575638506876228 ], "directional_accuracy": 0.2659380692167577, "classification_report": { "SELL": { "precision": 0.270935960591133, "recall": 0.3470031545741325, "f1-score": 0.30428769017980634, "support": 317.0 }, "HOLD": { "precision": 0.5, "recall": 0.08103130755064457, "f1-score": 0.13946117274167988, "support": 543.0 }, "BUY": { "precision": 0.2630057803468208, "recall": 0.558282208588957, "f1-score": 0.3575638506876228, "support": 326.0 }, "accuracy": 0.28330522765598654, "macro avg": { "precision": 0.344647246979318, "recall": 0.3287722235712447, "f1-score": 0.267104237869703, "support": 1186.0 }, "weighted avg": { "precision": 0.3736311837271945, "recall": 0.28330522765598654, "f1-score": 0.24346747884476885, "support": 1186.0 } }, "confusion_matrix": [ [ 110, 25, 182 ], [ 171, 44, 328 ], [ 125, 19, 182 ] ], "best_iteration": 1 }, "bear": { "model_name": "regime_bear", "accuracy": 0.2554347826086957, "macro_f1": 0.2536029486787063, "precision_per_class": [ 0.4810126582278481, 0.15328467153284672, 0.23026315789473684 ], "recall_per_class": [ 0.2331288343558282, 0.2413793103448276, 0.2966101694915254 ], "f1_per_class": [ 0.3140495867768595, 0.1875, 0.25925925925925924 ], "directional_accuracy": 0.31601731601731603, "classification_report": { "SELL": { "precision": 0.4810126582278481, "recall": 0.2331288343558282, "f1-score": 0.3140495867768595, "support": 163.0 }, "HOLD": { "precision": 0.15328467153284672, "recall": 0.2413793103448276, "f1-score": 0.1875, "support": 87.0 }, "BUY": { "precision": 0.23026315789473684, "recall": 0.2966101694915254, "f1-score": 0.25925925925925924, "support": 118.0 }, "accuracy": 0.2554347826086957, "macro avg": { "precision": 0.2881868292184772, "recall": 0.25703943806406043, "f1-score": 0.2536029486787063, "support": 368.0 }, "weighted avg": { "precision": 0.3231301150708583, "recall": 0.2554347826086957, "f1-score": 0.2665629761880997, "support": 368.0 } }, "confusion_matrix": [ [ 38, 56, 69 ], [ 18, 21, 48 ], [ 23, 60, 35 ] ], "best_iteration": 2 } }, "regime_combined": { "accuracy": 0.2767052767052767, "macro_f1": 0.2652463522200661 }, "top25_features": [ "vix_level", "month", "vix_5d_change", "atr_norm", "dist_52w_low", "adx", "beta_60", "dist_52w_high", "macd_hist", "rolling_vol_20", "rolling_vol_10", "nifty_log_return", "macd_signal", "stoch_d", "rsi_28", "rolling_vol_5", "cci_20", "bb_bandwidth", "obv_norm", "bb_pctb", "rolling_mean_ret_10", "rolling_mean_ret_20", "is_expiry_week", "rolling_mean_ret_5", "rsi_14" ], "shap_top10": [ "vix_level", "month", "vix_5d_change", "atr_norm", "dist_52w_low", "adx", "beta_60", "dist_52w_high", "macd_hist", "rolling_vol_20" ], "india_features_in_top10": [ "vix_level", "vix_5d_change", "beta_60", "dist_52w_high", "dist_52w_low" ], "cv_fold_info": [ { "fold": 1, "accuracy": 0.3719806763285024, "macro_f1": 0.35396474670419026, "best_iteration": 10 }, { "fold": 2, "accuracy": 0.32753623188405795, "macro_f1": 0.26641265670818587, "best_iteration": 12 }, { "fold": 3, "accuracy": 0.3323671497584541, "macro_f1": 0.3104810444860833, "best_iteration": 2 }, { "fold": 4, "accuracy": 0.39710144927536234, "macro_f1": 0.37705502829393306, "best_iteration": 8 }, { "fold": 5, "accuracy": 0.3826086956521739, "macro_f1": 0.3802472962420141, "best_iteration": 13 } ] }