216 lines
9.6 KiB
Markdown
216 lines
9.6 KiB
Markdown
|
|
# SESSION HANDOVER — SNIPERGOLD_ML P3-S.7: MTF ALIGNMENT SPEC + CONFORMANCE
|
||
|
|
|
||
|
|
```text
|
||
|
|
Date : 2026-08-22 (session close)
|
||
|
|
Status : P3-S.7 COMPLETE — spec + conformance done; synthetic tests 22/22;
|
||
|
|
NOT yet committed (handover prepared before commit+push)
|
||
|
|
Forge : https://forge.mql5.io/chiki2bum2/SniperGold_ML
|
||
|
|
Checkpoint : P3-S.6 533c8c6647a552d01a1a290cb2d0505f94887666 (VERIFIED clean at start)
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 1. SESSION OBJECTIVE
|
||
|
|
|
||
|
|
```text
|
||
|
|
Formal Specification + Code-Conformance Audit for MTF Alignment.
|
||
|
|
|
||
|
|
Question answered:
|
||
|
|
Does the current SniperGold implementation genuinely implement the intended
|
||
|
|
H4 Narrative -> M30 Context -> M15 Entry -> M3 Price Action hierarchy, with
|
||
|
|
correct timestamp alignment, timeframe semantics, and cross-timeframe
|
||
|
|
consumption?
|
||
|
|
|
||
|
|
Answer (VERDICT): PARTIALLY CONFORMING
|
||
|
|
The four role labels ARE implemented with the correct timeframe assignments
|
||
|
|
(H4=N, M30=C, M15=E, M3=P) and the per-slot closed-bar/as-of handling is
|
||
|
|
sound (CONFORMING). What is NOT implemented is a genuine multi-timeframe
|
||
|
|
SEMANTIC hierarchy: the decision model is a FLAT weighted vote of four
|
||
|
|
independent, role-labeled, same-detector-per-TF agents with NO cross-timeframe
|
||
|
|
structural references (S-R), NO defined conflict policy (S-X), and a
|
||
|
|
training/runtime surface that uses a DIFFERENT MTF model (D1/H4/H1/M15).
|
||
|
|
|
||
|
|
Questions NOT answered: profitability / AUC / PF (semantic audit only).
|
||
|
|
Human verification = CANCELLED. No production code changes. No ML / repair.
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. SOURCE RECONCILIATION (17 sources)
|
||
|
|
|
||
|
|
```text
|
||
|
|
1 AFEngine1MTF (Register/Refresh/Build/IsBarClosed) AF_Engine1_MTFData.mqh
|
||
|
|
2 AF_E2_TF_S1..S4 = H4/M30/M15/M3 AF_Defines.mqh:47-50
|
||
|
|
3 AFAgentNarrative::Compute (H4, slot S1) AF_Engine2_Agents.mqh:430-490
|
||
|
|
4 AFAgentContext::Compute (M30, slot S2) AF_Engine2_Agents.mqh:492-575
|
||
|
|
5 AFAgentEntry::Compute (M15, slot S3) AF_Engine2_Agents.mqh:583-663
|
||
|
|
6 AFAgentPriceAction::Compute (M3, slot S4) AF_Engine2_Agents.mqh:665-745
|
||
|
|
7 AFAggregator::Compute (2-pass weighted vote) AF_Engine2_Aggregator.mqh:77-170
|
||
|
|
8 AFEngine2Signals::Compute (facade) AF_Engine2_Aggregator.mqh:183-199
|
||
|
|
9 AF_BuildDisplayData (sDisp/sD1/sW1) AF_Engine2_Display.mqh:308-395
|
||
|
|
10 AF_Engine3_Display.mq5 OnCalculate (driver) Indicators\AlgoForge\
|
||
|
|
11 AlgoForge_Backtest_Baseline.mq5 (ML path, NO Eng2) Experts\AlgoForge\
|
||
|
|
12 build_features.py / train_model.py (M15 + D1/H4/H1) ml\
|
||
|
|
13 FEATURE_CONTRACT.md (D1/H4/H1 + M15; E_ea as-of) docs\
|
||
|
|
14 v4.5 legacy (D1/H4/H1 structure + M15) Indicators\Downloads\
|
||
|
|
15 v4.3/v4.4 legacy (M15 + TFBias D1/H4/H1) Indicators\Downloads\
|
||
|
|
16 P3-S.2..S.6 specs (canonical TF statements) docs\
|
||
|
|
17 ml/parity/RUNTIME_TRAINING_PARITY_REPORT.md (SB-06) ml\parity\
|
||
|
|
```
|
||
|
|
|
||
|
|
**Core findings (brief):**
|
||
|
|
```text
|
||
|
|
1. The 4 agents are independent and each reads EXACTLY ONE slot; the SAME
|
||
|
|
detector suite (AF_DetectSweep/Choch, AF_FindOrderBlock/FVG, AF_RangeStat,
|
||
|
|
AF_BuildSwing) runs per-TF. Role differentiation exists only at agent
|
||
|
|
composition + labels, not in the detectors, and there is NO cross-TF
|
||
|
|
structural reference anywhere (S-R).
|
||
|
|
2. The aggregator is a FLAT weighted vote (0.30/0.30/0.25/0.15) + 1.5x majority
|
||
|
|
boost. ANY single timeframe can produce a final BUY/SELL (verified
|
||
|
|
arithmetically and by unit test T6; MTF-T19/T20/T22). No stage is REQUIRED;
|
||
|
|
no stage gates another (S-A / S-H). -> HIERARCHICAL-TO-VOTING DRIFT (D-1)
|
||
|
|
relative to a strict-hierarchy reading; per DESIGN.md the vote IS the design.
|
||
|
|
3. Conflict policy: NONE defined; contradictions resolve arithmetically
|
||
|
|
(S-X / D-2) -> SPECIFICATION AMBIGUOUS.
|
||
|
|
4. As-of: Engine-1 closed-bar lock per slot is CORRECT; H4/M30/M15/M3_asof(t)
|
||
|
|
<= t holds by construction; HTF-close visibility is deterministic (S-T,
|
||
|
|
MTF-T07/T08/T10/T16).
|
||
|
|
5. Two MTF models coexist: Engine 2 = H4/M30/M15/M3; Feature Contract/training/
|
||
|
|
ML runtime = D1/H4/H1/M15. The agent path has NO Python counterpart
|
||
|
|
(PARITY = N/A BY ABSENCE) -> FEATURE_CONTRACT MTF MISMATCH (D-5).
|
||
|
|
6. Display shows M15 structure/zones + D1/W1 levels + agent biases; H4/M30
|
||
|
|
structures are NOT drawn (V-1..V-4, D-4).
|
||
|
|
7. Cross-concept timeframe inconsistency (D-6 / X-1..X-5): f7/f8/f9 M15-only
|
||
|
|
(contract) vs per-TF Engine 2 vs legacy D1/H4/H1; FVG/OB/Displacement
|
||
|
|
multi-TF without a canonical TF.
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. SPECIFICATION (docs/SMC_MTF_ALIGNMENT_SPEC_v1.md)
|
||
|
|
|
||
|
|
```text
|
||
|
|
S-N H4 = Narrative directional VOTE (0.30); CAN trigger entry alone; NO gate/
|
||
|
|
override/invalidate.
|
||
|
|
S-C M30 = Context zone VOTE (0.30); can trigger alone; NO filter on M15.
|
||
|
|
S-E M15 = Entry VOTE (0.25) + internal ZONE + CONFIRMATION rule; contradiction
|
||
|
|
NOT blocked.
|
||
|
|
S-P M3 = Price Action VOTE (0.15); timing role; NOT mandatory; no override/
|
||
|
|
rejection.
|
||
|
|
S-H Hierarchy = top-down ANALYSIS order; DECISION = flat vote; no REQUIRED
|
||
|
|
stage.
|
||
|
|
S-D Direction = 2-pass weighted vote; 1.5x majority boost; bias 0.20 /
|
||
|
|
support 0.50.
|
||
|
|
S-X Conflict policy = NONE (SPECIFICATION AMBIGUOUS; arithmetic resolution).
|
||
|
|
S-T As-of = closed-bar lock per slot; H4/M30/M15/M3_asof(t) <= t; HTF-close
|
||
|
|
visibility deterministic.
|
||
|
|
S-A Aggregation = SAME-LEVEL VOTES; hierarchical gate NOT implemented.
|
||
|
|
S-R Cross-TF references = NONE (confluence only at vote level).
|
||
|
|
S-I No implicit TF substitution; explicit per-slot contract via macros;
|
||
|
|
runtime TF-identity by convention (unverifiable).
|
||
|
|
S-V Display = M15 structure + D1/W1 levels + biases; H4/M30 structure not drawn.
|
||
|
|
S-PR Parity = ML path (D1/H4/H1/M15) parity-verified; agent path N/A by absence.
|
||
|
|
S-XC Cross-concept = 5 concepts / 3 MTF models; no unified canonical TF.
|
||
|
|
S-ST Stale state = agent path stateless; no stale HTF consumption by construction.
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. CONFORMANCE (docs/P3_S7_MTF_ALIGNMENT_CONFORMANCE.md)
|
||
|
|
|
||
|
|
```text
|
||
|
|
H4 role : CONFORMING (narrative vote, 0.30; S-N)
|
||
|
|
M30 role : CONFORMING (context vote, 0.30; S-C)
|
||
|
|
M15 role : CONFORMING (entry vote, 0.25 + ZONE+CONF; S-E)
|
||
|
|
M3 role : CONFORMING (price-action vote, 0.15; S-P)
|
||
|
|
Hierarchy : PARTIALLY CONFORMING (analysis order yes; decision
|
||
|
|
hierarchy absent — D-1)
|
||
|
|
Timestamp semantics : CONFORMING (closed-bar as-of per slot; S-T)
|
||
|
|
Cache alignment : CONFORMING (explicit slot-TF contract; D-3 note)
|
||
|
|
Conflict policy : SPECIFICATION AMBIGUOUS (no policy; D-2)
|
||
|
|
Aggregation : PARTIALLY CONFORMING (flat vote per design; drift vs
|
||
|
|
strict hierarchy — D-1)
|
||
|
|
Consumer semantics : CONFORMING (stateless; no stale; no cross-TF refs)
|
||
|
|
Cross-concept consistency : NON-CONFORMING (three MTF models; D-6)
|
||
|
|
Runtime/training parity : PARTIALLY CONFORMING (ML path verified; agent path
|
||
|
|
N/A by absence; contract mismatch D-5)
|
||
|
|
Display consistency : PARTIALLY CONFORMING (V-1..V-4; D-4)
|
||
|
|
|
||
|
|
VERDICT : PARTIALLY CONFORMING
|
||
|
|
The role labels and per-slot as-of handling conform; the genuine
|
||
|
|
multi-timeframe SEMANTIC hierarchy (cross-TF references, defined conflict
|
||
|
|
policy, single canonical MTF model) is not implemented.
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 5. SYNTHETIC TESTS — 22/22 PASS
|
||
|
|
|
||
|
|
```text
|
||
|
|
spec_tests_mtf_alignment.py + spec_test_cases_mtf_alignment.json
|
||
|
|
+ output/spec_tests_mtf_alignment_report.json
|
||
|
|
MTF-T01..T22 all pass; code_port == spec in ALL cases (the implementation
|
||
|
|
conforms to the project's flat-vote model); structural facts verified:
|
||
|
|
e_agent_single_slot=True agents_stateless=True aggregator_flat_vote=True
|
||
|
|
engine1_closed_bar_lock=True hardcoded_tf_macros=True
|
||
|
|
tf_identity_by_convention=True
|
||
|
|
Notable expectations: MTF-T02 exact H4/C tie -> WAIT; MTF-T14 E-bear vs P-bull
|
||
|
|
-> WAIT (bias 0.197 < 0.20); MTF-T19/T20/T22 single-agent permissiveness;
|
||
|
|
MTF-T21 H4 bull + M15 bear -> BUY (arithmetic, no conflict block).
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 6. CONFIRMED FINDINGS (document-only)
|
||
|
|
|
||
|
|
```text
|
||
|
|
D-1 HIERARCHICAL-TO-VOTING DRIFT [MEDIUM] — flat vote vs strict-hierarchy
|
||
|
|
reading; not adjudicated (A-2).
|
||
|
|
D-2 CONFLICT POLICY UNDEFINED [MEDIUM] — no BLOCK/WAIT/OVERRIDE; arithmetic
|
||
|
|
resolution (A-1).
|
||
|
|
D-3 RUNTIME TF-IDENTITY BY CONVENTION [LOW] — slot->TF not re-checked at
|
||
|
|
consume time (MTF-T11).
|
||
|
|
D-4 DISPLAY VS DECISION INCONSISTENCY [LOW] — V-1..V-4.
|
||
|
|
D-5 FEATURE_CONTRACT MTF MISMATCH [MEDIUM] — Engine 2 H4/M30/M15/M3 vs
|
||
|
|
contract/training/ML D1/H4/H1/M15.
|
||
|
|
D-6 CROSS-CONCEPT TIMEFRAME INCONSISTENCY [MEDIUM] — X-1..X-5.
|
||
|
|
D-7 SAME DETECTOR vs DIFFERENT ROLE [INFORMATIONAL] — MTF ROLE DIVERGENCE.
|
||
|
|
NO stale-HTf-state bug in the agent path (stateless; f7/CHoCH/FVG/OB stale
|
||
|
|
class does not apply).
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 7. AMBIGUITIES
|
||
|
|
|
||
|
|
```text
|
||
|
|
A-1 Conflict policy (D-2) — not adjudicated.
|
||
|
|
A-2 Strict-hierarchy intent (D-1) — brief's decision-chain vs DESIGN.md flat
|
||
|
|
vote; not adjudicated.
|
||
|
|
A-3 Canonical concept TF (D-6) — three MTF models.
|
||
|
|
A-4 Runtime TF-identity enforcement (D-3) — by convention.
|
||
|
|
```
|
||
|
|
|
||
|
|
## 8. NO PRODUCTION CHANGE — only P3-S.7 artifacts added; 0 production files modified.
|
||
|
|
|
||
|
|
## 9. NEXT GATE: P3-S.8 Candidate Setup (no consolidated repairs; no ML until
|
||
|
|
the semantic audit chain completes).
|
||
|
|
|
||
|
|
## 10. ARTIFACTS
|
||
|
|
|
||
|
|
```text
|
||
|
|
docs/SMC_MTF_ALIGNMENT_SPEC_v1.md
|
||
|
|
docs/P3_S7_MTF_ALIGNMENT_CONFORMANCE.md
|
||
|
|
ml/p3/smc_semantic/spec_tests_mtf_alignment.py
|
||
|
|
ml/p3/smc_semantic/spec_test_cases_mtf_alignment.json
|
||
|
|
ml/p3/smc_semantic/output/spec_tests_mtf_alignment_report.json
|
||
|
|
docs/SESSION_HANDOVER_2026-08-22_P3_S7_MTF_ALIGNMENT.md (this document)
|
||
|
|
```
|
||
|
|
|
||
|
|
## 11. COMMIT & PUSH STATUS
|
||
|
|
|
||
|
|
```text
|
||
|
|
NOT YET COMMITTED at handover write time.
|
||
|
|
Planned message:
|
||
|
|
research: P3-S.7 MTF Alignment formal spec + conformance audit (PARTIALLY CONFORMING)
|
||
|
|
```
|