SniperGold_ML/ml/p3/baseline/output/p3_s21_1_summary.json

145 lines
4.2 KiB
JSON

{
"session": "P3-S21.1 feature contribution audit",
"model": {
"primary": "LogisticRegression(C=1.0, L2, max_iter=5000)",
"scaler": "StandardScaler fit on train only per fold",
"seed": 42
},
"reproduction": {
"verified_against": "ml/p3/baseline/output/p3_s20_oos_predictions.csv",
"exact": true,
"max_abs_prob_diff": 0.0,
"tol": 1e-09,
"pooled_oos_roc_recomputed": 0.5791603786527645,
"pooled_oos_roc_committed": 0.5791603786527645
},
"standardization": "StandardScaler z=(x-mean)/std; mean/std fit on THAT fold's TRAINING rows only; std_coef = coefficient on the standardized input; raw_coef = std_coef / scaler.scale_ (back-transformed to original feature units).",
"population": {
"all_setup": 686,
"leads": 594,
"binary_fit": 571,
"win": 167,
"loss": 404
},
"hashes": {
"feature_sha16": "0414e401522ea4e2",
"label_sha16": "b52a80677d5e9b99",
"schema_sha16": "470193a9d372c348"
},
"folds": [
[
0,
300,
300,
395
],
[
0,
395,
395,
490
],
[
0,
490,
490,
571
]
],
"purge_gap_bars": [
555,
472,
321
],
"coefficient_method": "refit frozen logistic per fold; verified OOS probabilities == committed P3-S20 predictions within 1e-09",
"temporal_classification": {
"direction": "STABLE",
"h4_gate": "STABLE",
"m30_gate": "STABLE",
"sweep_age_bars": "INCONCLUSIVE",
"choch_age_bars": "STABLE",
"choch_latency_bars": "VARIABLE",
"zone_type_code": "INCONCLUSIVE",
"zone_age_bars": "INCONCLUSIVE",
"zone_width_atr": "STABLE",
"price_in_zone_offset": "STABLE",
"dist_to_zone_center_atr": "STABLE",
"atr_at_entry": "VARIABLE"
},
"focus_features": [
"direction",
"h4_gate",
"m30_gate",
"price_in_zone_offset",
"dist_to_zone_center_atr"
],
"family_contribution_mass": {
"CONTEXT": 0.245661,
"LIQUIDITY_STRUCTURE": 0.128028,
"ZONE": 0.370136,
"SCALE": 0.079917
},
"focus_by_family": {
"CONTEXT": 3,
"LIQUIDITY_STRUCTURE": 0,
"ZONE": 2,
"SCALE": 0
},
"collinearity": {
"n": 571,
"h4_equals_direction": true,
"m30_equals_direction": true,
"direction_unique": [
-1,
1
],
"unique_combinations": [
[
-1,
-1,
-1
],
[
1,
1,
1
]
],
"note": "STRUCTURAL redundancy by construction (context gates must be direction-compatible for any Candidate Setup); NOT a bug."
},
"structural_redundancy": {
"n": 571,
"direction_equals_h4_equals_m30_every_row": true,
"dist_eq_poz_minus_half_every_row": true,
"choch_latency_eq_sweep_minus_choch_every_row": true,
"zone_type_code_constant": true,
"readiness_note": "These are EXACT structural/affine identities from the verified canonical chain (F3 gates must be direction-compatible; zone-center offset = in-zone offset - 0.5 width; CHoCH latency = sweep age - CHoCH age). They explain identical standardized columns/coefficients; they do NOT make any feature leaky or invalid, and this audit does NOT remove any feature."
},
"zone_atr_semantics": {
"zone_width_atr": {
"definition": "(zone_top - zone_bot) / ATR(entry); 0 if degenerate",
"units": "ATR-ratio (width in ATR multiples)",
"availability": "entry"
},
"price_in_zone_offset": {
"definition": "(entry_price - zone_bot) / zone_width in [0,1]",
"units": "unit interval (position within zone)",
"availability": "entry"
},
"dist_to_zone_center_atr": {
"definition": "(entry_price - (top+bot)/2) / zone_width (signed)",
"units": "zone-width multiples",
"availability": "entry"
},
"atr_at_entry": {
"definition": "rolling 14-bar M15 ATR ending at the entry bar",
"units": "price units",
"availability": "entry"
},
"dependence_on_atr_is_not_leakage": true,
"scale_note": "ATR dependence is contextual scaling, not target leakage: ATR is known at entry; features carry no post-entry or outcome-derived value (P3-S19)."
},
"final_classification": "D_MIXED_CONTRIBUTION",
"git_commit": "7c9602ca4964f42f4ae8b7ac1ea14ab5e49e9176",
"generated_utc": "2026-08-25T09:40:21.367843+00:00"
}