SniperGold_ML/docs/P2_6_CORRECTED_BASELINE_REPORT.md

4.4 KiB

P2.6 CORRECTED BASELINE REPORT — SNIPERGOLD_ML

Date: 2026-08-21
Status: COMPLETE — baseline corrected TRUSTED; structural finding: offline→runtime gap gone, static MLP signal weak (~0.51) under runtime-consistent semantics

A. P2 Source Checkpoint

P2 commit          : 8d330343af688e2de2b2a1d12ce19a582714709a (pushed, tree clean)
Feature contract   : FEATURE_CONTRACT.md v1.0 (C44CC6F2B740C32D06F776BD7C3E669...)
Runtime SHA        : BTTFBias fixed (GetBar(need-1-i)), dump 5F8AB5CB6EFD...
Dataset            : Files\AlgoForge\Data\XAUUSD_*.npz (HFM XAUUSD, runtime-consistent)

B. Training

Model        : MLP 19 -> 12 -> 2
Seed         : 42
Train N      : 99070
Validation N : 17483
Purge        : 24 (H_LABEL) — max_train_end=148103 < min_test_start=148105 OK
Test N       : 38828
Best epoch   : 0

C. Metrics

VAL LONG  : 0.5253
VAL SHORT : 0.5150
TEST LONG : 0.5105
TEST SHORT: 0.5063

D. Calibration (Platt, fitted on validation)

LONG : A=0.5724 B=0.0904
SHORT: A=0.4614 B=-0.1083

E. Runtime Parity (P2.5, model inference mechanism unchanged)

Feature parity   : 17/19 exact, 14 documented exception rows (0.09%)
Prediction parity: PASS (2 exception rows, tol 6e-5 CSV rounding)
Exception rows   : f0/f1 (2, daily-break cache), f13 (11, tick source), f18 (1 derived)

F. Same-Feed Runtime AUC (EA P26 mode 0, XAUUSD 2026.01.01-08.20)

LONG  : 0.5019   (offline test 0.5105, d = -0.0086)
SHORT : 0.5165   (offline test 0.5063, d = +0.0102)
Sample: 11796 (bull 5902 / bear 5894)

Offline and runtime are CONSISTENT (Δ < 0.011) — the main P2.6 validation.

G. Cross-Feed AUC (old deployment feed)

Old runtime cross-feed (buggy EA + old freeze): LONG 0.5305 | SHORT 0.5487
P2.6 corrected runtime (same feed):             LONG 0.5019 | SHORT 0.5165
Old offline baseline (XAUUSDc, buggy semantics): LONG 0.6582 | SHORT 0.6582  -> SUPERSEDED

H. Diagnosis (evidence-backed)

CLASSIFICATION: D — MODEL TRAINING DISTRIBUTION (semantics bug), not a feature/state/window bug.

Decisive evidence (SAME XAUUSD data, identical label/split/seed/architecture):
  OLD py_full semantics  : VAL 0.6483/0.6483  TEST 0.6710/0.6710  best_ep=43
  CORRECTED semantics    : VAL 0.5253/0.5150  TEST 0.5105/0.5063  best_ep=0
  -> corrected semantics removes the signal (corrected f10/f11 ~constant 0:
     mean 0.0045/0.0082 vs old 0.7113/0.9858; windowed structure sparser).

Old-gap conclusion (0.66 offline vs 0.53 runtime):
  the old model was trained on features NEVER computed at runtime (lag-50 HTF bias,
  EQH/EQL same-type+ATR@pivot, full-history structure) -> offline AUC INFLATED.
  Runtime always computed near-corrected features -> honest AUC 0.53.
  After P2.6, corrected offline (0.51) ≈ runtime (0.50-0.52) — GAP GONE.

I. Trade Backtest

NOT RUN (per protocol: AUC diagnosis first; PF is not evidence).

J. Evidence Status

TRUSTED     : P2.6 corrected dataset (e85a08616191fb7ce4bbe79c1754228d...)
              purged split (verified), reproducible training, clean calibration,
              offline≈runtime (Δ<0.011), artifact hashed
SUPERSEDED  : P1 baseline 0.6582/0.6582 & 0.6270/0.6207 (buggy semantics, non-runtime)
INCONCLUSIVE: no new verdict without evidence

K. Recommendation

1. Corrected static MLP baseline: TRUSTED as a runtime-consistent measurement,
   but AUC ~0.51 = NO meaningful edge on the 24-bar ATR label.
2. Old 0.66 = semantics-bug artifact — DO NOT resurrect.
3. Next research question (not optimization): WHY corrected features lose the signal
   — f10/f11 legacy v4.4 ~constant 0 (investigate whether legacy EQH/EQL is truly
   inert, or the 24-bar label needs other features).
4. Do not proceed to LSTM/Regime until this failure mode is understood (P2.6 protocol).
5. P2.6 artifact: Include\SniperGold_ML_p26_corrected.mqh (tag v20260821_p26,
   dataset hash metadata e85a0861...), status NOT YET DEPLOYED.

Artifact

Include\SniperGold_ML_p26_corrected.mqh  (P2.6 model, tag v20260821_p26)
ml/parity/train_p26.py                    (corrected reproducible training)
ml/parity/compare_semantics.py            (decisive OLD vs CORRECTED evidence)
ml/parity/runtime_auc_p26.py              (runtime AUC, same feed)
ml/parity/AlgoForge_bt_prob_p26_XAUUSD_M15.csv
Experts/AlgoForge_Backtest_P26.mq5        (EA with p26 model include, runtime test)