SniperGold_ML/docs/SESSION_HANDOVER_2026-08-23_P3_S17_DATASET_AUDIT.md

5.5 KiB

SESSION HANDOVER — P3-S.17 DATASET AUDIT / LABEL VALIDATION

Date       : 2026-08-23
Session    : P3-S.17 — Dataset Audit / Label Validation
Baseline   : P3-S.16 checkpoint 4b095443077539889f0ac6f0381881d6e4995c73 VERIFIED
             (local == origin/main, branch main, working tree CLEAN)
Scope      : RESEARCH-ONLY audit. XAUUSD M15 2017-01-01..2026-08-20.
Human verif: REMAINS CANCELLED (historical only). NO AUC/PF/backtest/opt.
Verdict    : DATASET BLOCKED — real-data Candidate Setup population is EMPTY
             (0 observations) under the migrated proxy semantics; a secondary
             structural conflict with the frozen P3-S.4 parity guard is noted.
Next gate  : NOT training. FUTURE phase = reconcile real-data SMC detection
             with the frozen MQL5 F3/F1/F2 detectors (get a non-empty faithful
             population) + reconcile the setup-level FVG zone-type namespace
             with the P3-S.4 parity-absence guard; then re-audit.

1. What P3-S.17 established

A. P3-S.16 contract MECHANICS validated:
   unit tests re-run 20/20 PASS (DS-T01..T16 + DS-17..20). Observation unit,
   identity, entry=creation-bar-close, TP-before-SL WIN/LOSS/UNRESOLVED/AMBIGUOUS,
   de-overlap lead-setup-per-episode, no leakage, reproducibility — all hold at
   the contract/test level.

B. REAL-DATA POPULATION = 0 (BLOCKER 1). Across ~194,985 XAUUSD M15 bars, the
   frozen F3 chain never completed under the migrated real-data SMC semantics.
   Root-cause primitive counts: sweep_onsets=84, zone_unmitigated=69,
   m15_entry=1418, choch=194792, h4=194985. The proxy sweep + unmitigated-zone
   detection are far more selective than the frozen detectors -> detection
   fidelity gap, resolved by a FUTURE detector reconciliation (NOT by relaxing
   gates to fabricate setups).

C. SECONDARY structural finding (BLOCKER 2): the real-data extractor references
   "FVG" as a setup zone-type; the frozen P3-S.4 parity guard asserts FVG is
   absent from ml/**/*.py. Merging the extractor would flip P3-S.4 FVG-T20
   (20/20 -> 19/20). The historical suite was NOT modified (§31). Hence the
   extraction scripts were NOT merged into main, and this is recorded as a
   FUTURE reconciliation dependency.

D. Regression: all prior suites remain intact (verified re-run; see §3). The
   two extraction scripts were deliberately NOT merged to preserve the frozen
   P3-S.4 parity invariant.

2. Deliverables

docs/P3_S17_DATASET_AUDIT_LABEL_VALIDATION.md       (audit report; verdict BLOCKED)
ml/p3/setup_dataset/output/p3_s17_dataset_audit.json  (machine record of the audit)
ml/p3/setup_dataset/output/p3_s17_distribution.csv    (generated; gitignored *.csv)
ml/p3/setup_dataset/output/p3_s17_anomalies.csv       (generated; gitignored *.csv)
docs/SESSION_HANDOVER_2026-08-23_P3_S17_DATASET_AUDIT.md (this file)
(Working diagnostic scripts real_setup_extractor.py / dataset_audit.py are kept
 locally but NOT merged, per §H/BLOCKER-2 — see report.)

3. Regression status

Verified re-run after P3-S.17 (historical suites untouched by this session):
P3-S.2 17/17 · P3-S.3 20/20 · P3-S.4 20/20 (kept green — extractor not merged) ·
P3-S.5 20/20 · P3-S.6 20/20 · P3-S.7 22/22 · P3-S.8 25/25 ·
F1 8/8 · F2 20/20 · F3 25/25 · F4 16/16 · P3-S16 20/20.
No historical suite modified or weakened. (P3-S.4 would flip to 19/20 ONLY if
the FVG-referencing extractor were merged; it is not.)

4. Explicitly unchanged areas

- Candidate Setup runtime / F1 / F2 / F4 runtime MTF   unchanged
- Feature Contract (FEATURE_CONTRACT.md)               unchanged
- SniperGold_ML.mqh / weights / labels                 unchanged
- production .mq5/.mqh                                 unchanged
- legacy MLP                                           unchanged (reference only)
- No AUC/PF/backtest/optimization used                 unchanged policy
- Human annotation verification remains CANCELLED

5. Open / deferred for a FUTURE phase (NOT resolved in P3-S.17)

1. Real-data SMC detection reconciliation with the frozen MQL5 F3/F1/F2
   detectors (AF_Engine2_Setup, AF_DetectSweep, AF_DetectChoch, AF_FindFVG,
   AF_FindOrderBlock, Engine-1 closed-bar cache) to obtain a NON-EMPTY, faithful
   Candidate Setup population.
2. Reconcile the setup-level FVG zone-type namespace with the frozen P3-S.4
   parity-absence guard (design a research-namespace boundary), so the guarded
   regression stays green when the real-data extractor is merged.
3. Re-run P3-S.17 audit on the reconciled population.
4. Numeric open parameters (k_tp/k_sl, horizon, split%, purge-gap, W_m3) remain
   OPEN; not optimized.

6. Handoff

DO NOT train ML until the real-data Candidate Setup population is non-empty and
faithful, and the P3-S.4 parity invariant is preserved. A separate FUTURE phase
must resolve the two blockers and re-audit before any baseline training (P3-S.18)
may be considered. The legacy MLP remains frozen reference.

7. Provenance / Checkpoint

Forge HEAD (start)  : 4b095443077539889f0ac6f0381881d6e4995c73 (P3-S.16) VERIFIED
Branch / remote     : main == origin/main
Working tree        : CLEAN at start; CLEAN after P3-S.17 push
Commits             : 706df4c research: audit real setup-level dataset and label distribution
                    : a7d23a7 docs: record P3-S17 dataset validation
P3_S17_FINAL_SHA    : a7d23a7  (to be finalized in the handover-record commit)
Human verification  : CANCELLED

End P3-S.17 handover. Datasets blocked pending detector reconciliation.