147 lines
5.4 KiB
Markdown
147 lines
5.4 KiB
Markdown
|
|
# SESSION HANDOVER — SNIPERGOLD_ML P3-S.6: DISPLACEMENT SPEC + CONFORMANCE
|
||
|
|
|
||
|
|
```text
|
||
|
|
Date : 2026-08-22 (session close)
|
||
|
|
Status : P3-S.6 COMPLETE — spec + conformance done; synthetic tests 20/20;
|
||
|
|
NOT yet committed (handover prepared before commit+push)
|
||
|
|
Forge : https://forge.mql5.io/chiki2bum2/SniperGold_ML
|
||
|
|
Checkpoint : P3-S.5 07883f6abf116b656e2cb8adfb41ec47e1fce498 (VERIFIED clean at start)
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 1. SESSION OBJECTIVE
|
||
|
|
|
||
|
|
```text
|
||
|
|
Formal Specification + Code-Conformance Audit for Displacement.
|
||
|
|
|
||
|
|
Question answered:
|
||
|
|
Does the SniperGold code claiming to detect Displacement really implement the
|
||
|
|
project-defined Displacement definition, and is it consistent with how OB/FVG/
|
||
|
|
CHoCH use "strong movement"?
|
||
|
|
|
||
|
|
Questions NOT answered: profitability / AUC / PF (semantic audit only).
|
||
|
|
Human verification = CANCELLED. No production code changes. No ML / repair.
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. SOURCE RECONCILIATION (11 sources)
|
||
|
|
|
||
|
|
```text
|
||
|
|
1 AF_DetectDisplacement AF_Engine2_Agents.mqh:281-291 (the ONLY displacement code)
|
||
|
|
2 AF_AvgBody AF_Engine2_Agents.mqh:120-127 (baseline)
|
||
|
|
3 E agent consumer AF_Engine2_Agents.mqh:606,627-640,659-660
|
||
|
|
4 OB "strong move" AF_Engine2_Agents.mqh:304-305; AF_Defines.mqh:60 (1.5 x avg)
|
||
|
|
5 DESIGN.md docs/DESIGN.md:132-133 ("strong move" / "displacement")
|
||
|
|
6-8 FEATURE_CONTRACT / EA / Python : 0 displacement refs
|
||
|
|
9 Legacy v4.3/v4.4/v4.5 : NO displacement concept (0 refs)
|
||
|
|
10 P3-S.4/S.5/S.3 specs : displacement declared NOT REQUIRED for FVG/OB/CHoCH
|
||
|
|
11 External (XAUUSD_MTF_Liquidity_OB_Reversal) : not wired
|
||
|
|
```
|
||
|
|
|
||
|
|
**Core finding — Displacement vs OB "strong move" (brief §9):**
|
||
|
|
```text
|
||
|
|
Displacement : body >= 1.6 x avg body (AF_DetectDisplacement), newest closed bar,
|
||
|
|
no structure, per-bar attribute.
|
||
|
|
OB strong move: body >= 1.5 x avg body (AF_E3_MOVE_BODY), the OB move candle.
|
||
|
|
-> SAME CONCEPT FAMILY, different constants. Answer: B (simplified proxy for
|
||
|
|
displacement, lower threshold). Since 1.6 > 1.5, every displacement candle is
|
||
|
|
an OB strong-move candle, but body in [1.5, 1.6) x avg is strong for OB and
|
||
|
|
NOT displacement -> BUG-P3S6-001 (cross-concept inconsistency).
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. SPECIFICATION (docs/SMC_DISPLACEMENT_SPEC_v1.md)
|
||
|
|
|
||
|
|
```text
|
||
|
|
DEFINITION : body >= 1.6 x avg body on the NEWEST CLOSED bar; direction by
|
||
|
|
Close vs Open (+1/-1/0); PURE CANDLE ATTRIBUTE.
|
||
|
|
MEASUREMENT: |Close-Open| vs avg body (AF_AvgBody, 20 bars, candidate INCLUDED);
|
||
|
|
range/wicks/ATR/body-to-range NOT used.
|
||
|
|
THRESHOLD : >= 1.6 x avg (inclusive); boundary tested (T05/T06/T07).
|
||
|
|
STRUCTURE : NONE required (no BOS/CHoCH/sweep/FVG/OB).
|
||
|
|
FVG rel. : NOT REQUIRED (independent; correlated in practice).
|
||
|
|
OB rel. : strong move = same family, lower constant (BUG-P3S6-001).
|
||
|
|
CHoCH rel. : NOT REQUIRED (independent).
|
||
|
|
LIFECYCLE : CANDLE ATTRIBUTE per bar; no persistence, no events, no stale state.
|
||
|
|
TIMEFRAME : per-TF independent; canonical = AMBIGUOUS (A-1).
|
||
|
|
PARITY : PARITY = N/A BY ABSENCE (not in contract/EA/Python/v4.x).
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. CONFORMANCE (docs/P3_S6_DISPLACEMENT_CONFORMANCE.md)
|
||
|
|
|
||
|
|
```text
|
||
|
|
Definition/Measurement/Baseline/Threshold/Timing/Closed-bar (E-1..E-5,E-10,E-11): CONFORMING
|
||
|
|
Lifecycle (E-12) : CONFORMING (no stale state; DP-T18)
|
||
|
|
Structure/FVG/CHoCH (E-6,E-7,E-9): CONFORMING (independent; no requirement)
|
||
|
|
OB relationship (E-8) : PARTIALLY CONFORMING (BUG-P3S6-001)
|
||
|
|
Consumer behavior (E-14) : CONFORMING (per-bar; no stale consumer)
|
||
|
|
Timeframe (E-13) : SPECIFICATION AMBIGUOUS (A-1)
|
||
|
|
Runtime/training parity (E-15): CONFORMING (N/A by absence)
|
||
|
|
|
||
|
|
VERDICT : CONFORMING
|
||
|
|
The displacement primitive matches the project specification exactly. The only
|
||
|
|
findings: cross-concept threshold inconsistency (OB 1.5 vs disp 1.6) and the
|
||
|
|
usual canonical-timeframe ambiguity. The f7/CHoCH/FVG/OB stale-consumer bug
|
||
|
|
class does NOT apply (displacement has no state).
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 5. SYNTHETIC TESTS — 20/20 PASS
|
||
|
|
|
||
|
|
```text
|
||
|
|
spec_tests_displacement.py + spec_test_cases_displacement.json
|
||
|
|
+ output/spec_tests_displacement_report.json
|
||
|
|
DP-T01..T20 all pass; symmetry asserted on every case; code_port == spec in ALL
|
||
|
|
cases (implementation conforms). Boundary: body 0.1652174 vs thr 0.165217392
|
||
|
|
(inclusive >=). Parity scan clean.
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 6. CONFIRMED BUGS (document-only)
|
||
|
|
|
||
|
|
```text
|
||
|
|
BUG-P3S6-001 [LOW] cross-concept inconsistency: OB "strong move" 1.5 x avg body
|
||
|
|
(AF_E3_MOVE_BODY) vs Displacement 1.6 x avg body (AF_DetectDisplacement) — same
|
||
|
|
concept family, two undocumented constants. Fix deferred to consolidated repairs.
|
||
|
|
No consumer/stale-state bug exists for displacement (proven DP-T18).
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 7. AMBIGUITIES
|
||
|
|
|
||
|
|
```text
|
||
|
|
A-1 canonical displacement timeframe (MTF vs M15) — same class as CHoCH G-4 /
|
||
|
|
sweep G-3 / FVG A-3 / OB A-4.
|
||
|
|
A-2 "strong move" vs "displacement" terminology (BUG-P3S6-001).
|
||
|
|
```
|
||
|
|
|
||
|
|
## 8. NO PRODUCTION CHANGE — only P3-S.6 artifacts added; 0 files modified.
|
||
|
|
|
||
|
|
## 9. NEXT GATE: P3-S.7 MTF Alignment -> P3-S.8 Candidate Setup.
|
||
|
|
|
||
|
|
## 10. ARTIFACTS
|
||
|
|
|
||
|
|
```text
|
||
|
|
docs/SMC_DISPLACEMENT_SPEC_v1.md
|
||
|
|
docs/P3_S6_DISPLACEMENT_CONFORMANCE.md
|
||
|
|
ml/p3/smc_semantic/spec_tests_displacement.py
|
||
|
|
ml/p3/smc_semantic/spec_test_cases_displacement.json
|
||
|
|
ml/p3/smc_semantic/output/spec_tests_displacement_report.json
|
||
|
|
docs/SESSION_HANDOVER_2026-08-22_P3_S6_DISPLACEMENT.md (this document)
|
||
|
|
```
|
||
|
|
|
||
|
|
## 11. COMMIT & PUSH STATUS
|
||
|
|
|
||
|
|
```text
|
||
|
|
NOT YET COMMITTED at handover write time.
|
||
|
|
Planned message:
|
||
|
|
research: P3-S.6 Displacement formal spec + conformance audit (CONFORMING)
|
||
|
|
```
|