2026-08-22 17:01:54 +07:00
|
|
|
# SESSION HANDOVER — SNIPERGOLD_ML P3-S.3: CHOCH / MSS SPEC + CONFORMANCE
|
|
|
|
|
|
|
|
|
|
```text
|
2026-08-22 17:21:46 +07:00
|
|
|
Date : 2026-08-22 (session close)
|
|
|
|
|
Status : P3-S.3 COMPLETE — spec + conformance audit done; commit+push verified
|
2026-08-22 17:01:54 +07:00
|
|
|
Forge : https://forge.mql5.io/chiki2bum2/SniperGold_ML
|
2026-08-22 17:21:46 +07:00
|
|
|
Checkpoint : P3-S.2 595b4c9a622703b05228bd563b4979fef81a2ebf (verified clean at start)
|
2026-08-22 17:01:54 +07:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 1. SESSION OBJECTIVE
|
|
|
|
|
|
|
|
|
|
```text
|
2026-08-22 17:21:46 +07:00
|
|
|
Formal Specification + Code-Conformance Audit for CHoCH / MSS.
|
2026-08-22 17:01:54 +07:00
|
|
|
|
2026-08-22 17:21:46 +07:00
|
|
|
Question answered:
|
|
|
|
|
Does the SniperGold code claiming to detect CHoCH/MSS really implement the
|
|
|
|
|
CHoCH/MSS definition established by the PROJECT SEMANTIC SPECIFICATION?
|
2026-08-22 17:01:54 +07:00
|
|
|
|
2026-08-22 17:21:46 +07:00
|
|
|
Questions NOT answered:
|
|
|
|
|
- Does CHoCH generate profit?
|
|
|
|
|
- Is the universal SMC definition correct for every trader?
|
2026-08-22 17:01:54 +07:00
|
|
|
```
|
|
|
|
|
|
2026-08-22 17:21:46 +07:00
|
|
|
Principle: SPEC FIRST, CODE AUDIT SECOND. Human verification = CANCELLED.
|
|
|
|
|
No production code changes (Phase D).
|
2026-08-22 17:01:54 +07:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-08-22 17:21:46 +07:00
|
|
|
## 2. SOURCE MATERIAL (15 sources, reconciled)
|
2026-08-22 17:01:54 +07:00
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
1 FEATURE_CONTRACT v1.0 (f8/f9/f18) docs/FEATURE_CONTRACT.md
|
2026-08-22 17:21:46 +07:00
|
|
|
2 DESIGN.md (Algo Forge) docs/DESIGN.md ("CHoCH/MSS" label, N agent)
|
2026-08-22 17:01:54 +07:00
|
|
|
3 DESAIN_MTF_v45.md Shared Projects\SniperGold_ML
|
|
|
|
|
4 v4.3/v4.4/v4.5 ProcessStructure Indicators\Downloads\SniperGold_SMC_ProPlus_v4_3/4_4/4_5.mq5
|
|
|
|
|
5 EA ProcessStructure (current) Experts\AlgoForge_Backtest_Baseline.mq5:294-340
|
2026-08-22 17:21:46 +07:00
|
|
|
6 build_features_p2.py ml/parity/build_features_p2.py (equal-allowed pivots)
|
|
|
|
|
7 train_model.py build_structure ml/train_model.py:161-229 (STRICT pivots)
|
|
|
|
|
8 smc_semantic_common.py ml/p3/smc_semantic/ (forensic infra)
|
2026-08-22 17:01:54 +07:00
|
|
|
9 AF_DetectChoch / AF_DetectBos Include\AlgoForge\AF_Engine2_Agents.mqh:238-256
|
|
|
|
|
10 AF_BuildStructLines Include\AlgoForge\AF_Engine2_Display.mqh:137-192
|
|
|
|
|
11 P3-S.0 f7 forensic docs/P3_S_F7_EVENT_LIFECYCLE_FORENSIC.md
|
|
|
|
|
12 P3-S.2 spec+conformance docs/SMC_LIQUIDITY_SWEEP_SPEC_v1.md + conformance
|
|
|
|
|
13 Golden dataset doc docs/P3_SMC_SEMANTIC_GOLDEN_DATASET.md
|
2026-08-22 17:21:46 +07:00
|
|
|
14 audit_choch_state.json (NEW) ml/p3/smc_semantic/output/ (CHoCH state forensic)
|
|
|
|
|
15 parity_choch_pivot_*.json (NEW) ml/p3/smc_semantic/output/ (strict vs equal pivots)
|
|
|
|
|
|
|
|
|
|
Three semantic layers separated:
|
|
|
|
|
INTENDED : CHoCH = reversal of the internal structure (close break of the last
|
|
|
|
|
internal swing + opposite prior trend + non-opposing swing gate);
|
|
|
|
|
CHoCH/MSS = synonymous labels; Sweep->CHoCH->OB/FVG chain (40);
|
|
|
|
|
a separate MSS (break+displacement) is NOT defined.
|
|
|
|
|
LEGACY : trigger identical; the signal gate applies freshness (curBar-chochBar)<=40;
|
|
|
|
|
ML features f8/f9/f18 use a PERSISTENT state without expiry.
|
|
|
|
|
CURRENT : trigger identical; f8 = last CHoCH (persistent per contract); f9/f18 =
|
|
|
|
|
raw-state consumption WITHOUT expiry (stale 34.7% / 58%); Engine 2
|
|
|
|
|
AF_DetectChoch = second definition (fractal 2/2, no gate, per-TF);
|
|
|
|
|
display = third definition (fractal 2/2).
|
2026-08-22 17:01:54 +07:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 3. SPECIFICATION (docs/SMC_CHOCH_MSS_SPEC_v1.md)
|
|
|
|
|
|
|
|
|
|
```text
|
2026-08-22 17:21:46 +07:00
|
|
|
REFERENCE : f8/f9 = last internal swing pivot, fractal 5/5 (equal allowed), single
|
|
|
|
|
level; swing len=50 is only the gate; HTF NOT valid.
|
|
|
|
|
FORMATION : fractal 5/5, equal allowed, confirmation p+5 <= b, window
|
|
|
|
|
[max(95,t-604), t-5]; MIN_BARS gate 160.
|
2026-08-22 17:01:54 +07:00
|
|
|
CHOCH : bullish: close[b] > last internal pivot high, prior trend<0,
|
2026-08-22 17:21:46 +07:00
|
|
|
SwingTrendAt(b)>=0. bearish: symmetric (close < last low, prior>0,
|
|
|
|
|
SwingTrendAt<=0). CLOSE-CONFIRMED; wick-only insufficient; body not
|
|
|
|
|
required; displacement NOT required.
|
|
|
|
|
MSS : SAME AS CHOCH (project synonym label). No separate MSS primitive
|
|
|
|
|
(code grep = 0 matches). MSS+displacement NOT adopted.
|
|
|
|
|
DIRECTION : +1 bullish (reversal from down), -1 bearish, 0 none.
|
|
|
|
|
PRECONDITION: prior internal trend != 0 (the first break = BOS, not CHoCH);
|
|
|
|
|
non-opposing swing gate (>=0/<=0 — WEAK gate, A-4).
|
|
|
|
|
TEMPORAL : closed bar t; break b <= t; pivot p+5 <= b; no future.
|
|
|
|
|
EVENT/STATE : EVENT (detection) + STATE (f8 last dir, persistent per contract) +
|
|
|
|
|
VALIDITY WINDOW 40 for chain consumers (f9/f18/signal gate).
|
2026-08-22 17:01:54 +07:00
|
|
|
LIFECYCLE : NO_CHOCH / ONSET / ACTIVE / EXPIRED / SUPERSEDED;
|
2026-08-22 17:21:46 +07:00
|
|
|
INVALIDATED & CONSUMED not modeled.
|
|
|
|
|
TIMEFRAME : f8/f9 = M15 ONLY; Engine 2 per-TF (H4/M30/M15/M3); canonical project
|
|
|
|
|
= SPECIFICATION AMBIGUOUS (MTF).
|
|
|
|
|
SWEEP REL : CHoCH detection STANDS ALONE; the f9 chain = ordering+direction+
|
|
|
|
|
freshness; f7 NOT changed.
|
2026-08-22 17:01:54 +07:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 4. CONFORMANCE (docs/P3_S3_CHOCH_MSS_CONFORMANCE.md)
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
Detection chain (E-1..E-10, E-12) : CONFORMING
|
2026-08-22 17:21:46 +07:00
|
|
|
structure, swing, trigger, break semantics, direction, precondition,
|
|
|
|
|
closed-bar, detector lifecycle (one event per transition), f8 state.
|
|
|
|
|
Confluence gate (E-7) : PARTIALLY CONFORMING
|
|
|
|
|
WEAK gate (>=0/<=0) vs the "align" comment (A-4); the spec adopts weak.
|
2026-08-22 17:01:54 +07:00
|
|
|
Event-consumer lifecycle (E-11) : NON-CONFORMING (BUG-P3S3-001)
|
2026-08-22 17:21:46 +07:00
|
|
|
f9/f18 without SEQ_WINDOW -> stale confirm (34.7% f9 / 58% f18 leg).
|
|
|
|
|
Runtime-training pivots (E-13) : PARTIALLY CONFORMING
|
|
|
|
|
parity feed OK (P2.5 1e-9); train_model/P3-infra STRICT diverge
|
|
|
|
|
(0.26% choch_dir / 2.40% choch_bar).
|
|
|
|
|
MSS distinct (E-14) : CONFORMING (no MSS claim)
|
|
|
|
|
Engine 2 / Display (E-15) : CONFORMING to its own definition; project AMBIGUOUS
|
|
|
|
|
Same-bar precedence (E-16) : SPECIFICATION AMBIGUOUS (unreachable)
|
2026-08-22 17:01:54 +07:00
|
|
|
|
|
|
|
|
VERDICT : PARTIALLY CONFORMING
|
2026-08-22 17:21:46 +07:00
|
|
|
(conformance to the project spec; NOT profitability/edge)
|
2026-08-22 17:01:54 +07:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 5. SYNTHETIC TESTS
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
Runner : ml/p3/smc_semantic/spec_tests_choch_mss.py
|
2026-08-22 17:21:46 +07:00
|
|
|
Cases : ml/p3/smc_semantic/spec_test_cases_choch_mss.json (20 cases)
|
2026-08-22 17:01:54 +07:00
|
|
|
Report : ml/p3/smc_semantic/output/spec_tests_choch_mss_report.json
|
|
|
|
|
|
2026-08-22 17:21:46 +07:00
|
|
|
Result : 20/20 PASS
|
|
|
|
|
CH-T01..T15 (required) + T16 (MSS distinction) + T17 (confirmation boundary)
|
|
|
|
|
+ T18 (gate suppression) + T19 (gate permissive) + T20 (BOS continuation).
|
|
|
|
|
spec_oracle (truth, from SPEC S-3..S-10) == expected in all cases.
|
|
|
|
|
code_port (EA port, observation) MATCHES spec in all DETECTION (f8/events);
|
|
|
|
|
DIVERGES in the chain consumer: CH-T08 spec f9=0 (expired age>40) vs
|
|
|
|
|
code f9=1 (stale) -> synthetic evidence for BUG-P3S3-001.
|
|
|
|
|
Expected derived from SPEC, NOT from production code.
|
|
|
|
|
NO AUC/PF/backtest/human annotation/ML on the test path.
|
2026-08-22 17:01:54 +07:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-08-22 17:21:46 +07:00
|
|
|
## 6. STATE/EVENT FORENSIC (diagnostic, mirrors f7 P3-S.0)
|
2026-08-22 17:01:54 +07:00
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
Output : ml/p3/smc_semantic/output/audit_choch_state.json
|
2026-08-22 17:21:46 +07:00
|
|
|
Population XAUUSD M15 2017-2026 (n=197.032, runtime-semantics equal-allowed):
|
2026-08-22 17:01:54 +07:00
|
|
|
|
|
|
|
|
CHoCH onsets : 2.197
|
2026-08-22 17:21:46 +07:00
|
|
|
active bars (f8 != 0) : 196.817 (99.89%) | repetition 89.6x (f7 = 69.5x)
|
|
|
|
|
state run median/max : 318 / 2.187 bars
|
|
|
|
|
state age median/p99 : 49 / 242 bars (max 418)
|
|
|
|
|
state returns to 0 : NEVER after the first event (same as f7)
|
2026-08-22 17:01:54 +07:00
|
|
|
|
2026-08-22 17:21:46 +07:00
|
|
|
f9 chochOK TRUE : 51.105 bars -> STALE (age>40) 17.714 (34.7%)
|
|
|
|
|
f18 +15 leg : 97.826 bars -> STALE 56.761 (58.0%)
|
2026-08-22 17:01:54 +07:00
|
|
|
|
2026-08-22 17:21:46 +07:00
|
|
|
Finding: the f7 pattern repeats on the CHoCH side — the DETECTOR is correct (one
|
|
|
|
|
event per transition), but the CONSUMERS (f9/f18) count the stale state as repeated
|
|
|
|
|
confirmation. Old unit tests do not prove this (not this test path).
|
2026-08-22 17:01:54 +07:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-08-22 17:21:46 +07:00
|
|
|
## 7. RUNTIME/TRAINING PARITY (diagnostic, no retraining)
|
2026-08-22 17:01:54 +07:00
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
Output : ml/p3/smc_semantic/output/parity_choch_pivot_strict_vs_equal.json
|
|
|
|
|
|
|
|
|
|
strict (train_model.build_structure) vs equal-allowed
|
|
|
|
|
(build_features_p2.build_structure_fast == EA):
|
2026-08-22 17:21:46 +07:00
|
|
|
choch_dir mismatch : 512 bars (0.26%)
|
|
|
|
|
choch_bar mismatch : 4.722 bars (2.40%)
|
2026-08-22 17:01:54 +07:00
|
|
|
onsets : 2.165 (strict) vs 2.197 (equal)
|
|
|
|
|
|
2026-08-22 17:21:46 +07:00
|
|
|
The parity feed build_features_p2 (deployed-model P2.6 path) == runtime (P2.5 1e-9
|
|
|
|
|
for f8/f9). The divergence exists only in the old train_model path + P3 forensic
|
|
|
|
|
infra (BUG-P3S3-002, documented).
|
2026-08-22 17:01:54 +07:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-08-22 17:21:46 +07:00
|
|
|
## 8. CONFIRMED BUGS (document-only; NOT fixed in P3-S.3)
|
2026-08-22 17:01:54 +07:00
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
BUG-P3S3-001 [MEDIUM] CONFIRMED, NOT FIXED
|
2026-08-22 17:21:46 +07:00
|
|
|
f9 (chochOK) & f18 (+15 leg) consume CHoCH state WITHOUT SEQ_WINDOW -> a stale
|
|
|
|
|
event stays "confirmed" (34.7% f9 / 58% f18 leg; state age p99 242 bars).
|
|
|
|
|
Same bug class as BUG-P3S2-001 (sweep side); P3-S.0 only fixed f7.
|
|
|
|
|
Fix: (t - chochBar) <= 40 at f9/f18 OR refactor to a single event lifecycle.
|
2026-08-22 17:01:54 +07:00
|
|
|
|
|
|
|
|
BUG-P3S3-002 [LOW] DOCUMENTED
|
2026-08-22 17:21:46 +07:00
|
|
|
train_model.build_structure (STRICT pivots) vs EA/parity feed (equal allowed):
|
|
|
|
|
diverge 0.26% choch_dir / 2.40% choch_bar. Fix: use _pivots_vec on all
|
|
|
|
|
training/forensic paths.
|
2026-08-22 17:01:54 +07:00
|
|
|
|
|
|
|
|
BUG-P3S3-003 [INFO] DOCUMENTED
|
2026-08-22 17:21:46 +07:00
|
|
|
InpConfluenceFilter comment "align with swing trend" vs the WEAK gate (>=0/<=0).
|
|
|
|
|
Spec A-4 = small AMBIGUITY; adjudicate weak vs strong gate.
|
2026-08-22 17:01:54 +07:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 9. SEMANTIC AMBIGUITIES
|
|
|
|
|
|
|
|
|
|
```text
|
2026-08-22 17:21:46 +07:00
|
|
|
1. MSS vs CHoCH (terminology) : project synonym labels; a separate MSS (break+
|
|
|
|
|
displacement) NOT defined -> AMBIGUOUS (no code).
|
|
|
|
|
2. Two/three CHoCH definitions : f8/f9 (5/5+gate, M15) vs Engine 2 (2/2, no gate,
|
|
|
|
|
per-TF) vs Display (2/2, chart TF). f8/f9 is authoritative for ML.
|
|
|
|
|
3. Weak confluence gate : >=0/<=0 ("non-opposing") vs "aligned".
|
|
|
|
|
4. Canonical timeframe : f8/f9 M15 explicit; the HTF role vs LTF events not
|
|
|
|
|
established (same as sweep G-3).
|
|
|
|
|
5. Event vs state in consumers : f8 state (per contract); f9/f18 should be
|
2026-08-22 17:01:54 +07:00
|
|
|
event+window (BUG-P3S3-001).
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 10. NO PRODUCTION CHANGE
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
No production code was modified.
|
|
|
|
|
AF_Engine2_Agents.mqh / AF_DetectChoch / AF_DetectBos / ProcessStructure /
|
2026-08-22 17:21:46 +07:00
|
|
|
f8 / f9 / f18 / f7 / f10 / f11 / OB / FVG / Displacement / ML / Engines 2-3 :
|
|
|
|
|
NOT touched.
|
2026-08-22 17:01:54 +07:00
|
|
|
|
2026-08-22 17:21:46 +07:00
|
|
|
Only P3-S.3 research artifacts added (spec, conformance, tests, forensic,
|
|
|
|
|
parity, handover). P3-S.2 artifacts (immutable) UNCHANGED
|
|
|
|
|
(git status: only new files, 0 modified).
|
2026-08-22 17:01:54 +07:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 11. HUMAN VERIFICATION STATUS
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
HUMAN VERIFICATION = CANCELLED
|
2026-08-22 17:21:46 +07:00
|
|
|
Human annotation not required for P3-S.3.
|
|
|
|
|
Human A/B comparison NOT part of the validation path.
|
|
|
|
|
No new human annotation requests.
|
|
|
|
|
The human_package/ remains as a historical artifact.
|
2026-08-22 17:01:54 +07:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 12. NEXT GATE
|
|
|
|
|
|
|
|
|
|
```text
|
2026-08-22 17:21:46 +07:00
|
|
|
After the CHoCH/MSS verdict (PARTIALLY CONFORMING):
|
2026-08-22 17:01:54 +07:00
|
|
|
FVG -> OB -> Displacement -> MTF Alignment -> Candidate Setup.
|
2026-08-22 17:21:46 +07:00
|
|
|
DO NOT return to ML; DO NOT build a meta-label; DO NOT create new event labels.
|
2026-08-22 17:01:54 +07:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 13. CHECKPOINT & PROVENANCE (P3-S.3)
|
|
|
|
|
|
|
|
|
|
```text
|
2026-08-22 17:21:46 +07:00
|
|
|
Forge HEAD (before the P3-S.3 commit) : 595b4c9a (P3-S.2) — VERIFIED
|
2026-08-22 17:01:54 +07:00
|
|
|
P3-S.0 commit : b519a34
|
|
|
|
|
P3-S.1 commit : 8c1ef6c
|
|
|
|
|
P3-S.2 checkpoint : c7a2b3f5e6acbf8deb748315dcbcc200046d0b84
|
|
|
|
|
FEATURE_CONTRACT : C44CC6F2... (P2-era) / 7b908b12... (committed)
|
|
|
|
|
symbol/tf : XAUUSD / M15 (2017-01-01 .. 2026-08-20)
|
|
|
|
|
Human verification : CANCELLED
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-08-22 17:21:46 +07:00
|
|
|
## 14. P3-S.3 ARTIFACTS
|
2026-08-22 17:01:54 +07:00
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
docs/SMC_CHOCH_MSS_SPEC_v1.md
|
|
|
|
|
docs/P3_S3_CHOCH_MSS_CONFORMANCE.md
|
|
|
|
|
ml/p3/smc_semantic/spec_tests_choch_mss.py
|
|
|
|
|
ml/p3/smc_semantic/spec_test_cases_choch_mss.json
|
|
|
|
|
ml/p3/smc_semantic/output/spec_tests_choch_mss_report.json
|
|
|
|
|
ml/p3/smc_semantic/output/audit_choch_state.json
|
|
|
|
|
ml/p3/smc_semantic/output/parity_choch_pivot_strict_vs_equal.json
|
|
|
|
|
ml/p3/smc_semantic/audit_choch_state.py
|
|
|
|
|
ml/p3/smc_semantic/parity_choch_pivot_check.py
|
2026-08-22 17:21:46 +07:00
|
|
|
docs/SESSION_HANDOVER_2026-08-22_P3_S3_CHOCH_MSS.md (this document)
|
2026-08-22 17:01:54 +07:00
|
|
|
```
|