2026-08-22 06:26:20 +07:00 | | | # P2.6 CORRECTED BASELINE REPORT — SNIPERGOLD_ML
|
| | |
|
2026-08-22 17:21:46 +07:00 | | | 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**
|
2026-08-22 06:26:20 +07:00 | | |
|
| | | ## A. P2 Source Checkpoint
|
| | |
|
| | | ```text
|
| | | 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
|
| | |
|
| | | ```text
|
| | | 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
|
| | |
|
| | | ```text
|
| | | VAL LONG : 0.5253
|
| | | VAL SHORT : 0.5150
|
| | | TEST LONG : 0.5105
|
| | | TEST SHORT: 0.5063
|
| | | ```
|
| | |
|
2026-08-22 17:21:46 +07:00 | | | ## D. Calibration (Platt, fitted on validation)
|
2026-08-22 06:26:20 +07:00 | | |
|
| | | ```text
|
| | | LONG : A=0.5724 B=0.0904
|
| | | SHORT: A=0.4614 B=-0.1083
|
| | | ```
|
| | |
|
2026-08-22 17:21:46 +07:00 | | | ## E. Runtime Parity (P2.5, model inference mechanism unchanged)
|
2026-08-22 06:26:20 +07:00 | | |
|
| | | ```text
|
2026-08-22 17:21:46 +07:00 | | | 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)
|
2026-08-22 06:26:20 +07:00 | | | ```
|
| | |
|
| | | ## F. Same-Feed Runtime AUC (EA P26 mode 0, XAUUSD 2026.01.01-08.20)
|
| | |
|
| | | ```text
|
| | | 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)
|
| | | ```
|
| | |
|
2026-08-22 17:21:46 +07:00 | | | Offline and runtime are CONSISTENT (Δ < 0.011) — the main P2.6 validation.
|
2026-08-22 06:26:20 +07:00 | | |
|
2026-08-22 17:21:46 +07:00 | | | ## G. Cross-Feed AUC (old deployment feed)
|
2026-08-22 06:26:20 +07:00 | | |
|
| | | ```text
|
| | | 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)
|
| | |
|
| | | ```text
|
2026-08-22 17:21:46 +07:00 | | | CLASSIFICATION: D — MODEL TRAINING DISTRIBUTION (semantics bug), not a feature/state/window bug.
|
2026-08-22 06:26:20 +07:00 | | |
|
2026-08-22 17:21:46 +07:00 | | | Decisive evidence (SAME XAUUSD data, identical label/split/seed/architecture):
|
2026-08-22 06:26:20 +07:00 | | | 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
|
2026-08-22 17:21:46 +07:00 | | | -> 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.
|
2026-08-22 06:26:20 +07:00 | | | ```
|
| | |
|
| | | ## I. Trade Backtest
|
| | |
|
| | | ```text
|
2026-08-22 17:21:46 +07:00 | | | NOT RUN (per protocol: AUC diagnosis first; PF is not evidence).
|
2026-08-22 06:26:20 +07:00 | | | ```
|
| | |
|
| | | ## J. Evidence Status
|
| | |
|
| | | ```text
|
| | | TRUSTED : P2.6 corrected dataset (e85a08616191fb7ce4bbe79c1754228d...)
|
2026-08-22 17:21:46 +07:00 | | | purged split (verified), reproducible training, clean calibration,
|
2026-08-22 06:26:20 +07:00 | | | offline≈runtime (Δ<0.011), artifact hashed
|
2026-08-22 17:21:46 +07:00 | | | SUPERSEDED : P1 baseline 0.6582/0.6582 & 0.6270/0.6207 (buggy semantics, non-runtime)
|
| | | INCONCLUSIVE: no new verdict without evidence
|
2026-08-22 06:26:20 +07:00 | | | ```
|
| | |
|
| | | ## K. Recommendation
|
| | |
|
| | | ```text
|
2026-08-22 17:21:46 +07:00 | | | 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).
|
2026-08-22 06:26:20 +07:00 | | | 5. P2.6 artifact: Include\SniperGold_ML_p26_corrected.mqh (tag v20260821_p26,
|
2026-08-22 17:21:46 +07:00 | | | dataset hash metadata e85a0861...), status NOT YET DEPLOYED.
|
2026-08-22 06:26:20 +07:00 | | | ```
|
| | |
|
| | | ## Artifact
|
| | |
|
| | | ```text
|
2026-08-22 17:21:46 +07:00 | | | 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)
|
2026-08-22 06:26:20 +07:00 | | | ml/parity/runtime_auc_p26.py (runtime AUC, same feed)
|
| | | ml/parity/AlgoForge_bt_prob_p26_XAUUSD_M15.csv
|
2026-08-22 17:21:46 +07:00 | | | Experts/AlgoForge_Backtest_P26.mq5 (EA with p26 model include, runtime test)
|
2026-08-22 06:26:20 +07:00 | | | ```
|