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

141 lines
5.4 KiB
Markdown
Raw Permalink Normal View History

# SESSION HANDOVER — P3-S.16 SETUP-LEVEL DATASET / LABEL CONTRACT
```text
Date : 2026-08-23
Session : P3-S.16 — Setup-Level Dataset / Label Contract Implementation
Baseline : P3-S.15 checkpoint acb5f2b56d4e8ba6563076a1ee2687cb2c53f421 VERIFIED
(local == origin/main, branch main, working tree CLEAN)
Scope : RESEARCH-ONLY. Dataset contract + label computation + setup-event
extraction + tests. NO training, NO production change.
Human verif: REMAINS CANCELLED (historical only).
Verdict : CONTRACT COMPLETE WITH OPEN PARAMETERS
(semantics settled; numeric research params explicitly OPEN,
NOT selected by AUC/PF)
Next gate : P3-S.17 = DATASET AUDIT / LABEL VALIDATION.
```
---
## 1. What P3-S.16 established
```text
A. Observation unit = ONE CANDIDATE_SETUP (the only valid training unit;
P3.2.2 §K bar unit FAILED validity). Identity is immutable & causal.
B. Entry timestamp = CLOSE of the CANDIDATE_SETUP creation bar (M15), chosen
on causality. M3 is optional/post-creation and does NOT move entry.
C. Label target = SETUP-OUTCOME (TP-before-SL), SEVERED from the legacy
L1 24-bar/0.75 ATR direction-drift label.
D. Label classes fully defined (WIN / LOSS / UNRESOLVED / AMBIGUOUS) with
entry, TP/SL, horizon, first-hit, same-bar ambiguity, censoring, missing
data, and session/gap behavior. UNRESOLVED is never forced to LOSS;
AMBIGUOUS same-bar never forced to WIN/LOSS.
E. De-overlap redesigned at the SETUP level (lead-setup-per-episode,
analogous P3.2.2 §B adapted to setups) for causally independent
observations; not metric fishing.
F. Sampling: every valid Candidate Setup becomes an observation (natural
population preserved; no random undersampling).
G. Feature snapshot is a contract PROPOSAL (separate Store 2), NOT added to
FEATURE_CONTRACT.md. Feature-as-of strict (causally available at entry).
H. Split / reproducibility requirements defined (temporal split, purge gap,
no label-window overlap, no future info) as FUTURE requirements; split
percentages are OPEN parameters.
I. Test-first implementation in ml/p3/setup_dataset/ with the frozen contract
as ORACLE; spec_oracle == truth, implementation_port == observed. 20/20 PASS.
```
---
## 2. Deliverables created
```text
docs/P3_S16_SETUP_DATASET_CONTRACT_v1.md
docs/P3_S16_LABEL_CONTRACT.md
docs/P3_S16_SETUP_DATASET_IMPLEMENTATION.md
ml/p3/setup_dataset/setup_dataset_contract.py
ml/p3/setup_dataset/spec_tests_setup_dataset.py
ml/p3/setup_dataset/output/p3_s16_dataset_report.json (20/20 PASS)
docs/SESSION_HANDOVER_2026-08-23_P3_S16_SETUP_DATASET.md (this file)
```
---
## 3. Regression status (verified re-run after P3-S.16)
```text
P3-S.2 17/17 · P3-S.7 22/22 · P3-S.8 25/25 · F1 8/8 · F2 20/20 ·
F3 25/25 · F4 16/16 —— all PASS. NO historical suite modified or weakened.
The new setup_dataset test suite (DS-T01..T16 + DS-17..20) = 20/20.
```
---
## 4. Explicitly unchanged areas (§31)
```text
- Candidate Setup runtime unchanged
- F1 event semantics unchanged
- F2 FVG/OB zone semantics unchanged
- F4 runtime MTF unchanged
- Feature Contract (FEATURE_CONTRACT.md) unchanged
- SniperGold_ML.mqh / weights / labels unchanged
- production .mq5/.mqh unchanged
- legacy model unchanged (reference only)
- No AUC/PF/backtest/optimization used
- Human annotation verification remains CANCELLED
```
---
## 5. Open / deferred for P3-S.17 (NOT decided here)
```text
1. DATASET AUDIT / LABEL VALIDATION (P3-S.17): validate the contract against
real price data, compute the actual setup population + label distribution
(without training). Re-measure natural class balance on CANONICAL setups.
2. OPEN NUMERIC PARAMETERS (semantically anchored, NOT optimized):
k_tp/k_sl (default 1.5/0.75; robustness 1.0/1.0), horizon (primary 16 /
robustness 8), split percentages & purge-gap numeric, W_m3 (frozen F3
placeholder). These feed P3-S.17 validation, not AUC selection.
3. Feature-snapshot numeric contract (Store 2) is authored LATER (separate
proposal), never by mutating FEATURE_CONTRACT.md.
4. Training / baseline / temporal / regime / calibration = FUTURE authorized
phases beyond P3-S.17. Legacy MLP remains frozen reference.
```
---
## 6. Handoff
```text
P3-S.17 SHOULD (with separate authorization):
- confirm the P3-S.16 checkpoint (P3_S16_FINAL_SHA below),
- run a dataset AUDIT + LABEL VALIDATION on real data using the contract,
- measure the natural setup population and label distribution truthfully,
- NOT train a model, NOT optimize any numeric by AUC/PF,
- NOT modify the frozen Candidate Setup / F1 / F2 / runtime / FEATURE_CONTRACT.
```
---
## 7. Provenance / Checkpoint
```text
Forge HEAD (start) : acb5f2b56d4e8ba6563076a1ee2687cb2c53f421 (P3-S.15) VERIFIED
Branch / remote : main == origin/main
Working tree : CLEAN at start; CLEAN after P3-S.16 push
Commits : 8d934b4 test: define setup-level dataset and label contract coverage
: dcb4c96 research: implement deterministic setup-level dataset generation
: ef8781f docs: record P3-S.16 setup dataset and label contract
P3_S16_FINAL_SHA : ef8781f (to be finalized in the handover-record commit)
Human verification : CANCELLED
```
*End P3-S.16 handover.*