# SESSION HANDOVER — SNIPERGOLD_ML P3-S.4: FVG SPEC + CONFORMANCE ```text Date : 2026-08-22 (session close) Status : P3-S.4 COMPLETE — spec + conformance audit done; synthetic tests 20/20; NOT yet committed (handover prepared before commit+push) Forge : https://forge.mql5.io/chiki2bum2/SniperGold_ML Checkpoint : P3-S.3 b6100f9c4ff631539bab4ba8c5416cae4d89564a (research content intact; HEAD ahead by 3 documentation-only commits: eb8a818, 0ac6ed1, 85e3b48) ``` --- ## 1. SESSION OBJECTIVE ```text Formal Specification + Code-Conformance Audit for FVG (Fair Value Gap). Question answered: Does the SniperGold code claiming to detect FVG really implement the FVG definition established by the PROJECT SEMANTIC SPECIFICATION? Questions NOT answered: - Does FVG generate profit? - Does FVG improve AUC / PF? - Is the universal SMC FVG definition correct for every trader? ``` Principle: SPEC FIRST, CODE AUDIT SECOND. Human verification = CANCELLED. No production code changes (Phase D). No ML / AUC / PF / backtest optimization. --- ## 2. SOURCE MATERIAL (16 sources, reconciled) ```text 1 DESIGN.md (Algo Forge) docs/DESIGN.md (C/E agents, display) 2 DESAIN_MTF_v45.md Shared Projects\SniperGold_ML (v4.5 MTF FVG intent) 3 v4.3/v4.4 indicator Indicators\Downloads\SniperGold_SMC_ProPlus_v4_3/4_4.mq5 4 v4.5 indicator Indicators\Downloads\SniperGold_SMC_ProPlus_v4_5.mq5 5 Engine 2 FVG detector Include\AlgoForge\AF_Engine2_Agents.mqh:329-350 (AF_FindFVG) 6 Engine 2 C agent (context) AF_Engine2_Agents.mqh:492-575 7 Engine 2 E agent (entry) AF_Engine2_Agents.mqh:583-663 8 Engine 3 display collector Include\AlgoForge\AF_Engine2_Display.mqh:255-292 (AF_CollectFVG) 9 Engine 3 render Include\AlgoForge\AF_Engine3_Render.mqh:379-392 10 Engine 3 indicator Indicators\AlgoForge\AF_Engine3_Display.mq5 11 Unit test Experts\AlgoForge_Engine3_UnitTest.mq5:133-137 12 AF_Defines.mqh Include\AlgoForge\AF_Defines.mqh:31,53,58,61 13 FEATURE_CONTRACT docs/FEATURE_CONTRACT.md — NO FVG feature (0 refs) 14 EA runtime Experts\AlgoForge_Backtest_Baseline.mq5 — NO FVG (0 refs) 15 Python training ml/**/*.py — NO FVG (0 refs) 16 P3 docs P3-S.2 conformance; golden-dataset concept list Three semantic layers separated: INTENDED : FVG = imbalance ZONE; C agent = "which zone is price in"; E agent = entry zone (ZONE + CONFIRMATION = setup); legacy chain Sweep -> CHoCH -> OB/FVG within InpSeqWindow; display zones with MIT filter + minimum size. LEGACY : v4.3/v4.4/v4.5: 3-candle wick gap; minGap 0.25xATR (auto) or 0; mitigation = full fill by wick; entry tap +-1 ATR on ANY unmitigated zone; HTF projection (InpFVGTF); v4.5 per-TF MTF FVG (display). CURRENT : Engine 2 AF_FindFVG = newest FVG ONLY, NO minGap, NO mitigation, lookback 40 (C) / 20 (E); display AF_CollectFVG = newest N unmitigated zones, minGap 0.02xATR, mitigation by close; ML features / EA / training: FVG ABSENT. ``` --- ## 3. SPECIFICATION (docs/SMC_FVG_SPEC_v1.md) ```text DEFINITION : 3-candle: bullish Low(C3) > High(C1), zone [High(C1), Low(C3)]; bearish High(C3) < Low(C1), zone [High(C3), Low(C1)]; C2 (gap candle) extremes unused in the zone bounds. BOUNDARIES : WICK-BASED (High/Low of C1 & C3); no body rule; close not used. MIN GAP : none in the definition (>= 1 tick); zero gap = NOT FVG; consumer filters 0.02 ATR (display) / 0.25 ATR (legacy auto) / none (Engine 2) = AMBIGUOUS (A-1). DIRECTION : +1 bullish (up gap), -1 bearish (down gap), 0 none; NO trend precondition (unlike CHoCH). DISPLACEMENT: NOT REQUIRED BY CURRENT SPEC (geometric gap sufficient). FORMATION : observable at C3 close (b <= t); newest closed bar eligible; canonical timestamp = C3 open (A-5: legacy uses C2). CLOSED-BAR : all inputs <= t; no future visibility (property-tested T15). LIFECYCLE : ZONE (persistent); one zone per formation; no event stream; no age expiry; one zone stays ONE zone (T14). MITIGATION : full fill by wick (Low<=bot bull / High>=top bear); partial fill NOT mitigation; display variant = close (A-2). INVALIDATION: NOT MODELED (only mitigation terminates a zone). OVERLAP : separate zones per formation; no merge/replace/dedup. TIMEFRAME : Engine 2 per-TF independent (H4/M30/M15/M3); canonical project FVG = SPECIFICATION AMBIGUOUS (A-3). PARITY : FVG NOT an ML feature (contract f0-f18 has none) -> parity N/A. ``` --- ## 4. CONFORMANCE (docs/P3_S4_FVG_CONFORMANCE.md) ```text Detection semantics (E-1, E-2, E-4, E-5, E-7) : CONFORMING geometry, wick boundaries, direction, no displacement, closed-bar/no-future. Minimum gap (E-3) : SPECIFICATION AMBIGUOUS (A-1) Formation timing (E-6) : PARTIALLY CONFORMING (BUG-P3S4-002) Lifecycle zone (E-8) : CONFORMING (no event duplication) Mitigation (E-9) : NON-CONFORMING (Engine 2, BUG-P3S4-001) + AMBIGUOUS (A-2) Invalidation (E-10) : CONFORMING (not modeled) Overlap / multiple (E-11) : CONFORMING Timeframe (E-12) : SPECIFICATION AMBIGUOUS (A-3) Consumer semantics (E-14, E-15) : PARTIALLY CONFORMING (BUG-P3S4-001/-002, A-6) Runtime/training parity (E-13) : CONFORMING (N/A by absence) VERDICT : PARTIALLY CONFORMING (conformance to the project spec; NOT profitability/edge) ``` --- ## 5. SYNTHETIC TESTS ```text Runner : ml/p3/smc_semantic/spec_tests_fvg.py Cases : ml/p3/smc_semantic/spec_test_cases_fvg.json (20 cases) Report : ml/p3/smc_semantic/output/spec_tests_fvg_report.json Result : 20/20 PASS FVG-T01..T20 (all required). spec_oracle (truth, from SPEC S-1..S-13) == expected in all cases. code_port (Engine-2 AF_FindFVG port, observation) MATCHES spec in T01-T09/T14-T19; DIVERGES in: T10/T11: spec newest-unmitigated = none (mitigated) vs code returns the zone -> synthetic evidence for BUG-P3S4-001; T12/T13: spec newest zone (C3 = newest closed bar) vs code returns an older zone (1-bar lag + lookback) -> evidence for BUG-P3S4-002. Expected derived from SPEC, NOT from production code. Parity scan (T20): FEATURE_CONTRACT.md = 0 FVG refs; ml/**/*.py = 0 FVG refs (excluding the spec test files) -> runtime/training parity N/A by absence. NO AUC/PF/backtest/human annotation/ML on the test path. ``` --- ## 6. CONFIRMED BUGS (document-only; NOT fixed in P3-S.4) ```text BUG-P3S4-001 [MEDIUM] CONFIRMED, NOT FIXED Engine-2 AF_FindFVG (AF_Engine2_Agents.mqh:329-350) has NO mitigation filter: the Context (weight 0.25) and Entry (zone tap) agents can consume a FULLY-FILLED FVG as a current zone; it also returns ONLY the newest zone (older unmitigated zones invisible), diverging from the legacy entry rule (all-unmitigated within tap). NOT the f7/f9/f18 duplication class — FVG is a zone, but the mitigation lifecycle is not respected. Fix: apply the wick full-fill mitigation filter (S-9) to AF_FindFVG and clarify the zone-selection rule. BUG-P3S4-002 [LOW] DOCUMENTED AF_FindFVG loop starts at i=1 (skips the newest closed bar as C3) -> 1-bar lag vs legacy/display; C-agent lookback 40 vs E-agent lookback 20 (inconsistent). Fix: start at i=0 (closed-bar lock) or document the maturity delay; unify the lookback constant. BUG-P3S4-003 [INFO] DOCUMENTED FVG timestamp convention diverges: v4.4/v4.5 = middle candle (C2), Engine-3 display = C3, Engine 2 = none. Display-only; no ML impact. BUG-P3S4-004 [INFO] DOCUMENTED Minimum-gap filters diverge (none / 0.02 ATR / 0.25 ATR) — no canonical project threshold (SPECIFICATION AMBIGUOUS A-1). NOT optimized in this session. ``` --- ## 7. SEMANTIC AMBIGUITIES ```text 1. Minimum gap filters (A-1) : none / 0.02 ATR / 0.25 ATR; no canonical value. 2. Mitigation trigger (A-2) : wick full-fill (legacy) vs close full-fill (display) vs none (Engine 2). 3. Canonical timeframe (A-3) : Engine-2 M15 slot explicit; HTF FVG as M15 context / M3 FVG entry not defined (same class as CHoCH G-4, sweep G-3). 4. Same-bar double condition (A-4): geometrically impossible; bull-first order; unreachable. 5. Zone timestamp (A-5) : C2 (legacy) vs C3 (display) vs none (Engine 2). 6. Consumer zone scope (A-6) : Engine 2 newest-only vs legacy all-unmitigated. ``` --- ## 8. NO PRODUCTION CHANGE ```text No production code was modified. AF_FindFVG / AF_CollectFVG / v4.3 / v4.4 / v4.5 / Engine 2 / Engine 3 / f7 / f8 / f9 / f10 / f11 / f18 / OB / CHoCH / Displacement / ML / EA : NOT touched. Only P3-S.4 research artifacts added (spec, conformance, tests, report, handover). P3-S.3 / P3-S.2 artifacts (immutable) UNCHANGED (git status: only new files, 0 modified). ``` --- ## 9. HUMAN VERIFICATION STATUS ```text HUMAN VERIFICATION = CANCELLED Human annotation is NOT part of the FVG validation path. The human_package/ remains a historical artifact only. ``` --- ## 10. NEXT GATE ```text After the FVG verdict (PARTIALLY CONFORMING): OB -> Displacement -> MTF Alignment -> Candidate Setup. DO NOT return to ML; DO NOT build a meta-label; DO NOT create new event labels; DO NOT fix production bugs before the audit chain completes (BUG-P3S4-00x stay documented until the semantic audit chain is finished). ``` --- ## 11. CHECKPOINT & PROVENANCE (P3-S.4) ```text Forge HEAD (session start) : 85e3b48 (P3-S.3 research checkpoint b6100f9 intact; ahead only by 3 documentation-only commits) P3-S.3 spec (immutable) : docs/SMC_CHOCH_MSS_SPEC_v1.md P3-S.2 spec (immutable) : docs/SMC_LIQUIDITY_SWEEP_SPEC_v1.md FEATURE_CONTRACT : C44CC6F2... (P2-era) / 7b908b12... (committed) P2.6 model (SHA-256) : 06df8452... (Include\SniperGold_ML_p26_corrected.mqh) VERIFIED by file hash this session symbol/tf : XAUUSD / M15 (2017-01-01 .. 2026-08-20) Human verification : CANCELLED ``` --- ## 12. P3-S.4 ARTIFACTS ```text docs/SMC_FVG_SPEC_v1.md docs/P3_S4_FVG_CONFORMANCE.md ml/p3/smc_semantic/spec_tests_fvg.py ml/p3/smc_semantic/spec_test_cases_fvg.json ml/p3/smc_semantic/output/spec_tests_fvg_report.json docs/SESSION_HANDOVER_2026-08-22_P3_S4_FVG.md (this document) ``` --- ## 13. COMMIT & PUSH STATUS ```text NOT YET COMMITTED at handover write time. Planned commit message: research: P3-S.4 FVG formal spec + conformance audit (PARTIALLY CONFORMING) Follow with: git push origin main; verify rev-parse HEAD == ls-remote origin HEAD; working tree CLEAN. ```