Centaur_Quant_Architecture/00_CONCEPT/CHECKPOINT_2026-08-13_EXP003B.md

165 lines
6.5 KiB
Markdown

# CENTAUR QUANT ARCHITECTURE — OFFICIAL CHECKPOINT
**Checkpoint:** 2026-08-13 14:05 +07 · **Branch:** forge main · **HEAD:** `01b556e` · **Worktree:** CLEAN
**Tujuan:** menyimpan state proyek & konteks evidence secara utuh untuk sesi berikutnya.
**Aturan absolut checkpoint:** C0 CSV **tidak dibaca, tidak di-hash, tidak dianalisis, tidak disalin**.
---
## 1. CURRENT PROJECT STATE
| Item | Nilai |
|------|-------|
| Project | CENTAUR QUANT ARCHITECTURE |
| Branch | `forge main` |
| HEAD | `01b556e` |
| Working tree | CLEAN |
| Baseline | `79275b1`**IMMUTABLE** |
### Commit chain
```text
79275b1 → v2.8.0 baseline (IMMUTABLE)
f81d85d → EXP-003 protocol ratified
88c0ffc → EXP-003 Phase 2 instrumentation + original C0–B4 evidence
01b556e → EXP-003A forensic audit + scanner orientation fix
NEXT → corrected C0 evidence (sesi berikutnya)
```
---
## 2. STATUS EKSPERIMEN
### EXP-003 (original)
- Hasil: C0–B4 semua 0 setup.
- **Klasifikasi: `INVALIDATED BY UPSTREAM IMPLEMENTATION DEFECT`** — tidak valid sebagai evidence strategi.
### EXP-003A
- **Status: `PASS — ROOT CAUSE IDENTIFIED AND MINIMAL FIX VERIFIED`**
- Root cause: `COrderBlockScanner::Scan()` tidak memanggil `ArraySetAsSeries()``open[0]/high[0]/low[0]/close[0]` berorientasi bar **tertua**, logika mengasumsikan bar **terbaru** → evaluasi pola dengan arah waktu terbalik → 0 deteksi.
- Fix (`01b556e`): `ArraySetAsSeries(open/high/low/close/time, true)`. Build: 0E/0W.
### Corrected C0
- **Status: `STILL RUNNING`**
- **Status analisis: `NOT STARTED`** · **CSV: `NOT READ`** · **CSV: `NOT HASHED`**
- Gate A: **NOT EVALUATED** · EXP-003B: **NOT AUTHORIZED** · Trading: **OFF**
---
## 3. EXP-003A REFERENCE EVIDENCE (ORACLE)
Dataset: XAUUSD M15 · 2.848 bar · 94,9% coverage · 31 gap normal.
```text
2.848 bars
└─ displacement 412 (bull 177 / bear 235)
└─ expansion ≥1.2 314
└─ open FVG 288 (bull 126 / bear 162)
└─ OB+FVG 139 (bull 59 / bear 80)
```
**Penting:** `139` = reference/oracle count INDEPENDEN untuk rekonsiliasi — BUKAN expected production setup count.
---
## 4. CORRECTED C0 — KONFIGURASI & OBSERVASI
### Parameter (TIDAK BOLEH diubah selama run)
```text
InpProximityMult = 0.25
InpScanDepth = 200
InpExpansionMin = 1.2
InpAllowMitigatedOB = false
InpEnableTrading = false
```
### Observasi terakhir (14:05 +07)
```text
Run C0 : elapsed 02:20:39 · estimated remaining ±26:56 (cenderung stabil/turun)
CSV sandbox : 146.048.584 bytes (≈146 MB) · modified 2026-08-13T07:05:03Z (aktif tumbuh)
Git : HEAD 01b556e · worktree clean
Trading : OFF
```
Interpretasi: pertumbuhan CSV = aktivitas trigger aktif. **Tidak ada indikasi hang/crash.** Dilarang menarik kesimpulan setup-count dari ukuran CSV sekarang.
---
## 5. KARAKTERISTIK OPERASIONAL (observasi, BUKAN otorisasi)
Setelah fix orientasi, zona dapat berada dalam proksimitas selama banyak siklus timer → pipeline dapat memicu **±setiap 100 ms simulated**. Tiap trigger: context scan → fuzzy fusion → `AppendSetupCSV` (open/write/close) → logging → beban I/O tinggi → estimasi runtime membesar.
Observasi ini **BUKAN** otorisasi untuk: memodifikasi logging, menambah deduplication, menghentikan/restart tester, mengubah scanner/parameter. Perubahan mekanisme logging/dedup hanya dipertimbangkan **setelah C0 selesai & evidence diamankan** (agar tidak mencemari corrected baseline).
Untuk analisis nanti: `raw CSV rows ≠ unique setups` — metrik density = **unique setup = `ob_time` + direction**.
---
## 6. SCIENTIFIC GUARDRAILS (tetap berlaku)
**DILARANG:** parameter/threshold/fuzzy-membership/weight optimization · signal chasing · B5/B6 · mengubah dataset/OOS barrier · live trading · menganggap setup count tinggi sebagai bukti edge.
**BOLEH:** forensic diagnosis · evidence preservation · hashing · oracle reconciliation · duplicate analysis · deterministic instrumentation · code audit untuk menjelaskan discrepancy.
---
## 7. PROSEDUR SESI BERIKUTNYA
### RESYNC (wajib pertama)
Verifikasi keadaan aktual: C0 running? CSV masih berubah? tester sehat? Git HEAD? worktree?
### Jika C0 MASIH RUNNING
`C0 STILL RUNNING — HOLD / OBSERVE`. Tidak memproses CSV, tidak intervensi, tidak Gate A, tidak EXP-003B.
### Jika C0 SUDAH TERMINASI (hanya setelah benar-benar berhenti)
1. Freeze raw CSV · preserve artifact asli.
2. Copy → lokasi evidence (`EXP003B_RESULTS\C0_setups.csv`).
3. Generate **SHA-256** (jangan modifikasi raw sebelum hash).
4. Preserve `.set` + log relevan + metadata run.
5. Analisis: raw rows · unique setups (`ob_time+direction`) · LONG/SHORT · PASS/SKIP · fused bins · duplikat/re-trigger · malformed rows.
6. Rekonsiliasi oracle (412/314/288/139) — jelaskan perbedaan per stage, jangan paksa equality.
7. Evaluasi **Gate A** (`setup_frequency < 2/month → FAIL`) dari unique setup MQL5 corrected — bukan dari EXP-003 lama, bukan oracle saja.
8. **STOP untuk review eksplisit** → baru pertimbangkan EXP-003B (B1–B4, semua `InpEnableTrading=false`).
---
## 8. SPEC ANALISIS C0 MASA DEPAN
- **Raw:** total rows · file size · first/last timestamp · malformed rows · duplicate rows.
- **Unique setup (key `ob_time + direction`):** total · bullish · bearish · frekuensi/bulan.
- **Decision:** PASS · SKIP · PASS rate · SKIP rate.
- **Fused bins:** 0–20 · 20–40 · 40–55 · 55–70 · 70–85 · 85–100.
- **Re-trigger:** raw/unique ratio · repeated triggers per setup · max repetitions · distribusi.
- **Oracle:** displacement 412 · expansion ≥1.2 314 · FVG 288 · OB+FVG 139.
---
## 9. AUDIT TRAIL
```text
01b556e = forensic scanner fix (DONE)
cleanup commit = hapus Python/Temp/read_csv.py (commit terpisah)
C0 evidence commit = evidence C0 corrected (commit terpisah, sesi berikutnya)
```
Jangan mencampur cleanup dengan logic/evidence. `79275b1` immutable.
---
## 10. FINAL CHECKPOINT STATE
```text
SESSION STATE
-------------
C0 = STILL RUNNING
PROJECT = NOT COMPLETE
EXP-003A = PASS
C0 ANALYSIS = NOT STARTED
C0 CSV READ = NO
C0 CSV HASHED = NO
GATE A = NOT EVALUATED
EXP-003B = NOT AUTHORIZED
TRADING = OFF
BASELINE 79275b1 = IMMUTABLE
CURRENT HEAD = 01b556e
WORKTREE = CLEAN
```
> **Deklarasi:** CSV C0 akan di-preserve, di-hash, dan dianalisis HANYA setelah proses C0 benar-benar berhenti — pada sesi berikutnya atau sesi lanjutan. Checkpoint ini tidak mengubah logika eksperimen apa pun.