EURUSD | M15 time bars | 2023-01-02 to 2023-04-15
Report Generated: 2026-08-16 11:06
| Features (kept) 44 |
Training Samples 1470 |
Model Role Primary |
| OOB Score 0.9442 |
OOS (neg_log_loss) -1.0025 |
Weighting Scheme return_linear_0.2 |
Feature clusters: 2
Columns contributed by each feature function and how many survived preprocessing (constant/duplicate removal).
| Source | Produced | Kept |
|---|---|---|
| signal_family | 6 | 6 |
| solo_predictor | 1 | 1 |
| price_block | 6 | 6 |
| noise_block | 8 | 8 |
| time_features | 23 | 23 |
No columns dropped in preprocessing.
8 of 8 requested method(s) produced a result. A method that fails is logged and skipped, so this table is the only place a failure is visible.
| Method | Status | Detail |
|---|---|---|
| mdi | ✓ ok | — |
| mda | ✓ ok | — |
| sfi | ✓ ok | — |
| clustered_mdi | ✓ ok | — |
| clustered_mda | ✓ ok | — |
| pca | ✓ ok | — |
| orthogonal | ✓ ok | — |
| fingerprint | ✓ ok | — |
Clustered MDI and MDA assign one score to a whole cluster and broadcast it to every member, so cluster membership determines the result. Very unequal cluster sizes make clustered MDI hard to compare across clusters, because a cluster's score is the sum of its members' impurity reductions.
| Cluster | Size | Members |
|---|---|---|
| Cluster 1 | 35 | vol_20, vol_60, range_pct, vol_ratio, noise_00, noise_01, noise_02, noise_03, noise_04, noise_05, noise_06, noise_07, hour_sin_h1, hour_cos_h1, hour_sin_h2, hour_cos_h2, hour_sin_h3, hour_cos_h3, dayofweek_sin, dayofweek_cos, dayofyear_sin, dayofyear_cos, sydney_session, tokyo_session, london_session, ny_session, session_overlap, sydney_session_vol, tokyo_session_vol, london_session_vol, ny_session_vol, session_overlap_vol, friday_ny_close_vol, sunday_open_vol, month_end_vol |
| Cluster 2 | 9 | sig_zscore, sig_ema, sig_rank, sig_tanh, sig_clip, sig_slope, mom_12, ret_1, ret_5 |
In-sample impurity reduction, normalized to sum to 1. Diluted across correlated features: two copies of one predictor each receive about half its true credit.
| mean | std | |
|---|---|---|
| sig_rank | 0.06352 | 0.00680 |
| sig_zscore | 0.05192 | 0.00662 |
| sig_tanh | 0.04950 | 0.00685 |
| sig_clip | 0.04747 | 0.00663 |
| sig_ema | 0.03814 | 0.00450 |
| ret_5 | 0.03747 | 0.00451 |
| mom_12 | 0.03683 | 0.00404 |
| dayofweek_sin | 0.03462 | 0.00368 |
| london_session_vol | 0.03446 | 0.00338 |
| ny_session_vol | 0.03266 | 0.00261 |
| sydney_session_vol | 0.03059 | 0.00267 |
| vol_60 | 0.03032 | 0.00217 |
| tokyo_session_vol | 0.02944 | 0.00224 |
| dayofyear_sin | 0.02916 | 0.00264 |
| ret_1 | 0.02799 | 0.00335 |
| dayofyear_cos | 0.02760 | 0.00237 |
| sig_slope | 0.02497 | 0.00217 |
| session_overlap_vol | 0.02419 | 0.00179 |
| vol_20 | 0.02353 | 0.00149 |
| vol_ratio | 0.02235 | 0.00135 |
| dayofweek_cos | 0.02085 | 0.00175 |
| sunday_open_vol | 0.01903 | 0.00187 |
| friday_ny_close_vol | 0.01773 | 0.00199 |
| hour_cos_h1 | 0.01546 | 0.00100 |
| noise_07 | 0.01523 | 0.00068 |
| range_pct | 0.01483 | 0.00084 |
| noise_03 | 0.01467 | 0.00072 |
| hour_sin_h1 | 0.01455 | 0.00093 |
| noise_05 | 0.01431 | 0.00073 |
| noise_01 | 0.01424 | 0.00077 |
Out-of-sample degradation when a column is permuted, measured over purged and embargoed folds. Also diluted by substitution, but on the correct side of the train/test split.
| mean | std | |
|---|---|---|
| sig_zscore | 0.04583 | 0.01200 |
| sig_tanh | 0.02823 | 0.00859 |
| sig_rank | 0.02234 | 0.00601 |
| sig_ema | 0.01847 | 0.00715 |
| sig_clip | 0.01677 | 0.01612 |
| dayofweek_sin | 0.01598 | 0.01037 |
| sydney_session_vol | 0.01125 | 0.00325 |
| mom_12 | 0.00997 | 0.00632 |
| ret_1 | 0.00646 | 0.00211 |
| ret_5 | 0.00607 | 0.00426 |
| sig_slope | 0.00485 | 0.00259 |
| hour_sin_h2 | 0.00416 | 0.00142 |
| sunday_open_vol | 0.00400 | 0.00239 |
| sydney_session | 0.00308 | 0.00190 |
| hour_cos_h3 | 0.00258 | 0.00125 |
| vol_ratio | 0.00233 | 0.00325 |
| dayofyear_sin | 0.00190 | 0.00115 |
| session_overlap_vol | 0.00189 | 0.00184 |
| range_pct | 0.00182 | 0.00073 |
| noise_01 | 0.00147 | 0.00166 |
| noise_05 | 0.00118 | 0.00116 |
| noise_03 | 0.00043 | 0.00063 |
| noise_06 | 0.00034 | 0.00083 |
| tokyo_session_vol | -0.00011 | 0.00768 |
| tokyo_session | -0.00023 | 0.00526 |
| month_end_vol | -0.00033 | 0.00033 |
| noise_07 | -0.00086 | 0.00031 |
| dayofyear_cos | -0.00135 | 0.00121 |
| friday_ny_close_vol | -0.00165 | 0.00162 |
| noise_00 | -0.00169 | 0.00081 |
Cluster impurity totals broadcast to every member. Scales with cluster size, so compare clusters of similar size only.
| mean | std | |
|---|---|---|
| range_pct | 0.02471 | 0.00034 |
| vol_20 | 0.02471 | 0.00034 |
| vol_60 | 0.02471 | 0.00034 |
| noise_07 | 0.02471 | 0.00034 |
| noise_06 | 0.02471 | 0.00034 |
| noise_05 | 0.02471 | 0.00034 |
| noise_04 | 0.02471 | 0.00034 |
| noise_03 | 0.02471 | 0.00034 |
| noise_02 | 0.02471 | 0.00034 |
| noise_01 | 0.02471 | 0.00034 |
| noise_00 | 0.02471 | 0.00034 |
| vol_ratio | 0.02471 | 0.00034 |
| dayofweek_cos | 0.02471 | 0.00034 |
| dayofyear_sin | 0.02471 | 0.00034 |
| dayofyear_cos | 0.02471 | 0.00034 |
| sydney_session | 0.02471 | 0.00034 |
| tokyo_session | 0.02471 | 0.00034 |
| london_session | 0.02471 | 0.00034 |
| ny_session | 0.02471 | 0.00034 |
| session_overlap | 0.02471 | 0.00034 |
| sydney_session_vol | 0.02471 | 0.00034 |
| hour_sin_h1 | 0.02471 | 0.00034 |
| hour_cos_h1 | 0.02471 | 0.00034 |
| hour_sin_h2 | 0.02471 | 0.00034 |
| hour_cos_h2 | 0.02471 | 0.00034 |
| hour_sin_h3 | 0.02471 | 0.00034 |
| hour_cos_h3 | 0.02471 | 0.00034 |
| dayofweek_sin | 0.02471 | 0.00034 |
| session_overlap_vol | 0.02471 | 0.00034 |
| tokyo_session_vol | 0.02471 | 0.00034 |
Degradation when every column in a cluster is permuted together. Size-independent, which makes it the safer of the two clustered methods when cluster sizes are unequal.
| mean | std | |
|---|---|---|
| sig_zscore | 0.19270 | 0.04023 |
| sig_ema | 0.19270 | 0.04023 |
| sig_rank | 0.19270 | 0.04023 |
| sig_tanh | 0.19270 | 0.04023 |
| sig_clip | 0.19270 | 0.04023 |
| sig_slope | 0.19270 | 0.04023 |
| mom_12 | 0.19270 | 0.04023 |
| ret_1 | 0.19270 | 0.04023 |
| ret_5 | 0.19270 | 0.04023 |
| vol_20 | 0.00191 | 0.00295 |
| vol_60 | 0.00191 | 0.00295 |
| range_pct | 0.00191 | 0.00295 |
| vol_ratio | 0.00191 | 0.00295 |
| noise_00 | 0.00191 | 0.00295 |
| noise_01 | 0.00191 | 0.00295 |
| noise_02 | 0.00191 | 0.00295 |
| noise_03 | 0.00191 | 0.00295 |
| noise_04 | 0.00191 | 0.00295 |
| noise_05 | 0.00191 | 0.00295 |
| noise_06 | 0.00191 | 0.00295 |
| noise_07 | 0.00191 | 0.00295 |
| hour_sin_h1 | 0.00191 | 0.00295 |
| hour_cos_h1 | 0.00191 | 0.00295 |
| hour_sin_h2 | 0.00191 | 0.00295 |
| hour_cos_h2 | 0.00191 | 0.00295 |
| hour_sin_h3 | 0.00191 | 0.00295 |
| hour_cos_h3 | 0.00191 | 0.00295 |
| dayofweek_sin | 0.00191 | 0.00295 |
| dayofweek_cos | 0.00191 | 0.00295 |
| dayofyear_sin | 0.00191 | 0.00295 |
MDI recomputed on principal components. Importance concentrated in a few components indicates a low-dimensional signal.
| mean | std | |
|---|---|---|
| PC_1 | 0.11023 | 0.00788 |
| PC_2 | 0.05920 | 0.00325 |
| PC_7 | 0.05361 | 0.00280 |
| PC_6 | 0.04949 | 0.00264 |
| PC_4 | 0.04713 | 0.00237 |
| PC_3 | 0.04533 | 0.00231 |
| PC_23 | 0.04054 | 0.00185 |
| PC_5 | 0.04029 | 0.00184 |
| PC_24 | 0.03819 | 0.00164 |
| PC_8 | 0.03609 | 0.00153 |
| PC_25 | 0.03570 | 0.00147 |
| PC_22 | 0.03304 | 0.00132 |
| PC_26 | 0.03255 | 0.00149 |
| PC_11 | 0.03192 | 0.00125 |
| PC_9 | 0.03155 | 0.00134 |
| PC_10 | 0.03131 | 0.00127 |
| PC_20 | 0.02990 | 0.00126 |
| PC_15 | 0.02990 | 0.00118 |
| PC_16 | 0.02989 | 0.00110 |
| PC_13 | 0.02965 | 0.00112 |
| PC_18 | 0.02894 | 0.00119 |
| PC_14 | 0.02773 | 0.00100 |
| PC_12 | 0.02713 | 0.00113 |
| PC_19 | 0.02705 | 0.00127 |
| PC_17 | 0.02695 | 0.00092 |
| PC_21 | 0.02668 | 0.00110 |
Different scale. SFI reports the raw out-of-sample score of a model fitted on one feature alone, not a decrement, so its numbers are not comparable with MDI or MDA. An uninformative feature scores about -1.099, the entropy of the 3-class base rate. Scores far below that line are not necessarily uninformative: a single-feature model that fits its column closely produces confident probabilities and is penalized heavily by log-loss whenever it is wrong, so SFI under log-loss partly measures calibration.
| mean | std | |
|---|---|---|
| tokyo_session | -1.17195 | 0.04995 |
| hour_cos_h3 | -1.18258 | 0.04755 |
| session_overlap | -1.18314 | 0.05291 |
| hour_sin_h2 | -1.18477 | 0.04913 |
| london_session | -1.18699 | 0.04758 |
| hour_sin_h3 | -1.18865 | 0.04857 |
| sydney_session | -1.19289 | 0.05134 |
| ny_session | -1.19297 | 0.05681 |
| hour_cos_h2 | -1.19885 | 0.04282 |
| hour_cos_h1 | -1.21216 | 0.04284 |
| hour_sin_h1 | -1.22047 | 0.05441 |
| month_end_vol | -1.49920 | 0.21174 |
| friday_ny_close_vol | -1.56866 | 0.16274 |
| dayofweek_cos | -3.34642 | 1.79848 |
| sig_rank | -3.83409 | 0.74817 |
| sig_tanh | -4.14208 | 0.43689 |
| sunday_open_vol | -4.38706 | 1.83087 |
| sig_zscore | -4.58817 | 0.33497 |
| sig_clip | -4.99206 | 0.29298 |
| ret_5 | -5.78784 | 0.59821 |
| ret_1 | -5.99929 | 0.48542 |
| noise_07 | -6.06145 | 0.73222 |
| dayofweek_sin | -6.47236 | 1.03775 |
| noise_04 | -6.61709 | 1.03967 |
| mom_12 | -6.64942 | 0.62464 |
| noise_01 | -6.81784 | 1.09666 |
| sig_ema | -6.82643 | 0.51407 |
| sig_slope | -6.83582 | 1.30292 |
| noise_05 | -6.87859 | 0.61181 |
| noise_06 | -7.25720 | 0.98747 |
Dilution is the cluster's total mdi score divided by its best single member's score. A value near 1 means one feature carries the cluster and the naive ranking is trustworthy for it. A value near the cluster size means the credit is split evenly across substitutes, so every member is understated by roughly that factor. Highest here: 17.97×.
| size | clustered_score | naive_total | naive_best_member | top_member | dilution | |
|---|---|---|---|---|---|---|
| Cluster 1 | 35 | 0.0247 | 0.6222 | 0.0346 | dayofweek_sin | 17.9741 |
| Cluster 2 | 9 | 0.0150 | 0.3778 | 0.0635 | sig_rank | 5.9476 |
Dilution is the cluster's total mda score divided by its best single member's score. A value near 1 means one feature carries the cluster and the naive ranking is trustworthy for it. A value near the cluster size means the credit is split evenly across substitutes, so every member is understated by roughly that factor. Highest here: 3.47×.
| size | clustered_score | naive_total | naive_best_member | top_member | dilution | |
|---|---|---|---|---|---|---|
| Cluster 2 | 9 | 0.1927 | 0.1590 | 0.0458 | sig_zscore | 3.4690 |
| Cluster 1 | 35 | 0.0019 | -0.0505 | 0.0160 | dayofweek_sin | -3.1610 |
Correlation between supervised MDI importance and unsupervised PCA eigen-structure. High positive correlation suggests the model's signal is not pure overfitting.
| Correlation | Coefficient | p-value |
|---|---|---|
| Pearson | +0.0151 | 0.61 |
| Spearman | -0.0782 | 0.00811 |
| Kendall | -0.0521 | 0.00905 |
| Weighted_Kendall_Rank | +0.1970 | nan |
Normalised linear vs non-linear partial-dependence effects (Li, Turkington & Yazdani 2019).
| linear | non_linear | |
|---|---|---|
| dayofweek_cos | 0.1180 | 0.0775 |
| dayofweek_sin | 0.1022 | 0.0384 |
| dayofyear_cos | 0.0524 | 0.0448 |
| dayofyear_sin | 0.0452 | 0.0372 |
| friday_ny_close_vol | 0.0306 | 0.0353 |
| hour_cos_h1 | 0.0154 | 0.0186 |
| hour_cos_h2 | 0.0110 | NaN |
| hour_cos_h3 | 0.0141 | NaN |
| hour_sin_h1 | 0.0280 | NaN |
| hour_sin_h2 | 0.0110 | 0.0146 |
| london_session | 0.0251 | NaN |
| london_session_vol | 0.0261 | 0.0719 |
| mom_12 | NaN | 0.0232 |
| month_end_vol | NaN | 0.0529 |
| noise_00 | NaN | 0.0121 |
| noise_03 | 0.0119 | NaN |
| noise_04 | NaN | 0.0126 |
| noise_05 | NaN | 0.0127 |
| noise_07 | NaN | 0.0118 |
| ny_session | 0.0455 | NaN |
| ny_session_vol | 0.0171 | 0.0193 |
| ret_1 | NaN | 0.0243 |
| ret_5 | 0.0095 | 0.0173 |
| session_overlap_vol | 0.0161 | 0.0242 |
| sig_clip | 0.0185 | 0.0286 |
| sig_ema | 0.0087 | 0.0246 |
| sig_rank | 0.1086 | 0.0724 |
| sig_slope | NaN | 0.0175 |
| sig_tanh | 0.0330 | 0.0192 |
| sig_zscore | 0.0165 | 0.0315 |
| sunday_open_vol | 0.0100 | 0.0208 |
| sydney_session | 0.0269 | NaN |
| sydney_session_vol | 0.0189 | 0.0272 |
| tokyo_session | 0.0197 | NaN |
| tokyo_session_vol | 0.0242 | 0.0756 |
| vol_20 | 0.0196 | 0.0182 |
| vol_60 | 0.0254 | 0.0288 |
| vol_ratio | 0.0222 | 0.0116 |