forked from chiki2bum2/SniperGold_ML
482 lines
23 KiB
Markdown
482 lines
23 KiB
Markdown
# P3-S.15 ML PATH / TRAINING ARCHITECTURE DECISION — SNIPERGOLD_ML
| |||
| |||
```text
| |||
Date : 2026-08-23
| |||
Session : P3-S.15 — ML Path / Training Architecture Decision
| |||
Status : DESIGN / ARCHITECTURE DECISION ONLY. DOCUMENTATION ONLY.
| |||
NO code, NO model, NO training, NO Candidate Setup change,
| |||
NO FEATURE_CONTRACT change in this session.
| |||
Checkpoint : P3_S14_HEAD 8b29466e52ab810843768c083c1193e35e091e8e (VERIFIED
| |||
local == origin/main, branch main, working tree CLEAN)
| |||
Contract : docs/SNIPERGOLD_CANONICAL_SETUP_CONTRACT_v1.md (frozen, P3-S.10)
| |||
Handover : docs/SESSION_HANDOVER_2026-08-23_P3_S14_MTF_TRAINING_ALIGNMENT.md
| |||
Verification: P3-S.15 checkpoint VERIFIED — see §2.
| |||
Human verification : REMAINS CANCELLED (permanent research-path decision).
| |||
Decision : OPTION A final classification = "DESIGN DECISION REQUIRED -> A.
| |||
KEEP LEGACY MODEL AS REFERENCE + BUILD FUTURE SETUP-LEVEL ML"
| |||
(see §L). Resolved as an architecture decision, NOT by AUC/PF.
| |||
```
| |||
| |||
---
| |||
| |||
## 1. SESSION MANDATE (the single question)
| |||
| |||
> **Now that SniperGold has a repaired EVENT contract, repaired ZONE contract,
| |||
> a real Candidate Setup layer, and a canonical H4/M30/M15/M3 architecture,
| |||
> what should the future ML system learn from, and what should the current
| |||
> legacy MLP be considered?**
| |||
| |||
This session answers the architecture-level question above. It does NOT
| |||
compute AUC/PF, does NOT retrain, does NOT modify the Candidate Setup, and
| |||
does NOT touch feature contract frontiers. It decides the OBSERVATION UNIT,
| |||
LABEL DIRECTION, FEATURE ARCHITECTURE, TEMPORAL/REGIME model role, and the
| |||
FUTURE DATA PIPELINE for a separately-authorized future training phase.
| |||
| |||
---
| |||
| |||
## 2. CHECKPOINT VERIFICATION (Phase 0 — SESSION-HANDOVER-FIRST)
| |||
| |||
```text
| |||
A. Latest authoritrative handover found by repository search
| |||
(docs/SESSION_HANDOVER_*.md):
| |||
SESSION_HANDOVER_2026-08-23_P3_S14_MTF_TRAINING_ALIGNMENT.md
| |||
(newest date 2026-08-23, terminal phase P3-S.14; confirmed by git history
| |||
highest parent of current HEAD and by its own "Next gate: P3-S.15".)
| |||
| |||
B. Preceding handover for continuity:
| |||
SESSION_HANDOVER_2026-08-22_P3_S13_CANDIDATE_SETUP.md (F3, parent of S.14)
| |||
| |||
C. Checkpoint stated by the session brief (P3-S.14):
| |||
8b29466e52ab810843768c083c1193e35e091e8e
| |||
Checkpoint stated by the latest handover (P3-S.14 F4 test commit):
| |||
8b29466... (same object — the handover records it in the git log commit
| |||
"test: define F4 mtf-training-alignment session report generator").
| |||
| |||
D. Verified (against git):
| |||
local HEAD = 8b29466e52ab810843768c083c1193e35e091e8e OK
| |||
remote HEAD = 8b29466e52ab810843768c083c1193e35e091e8e OK (origin/main)
| |||
branch = main OK
| |||
working tree = CLEAN (git status empty) OK
| |||
local == remote == checkpoint OK
| |||
| |||
E. RESULT : repository state CONSISTENT with the latest handover.
| |||
PROCEED with the P3-S.15 architecture decision.
| |||
```
| |||
| |||
---
| |||
| |||
## 3. RECONSTRUCTED PROJECT STATE (from the latest handover — authoritative)
| |||
| |||
```text
| |||
Current phase : P3-S.15 — ML path / training architecture DECISION.
| |||
Completed phases : P3-S.2..S.8 semantic conformance; P3-S.9 architecture
| |||
review + root-cause matrix; P3-S.10 owner adjudication +
| |||
CANONICAL SETUP CONTRACT FREEZE; P3-S.11 F1 EVENT repair;
| |||
P3-S.12 F2 ZONE repair; P3-S.13 F3 CANDIDATE SETUP layer
| |||
(implemented, frozen, 25/25); P3-S.14 F4 MTF/training
| |||
alignment (verdict LEGACY / NOT COMPARABLE, 16/16).
| |||
Earlier P2.1-P2.6 (HTF parity, corrected baseline) and
| |||
P3.1/P3.2/P3.2.2 forensic evidence (feature audit,
| |||
label/event forensic, de-overlap/survival).
| |||
Frozen architecture : H4 (Narrative/Context gate) -> M30 (Context gate) ->
| |||
M15 (Entry/Setup carrier) -> M3 (optional confirmation).
| |||
Frozen Candidate Setup chain : H4 gate -> M30 gate -> fresh Liquidity EVENT ->
| |||
CHoCH/MSS EVENT after sweep -> active/unmitigated OB|FVG
| |||
ZONE -> M15 entry condition -> CANDIDATE_SETUP -> [M3].
| |||
Identity, lifecycle, one-setup-one-identity, one-entry,
| |||
score separation — all FROZEN (F3).
| |||
F1 / F2 : repaired and frozen (event contract; zone contract).
| |||
Current open decision:P3-S.15 (this session) — future ML/training architecture.
| |||
Production changes : NONE in P3-S.14/S.15 (docs only). Runtime unchanged.
| |||
Model status : SniperGold_ML.mqh v20260821_2head — FROZEN, UNCHANGED.
| |||
Legacy 24-bar directional MLP on D1/H4/H1+M15 (19 feats).
| |||
ML status : LEGACY / NOT COMPARABLE vs canonical setup (P3-S.14).
| |||
Known blockers : M30 and M3 have NO ML feature surface; virtual D1/H1 are
| |||
legacy-only; frozen model encodes the legacy v4.4 feed.
| |||
Next gate : P3-S.15 (this decision) -> per decision, P3-S.16 =
| |||
Setup-Level Dataset / Label Contract IMPLEMENTATION.
| |||
```
| |||
| |||
---
| |||
| |||
## 4. CURRENT ML MODEL STATUS (frozen, unchanged — §18)
| |||
| |||
```text
| |||
Object : SniperGold_ML.mqh (terminal + repo historical copies)
| |||
Version : v20260821_2head
| |||
Family : static MLP, 19 -> 12 -> 2 (long/short heads), 2-node aux-calibrated
| |||
Label : 24-bar forward direction drift | 0.75 x ATR threshold
| |||
(L1 DIRECTIONAL label, NOT setup outcome)
| |||
Feed : D1/H4/H1 HTF bias (f0-f2) + M15 structure/zone/delta/mom/confluence
| |||
(f3-f18) — the FEATURE_CONTRACT f0-f18 (P2 source of truth)
| |||
MTF : D1/H4/H1 + M15 (LEGACY generation)
| |||
AUC : validation 0.5005 | long 0.6270 | short 0.6207 (recorded header;
| |||
reported for status only — NOT used as a decision criterion)
| |||
Trained : 2026-08-21, XAUUSDc M15, on the OLD v4.4 feed semantics
| |||
(the P2.5-corrected build_features_p2 feed was NOT integrated
| |||
into train_model.py — a documented legacy inconsistency, P2 §F/G-8;
| |||
G-9: deployed model trained on the OLD feed).
| |||
Status classification (per §18, on established evidence only):
| |||
DEPLOYABLE : yes, it is wired and runs. [functional]
| |||
LEGACY : yes — pre-Candidate-Setup, bar-level, D1/H4/H1+M15 feed. [lineage]
| |||
REFERENCE : yes — usable as a historical baseline of the old generation.
| |||
SUPERSEDED : NO as "obsolete" for the CURRENT design intent; YES as
| |||
semantically non-equivalent to the canonical setup model.
| |||
FINAL : classify as LEGACY / REFERENCE benchmark. NOT the canonical
| |||
Candidate Setup model. It predicts directional drift (L1), which
| |||
is a DIFFERENT target from setup outcome. It stays intact.
| |||
```
| |||
| |||
The session's mandatory invariant (§18/§23): this model must remain the same
| |||
file/weights/architecture/calibration/header. It is preserved, not destroyed.
| |||
| |||
---
| |||
| |||
## 5. RUNTIME vs LEGACY ML ARCHITECTURE (§7, §17)
| |||
| |||
```text
| |||
RUNTIME (frozen, canonical) LEGACY ML / TRAINING (current)
| |||
----------------------------------- -----------------------------------------
| |||
MTF: H4/M30/M15/M3 MTF: D1/H4/H1 + M15
| |||
Setup unit: ONE Candidate Setup Unit: EVERY M15 bar
| |||
Chain: gate->gate->sweep->CHoCH->zone Unit class: per-bar feature vector
| |||
->M15 entry -> SETUP [->M3] Label: 24-bar forward DROFT (L1)
| |||
Identity: setup_id (causal) Label target: DIRECTION, not outcome
| |||
Lifecycle: full state machine No setup identity, no lifecycle
| |||
H4/M30 = HARD direction gates H4 = soft numeric bias (f1); D1/H1 = legacy
| |||
M30, M3 = REQUIRED gate / confirmation M30, M3 = ABSENT from feature set
| |||
Causality: as-of closed bars per stage Causality: as-of closed bars (aligned for M15/H4)
| |||
| |||
Overlap: M15 base layer + H4 bias semantics partially overlap (P3-S.14).
| |||
NOT COMPARABLE as the SAME predictor: different unit, different label target,
| |||
different MTF set, different consumer semantics.
| |||
| |||
The legacy model and the canonical setup are DIFFERENT OBJECTS, not the same
| |||
information written differently (P3-S.14 §L verdict).
| |||
```
| |||
| |||
---
| |||
| |||
## 6. ONE-OBSERVATION UNIT DECISION (§11, §12) — THE CORE ANSWER
| |||
| |||
### 6.1 Existing model unit
| |||
```text
| |||
one M15 bar -> future 24-bar DIRECTION drift
| |||
```
| |||
| |||
### 6.2 Future Candidate Setup unit
| |||
```text
| |||
one Candidate Setup -> setup OUTCOME (valid-before-invalidation)
| |||
```
| |||
| |||
### 6.3 Why the setup must be the observation unit
| |||
| |||
- **Semantic correspondence** (the decisive criterion): the runtime makes
| |||
decisions on WHOLE SETUPS (identity + lifecycle), not on arbitrary bars.
| |||
ML that learns per-bar cannot correspond to the runtime consumer.
| |||
- **Causality**: a setup is a causally-ordered chain with a defined creation
| |||
timestamp and lifecycle; an outcome can be measured causally from creation.
| |||
- **Training-unit correctness**: the runtime's decision granularity (one setup
| |||
per entry) forces the training unit to be the setup. Bar-level training
| |||
would optimize the wrong granularity.
| |||
- **Runtime/training consistency**: erased the P3-S.14 bifurcation (R-1).
| |||
- **Evidence (P3.2.2 §K)**: the L3 label MECHANISM is viable ONLY on a discrete
| |||
setup unit; the existing event/bar stream FAILED "unit validity" (97-99%
| |||
redundant, 1.5% retention). Setup-level units fix the unit-validity failure.
| |||
- **Setup identity is sufficient as an ML observation key** (§12): it has
| |||
setup_id, direction, sweep onset/dir, choch onset/dir, zone info,
| |||
creation timestamp, optional M3. This is a complete causal composite key.
| |||
| |||
### 6.4 Per-observation-consequence analysis (covers every required point)
| |||
| |||
| Dimension | Per-bar (legacy) | Per-setup (future) |
| |||
|---|---|---|
| |||
| Sample independence | FAIL — every bar overlaps its neighbours (outcome windows share) | IMPROVED — setups are discrete; dedup by identity removes per-bar redundancy (still need de-overlap between distinct setups, §6.5) |
| |||
| Label definition | direction drift (L1) — MISALIGNED for setups | setup-outcome (L3 TP-before-SL / risk-adjusted) — CAUSAL |
| |||
| Overlap | massive (98% +1-bar gap, P3.2.2 §J) | boundary: distinct setups may still overlap in TIME; need a min separation / lead-setup policy |
| |||
| Event clustering | bars cluster into long same-outcome runs | setups cluster into market episodes; de-overlap needed at the setup level |
| |||
| Setup deduplication | none (no identity) | BY CONSTRUCTION via setup_id (F3 one-setup-one-identity) |
| |||
| Time-to-outcome | horizon fixed 24 bars | setup lifetime (P3.2 §6/§8: 1-8 bars, ~90% <=8) — horizon must match lifetime |
| |||
| Censoring | — | must be handled (UNRESOLVED valid at H16+, low; survival for short H) |
| |||
| Class balance | near 50/50 direction | setup-outcome is LOSS-heavy (P3.2.2: LOSS ~2x WIN on existing event units); this is a REAL distribution fact, must be handled by the label design, not hidden |
| |||
| Feature leakage | fixed by closed-bar | must enforce closed-bar + no lookahead (setup created only when chain completes) |
| |||
| |||
### 6.5 De-overlap must be re-derived at the setup level
| |||
The P3.2.2 de-overlap was defined for EVENT stream. At the SETUP level the
| |||
dedup is by identity (§6.3), but two DISTINCT setups can still have
| |||
overlapping outcome windows (e.g. a second setup forms inside the first
| |||
setup's life). Future dataset must apply a setup-identity + temporal
| |||
separation policy (lead-setup-per-episode) analogous to P3.2.2 §B, defined in
| |||
the P3-S.16 label contract, NOT in this session.
| |||
| |||
**DECISION §6**: The future ML observation unit = **ONE Candidate Setup**.
| |||
This is the only unit that is semantically consistent, causally sound, and
| |||
matches the runtime consumer. (Section 6 answers §11, §12, and the STOP
| |||
condition "Candidate Setup cannot serve as a deterministic training unit" —
| |||
it CAN, because identity+lifecycle are deterministic and frozen.)
| |||
| |||
---
| |||
| |||
## 7. FUTURE LABEL CONTRACT — DIRECTION (§13, §14)
| |||
| |||
### 7.1 Explicit distinction (from P3.2 §0/§14 — the key forensic)
| |||
```text
| |||
BAR-DIRECTION label (L1) : one M15 bar -> future 24-bar drift.
| |||
Measures DIRECTIONAL PREDICTION, not setup validity.
| |||
This is what the CURRENT model encodes.
| |||
| |||
SETUP-OUTCOME label (L3+) : one Candidate Setup -> did the EXPECTED outcome
| |||
occur BEFORE invalidation?
| |||
Measures SETUP VALIDATION — what the runtime asks.
| |||
```
| |||
| |||
P3.2 (official classification B — LABEL IS MISALIGNED) established these are
| |||
DIFFERENT targets. P3.2.2 showed the L3 (TP-before-SL) mechanism is viable.
| |||
This session RECORDS the direction, does NOT implement labels.
| |||
| |||
### 7.2 Future label family (to be measured in P3-S.16; not implemented now)
| |||
```text
| |||
PRIMARY target : setup-outcome, TP-before-SL (L3 successor):
| |||
WIN = TP reached before SL within the setup-lifetime horizon.
| |||
LOSS = SL reached first (or invalidation/contrary structure first).
| |||
CENSORED/UNRESOLVED : neither within the lifetime; real censoring.
| |||
AMBIGUOUS : same-bar TP & SL (excluded/recorded, 1-3%).
| |||
Suggested semantic: TP = k*ATR, SL = m*ATR with a justified R:R (NOT
| |||
selected from performance; candidates in P3.2 §14 / P3.2.2 §0 can be
| |||
re-baselined against the FROZEN setup, not the event stream).
| |||
| |||
SECONDARY / descriptive (NOT classification targets):
| |||
- MFE / MAE excursion (L2) : setup risk/geometry profile.
| |||
- time-to-TP / time-to-SL (L4) : setup lifetime distribution.
| |||
- invalidation time : structure-break invalidation latency.
| |||
| |||
EXPLICITLY SEVERED from the legacy: the 24-bar DIRECTION drift label is NOT
| |||
reused as the setup-outcome target.
| |||
| |||
P3.2 evidence note: on the EXISTING event semantics the outcome is LOSS-heavy.
| |||
This is a measurement of the OLD setup units, not a judgment on the NEW
| |||
canonical Candidate Setup outcome distribution. P3-S.16 must re-measure on the
| |||
canonical unit. The label must not be engineered to fake balance; it should
| |||
measure truthfully.
| |||
```
| |||
| |||
---
| |||
| |||
## 8. FUTURE FEATURE ARCHITECTURE (§14) — PROPOSAL ONLY
| |||
| |||
The future setup-level model will require features aligned to the canonical
| |||
setup entity (NOT added to FEATURE_CONTRACT in this session):
| |||
| |||
```text
| |||
IDENTITY / TARGET block : setup_id, direction,
| |||
creation_bar / creation timestamp.
| |||
H4 context (gate) : H4 narrative STATE (as-of closed), direction.
| |||
M30 context (gate) : M30 context STATE (as-of closed), direction.
| |||
Liquidity EVENT : sweep onset, sweep direction, sweep freshness,
| |||
distance to sweep, sweep size relative to ATR.
| |||
CHoCH EVENT : choch onset, choch direction, choch-vs-sweep
| |||
order/latency.
| |||
ZONE (OB|FVG) state : zone type, zone age (vs zone formation),
| |||
zone width (ATR units), price-in-zone offset,
| |||
mitigation state at creation, zone-bound proximity.
| |||
Displacement attribute : value at chain completion (optional boost).
| |||
M15 entry state : M15 entry-condition boolean, premium/discount
| |||
filter state, distance-to-zone in ATR.
| |||
M3 confirmation : optional M3 confirmation presence + direction.
| |||
Geometry / time : zone geometry, time since event onset,
| |||
time since zone formation, setup lifecycle stage.
| |||
```
| |||
| |||
ALL features must be as-of the FROZEN MTF as-of contract (§L of the canonical
| |||
contract): every consumed bar closed before the setup creation decision bar.
| |||
NO partial candle, NO future information.
| |||
| |||
This is an ARCHITECTURAL PROPOSAL (Section 8 records the direction). The full
| |||
contract with numerics/lookbacks belongs to P3-S.16 (or a dedicated proposal),
| |||
where it will be created as a NEW proposal document, NOT by mutating
| |||
`docs/FEATURE_CONTRACT.md` (§19 policy respected).
| |||
| |||
---
| |||
| |||
## 9. TEMPORAL MODEL QUESTION (§15)
| |||
| |||
```text
| |||
Q: Would a future temporal model have a valid temporal sequence to learn once
| |||
Candidate Setup becomes the observation unit?
| |||
| |||
Bar-sequence view (old): M15 bars -> 24-bar drift. Sequences of bars,
| |||
but the "event" is drowned by bars (redundant, overlapping windows).
| |||
| |||
Setup-lifecycle-sequence view (future): the canonical lifecycle
| |||
NONE -> CONTEXT_VALID -> LIQUIDITY_TRIGGERED -> STRUCTURE_CONFIRMED ->
| |||
ZONE_READY -> ENTRY_ARMED -> CANDIDATE_SETUP -> [M3_CONFIRMED] ->
| |||
EXPIRED | INVALIDATED | CONSUMED.
| |||
| |||
Assessment:
| |||
- There IS a well-defined temporal object: the SETUP LIFECYCLE is a sequence
| |||
of dated states/events. A temporal model (e.g. sequence-of-stages) is
| |||
CONCEPTUALLY valid IF it models the lifecycle transition sequence per setup.
| |||
- However the per-setup lifecycle is SHORT (1-8 bars for confirm, then
| |||
terminal). Over a sequence of DISTINCT setups, the meaningful information is
| |||
the cross-setup context, not a long intra-setup series.
| |||
- REGIME/H4/M30 state provide the longer temporal context; M15 provides the
| |||
short lifecycle sequence.
| |||
- CONCLUSION: temporal modeling is JUSTIFIED ONLY as modeling the SETUP
| |||
LIFECYCLE SEQUENCE (stages as a sequence) and/or the cross-setup context
| |||
series. The old per-bar LSTM/Informer premise (learn on dense bars) is NOT a
| |||
valid temporal learning target after the unit becomes the setup, because it
| |||
re-introduces the overlap/redundancy failure (P3.2.2). A temporal model over
| |||
well-separated setup-lifecycle sequences would have a valid sequence to learn.
| |||
- NOT run here. This § answers the design question only.
| |||
```
| |||
| |||
---
| |||
| |||
## 10. REGIME MODEL QUESTION (§16)
| |||
| |||
```text
| |||
Q: What role should REGIME play in the future architecture?
| |||
| |||
Prior regime work (HMM/MSM/GARCH experiments) is NOT revived. The canonical
| |||
H4/M30 narrative+context gates already capture a coarse regime/state of the
| |||
market at the top of the MTF stack.
| |||
| |||
Preferred future role (documented, NOT implemented):
| |||
REGIME = LABEL-CONDITIONING VARIABLE / PRE-FILTER, layered on top of, and
| |||
defined consistently with, the H4/M30 narrative/context gates.
| |||
| |||
Rationale:
| |||
- H4 direction-compatible gate ALREADY conditions entry (a regime proxy).
| |||
- If used as a pre-filter, note the frozen OD-1/OD-4: regime must NOT
| |||
override the canonical gate semantics for the SETUP LAYER. Regime would
| |||
sit ABOVE the setup layer as an entry-quality conditioner, not as a new
| |||
setup gate.
| |||
- NOT a separate super-model; NOT a hard filter that contradicts H4/M30.
| |||
- A single regime SCORE could eventually be a SETUP FEATURE (context depth)
| |||
but should not be allowed to recreate the legacy "regime gate" that the
| |||
canonical contract removed (OD-4 gate-fail policy is authoritative for
| |||
the setup layer).
| |||
| |||
Preference ranking (as a documented default for future design):
| |||
1. Label-conditioning variable (most consistent with frozen gates)
| |||
2. Context candidate-setup feature (if it is meaningful)
| |||
3. Pre-filter (allowed only if it never contradicts H4/M30 gate semantics)
| |||
4. Separate model (NOT preferred — legacy direction, not revived)
| |||
A single preferred default will be fixed in the P3-S.16 contract.
| |||
```
| |||
| |||
---
| |||
| |||
## 11. FUTURE DATA PIPELINE (§17)
| |||
| |||
### 11.1 Future (recommended)
| |||
```text
| |||
Market Data (M15 base + H4/M30/M3 as-of)
| |||
-> SMC primitives (sweep/CHoCH/FVG/OB/displacement; F1/F2 repaired)
| |||
-> repaired Events & Zones (F1/F2 contracts; as-of lifecycle)
| |||
-> Candidate Setup (F3: deterministic chain, identity, lifecycle)
| |||
-> Setup SNAPSHOT (per-setup feature vector, §8)
| |||
-> Outcome Label (setup-outcome L3, §7, measured from creation bar forward)
| |||
-> ML Dataset (one row per Candidate Setup, de-overlapped by identity+time)
| |||
-> model (setup-level, see §12)
| |||
```
| |||
| |||
### 11.2 Old (legacy)
| |||
```text
| |||
Market Data (M15 bars)
| |||
-> features (D1/H4/H1+M15, f0-f18)
| |||
-> 24-bar label (directional drift)
| |||
-> MLP (19->12->2)
| |||
```
| |||
| |||
### 11.3 Comparability
| |||
```text
| |||
NOT comparable as the same predictor:
| |||
- observation unit : bar vs setup
| |||
- label target : 24-bar drift vs setup outcome
| |||
- MTF set : D1/H4/H1+M15 vs H4/M30/M15/M3
| |||
- consumer semantics : MLP numeric input vs runtime candidate-setup entity
| |||
They represent different generations. The legacy pipeline is preserved as
| |||
evidence; it is not the canonical training path.
| |||
```
| |||
| |||
---
| |||
| |||
## 12. ML ARCHITECTURE CLASSIFICATION (final — §21 with §26 guards)
| |||
| |||
```text
| |||
The three options (A / B / C) were evaluated on semantics only (§10):
| |||
A. KEEP LEGACY MODEL AS REFERENCE + BUILD FUTURE SETUP-LEVEL ML
| |||
B. ALIGN EXISTING ML PIPELINE TO CANONICAL RUNTIME
| |||
C. RETIRE CURRENT STATIC ML AND DESIGN A REPLACEMENT
| |||
| |||
P3-S.14 §I already recommended B-now + A/C-future for the FEATURE audience.
| |||
At the ARCHITECTURE level (this session) the deciding questions are:
| |||
| |||
(1) Can the legacy pipeline be "aligned" to the canonical runtime?
| |||
NO — one is bar-level (L1 drift), the other setup-level (L3 outcome).
| |||
Aligning the ONE-LINE pipeline (Option B) would change unit + label + MTF,
| |||
i.e. it would no longer be the legacy pipeline at all. So B is a label,
| |||
not a faithful "alignment" of the probe.
| |||
| |||
(2) Can the legacy model be retired NOW (Option C)?
| |||
It CAN be classified LEGACY/REFERENCE and preserved. "Retirement" as a
| |||
resolution is not required; preservation + reclassification is the honest
| |||
outcome. There is no architectural need to delete it.
| |||
| |||
(3) Is the current model a valid REFERENCE?
| |||
YES — as a historical baseline of the old generation (frozen, reproducible).
| |||
| |||
(4) What must the future build?
| |||
A NEW setup-level model (unit = Candidate Setup, target = setup outcome).
| |||
| |||
FINAL CLASSIFICATION : A.
| |||
KEEP the legacy static MLP as a frozen LEGACY / REFERENCE benchmark, AND
| |||
design/build the FUTURE SETUP-LEVEL ML (separately authorized, P3-S.16 and
| |||
beyond). The current model is NOT represented as the canonical Candidate
| |||
Setup model.
| |||
| |||
STOP-CONDITION CHECK (§26): None triggered.
| |||
- Candidate Setup CAN serve as a deterministic training unit (identity, F3).
| |||
- Future outcome CAN be defined causally (setup-outcome, §7).
| |||
- Legacy model CAN be preserved as a valid reference (§4).
| |||
- Future ML does NOT require changing frozen runtime semantics (it targets
| |||
the SAME canonical setup; it does not alter it).
| |||
- Selection is NOT based on AUC/PF (architecture/semantics only).
| |||
```
| |||
| |||
---
| |||
| |||
## 13. NET RECOMMENDATION
| |||
| |||
```text
| |||
CURRENT MODEL : SniperGold_ML.mqh v20260821_2head = LEGACY / REFERENCE
| |||
(bar-level directional MLP; frozen; NOT the canonical model).
| |||
FUTURE ML : Candidate-Setup-native. Observation unit = ONE Candidate
| |||
Setup; target = setup-outcome (TP-before-SL + censoring);
| |||
features aligned to H4/M30/M15/M3 canonical setup entity;
| |||
temporal model = setup-lifecycle sequence ONLY if warranted;
| |||
regime = label-conditioning variable consistent with gates.
| |||
NEXT GATE : P3-S.16 = Setup-Level Dataset / Label Contract
| |||
IMPLEMENTATION (docs+dataset contract proposal, per §7/§8,
| |||
preserving FEATURE_CONTRACT.md). No retrain in P3-S.15.
| |||
```
| |||
| |||
---
| |||
| |||
## 14. EXPLICITLY UNCHANGED AREAS (§18, §23)
| |||
| |||
```text
| |||
Candidate Setup : FROZEN (AF_Engine2_Setup.mqh, AFCandidateSetup) — NOT redesigned.
| |||
F1 (events) : unchanged.
| |||
F2 (zones) : unchanged.
| |||
ML model : SniperGold_ML.mqh — unchanged (weights/architecture/calib/header).
| |||
FEATURE_CONTRACT : docs/FEATURE_CONTRACT.md — NOT modified this session.
| |||
train_model.py / build_features.py / build_features_p2.py : NOT modified.
| |||
.model weights : NOT retrained / NOT re-exported.
| |||
production MQL5 : NOT changed. No .mq5/.mqh edit.
| |||
runtime semantics : NOT changed.
| |||
No AUC/PF/backtest/optimization used in this session.
| |||
```
| |||
| |||
*End of P3-S.15 ML path / training architecture decision. Documentation only.*
|