# LAPORAN PROYEK — CENTAUR QUANT ARCHITECTURE **Periode:** Inception (CENTAUR_CHARTER.md) → v2.8.0 (Multi-Agent Fuzzy Fusion Engine) **Tanggal laporan:** 2026-08-13 · **Kode sesi:** CHIRON **Status saat laporan:** 17/17 workstream · build 0E/0W · rilis PUBLISHED di Algo Forge · LLM Gemini LIVE --- ## 1. RINGKASAN EKSEKUTIF Centaur Quant Architecture adalah sistem trading kuantitatif hybrid tiga-agen: **Executor (MQL5/SMC)** + **Probability Analyst (LLM)** + **Data Harvest Core (Python+DB)**. Dari charter yang diratifikasi hingga v2.8.0, proyek berkembang dari fondasi 8 modul MQL5 menjadi sistem lengkap: transport SDP non-blocking, telemetri menyeluruh, LLM live via file bridge, ops VPS unattended, rilis Algo Forge, dan — terakhir — **mesin keputusan fusi fuzzy multi-agen dengan bobot tertimbang dinamis**. Pencapaian utama: LLM Gemini **terbukti live** (skor nyata, fallback=False), integrasi end-to-end berjalan, backtest teknikal PASS konsisten, dan arsitektur keputusan telah dirombak dari *single structural confidence* menjadi *konsensus fuzzy 5 agen*. **Isu paling penting yang masih terbuka:** scanner OB+FVG menghasilkan **0 setup dalam 6 bulan** backtest — strategi terlalu ketat; fusi fuzzy belum pernah teruji dengan trade nyata. --- ## 2. KRONOLOGI PROYEK | Tanggal | Sesi / Milestone | Hasil Kunci | Versi/Commit | |---------|------------------|-------------|--------------| | (awal) | **CENTAUR_CHARTER.md diratifikasi** | 5 tenet non-negotiable + SDP v1.0 + layout kanonik | v1.0.0 | | 2026-08-12 | **MQL5 Layer** | 8 modul (Core/Network/Data/Execution) + composition root | v2.0.0 `d7e4a18` | | 2026-08-12 | **Python Router** | `main.py` — reassembly frame, dispatch, mock→live AI advisory | smoke ✅ | | 2026-08-12 | **Track A "The Brain"** | `MarketAnalyzer` — prompt SMC, OpenAI/Google, fallback 40.0, timeout 1.5s | smoke ✅ | | 2026-08-12 | **Track B "The Memory"** | `TelemetryDB` — SQLite thread-safe WAL | 201/201 ✅ | | 2026-08-12 | **System Finalization** | CHistoryTracker, QA harness 3/3, DDL prod (v_feedback) | 3/3 OK | | 2026-08-12 | **Riset LLM Integration** | AI Assistant MT5 (Inferdeck) **tidak callable** — 26× `LLMCreate` err, 403; evolusi kanal → file bridge | riset ✅ | | 2026-08-13 | **LLM LIVE (Gemini)** | Bukti live `score=35.0 fallback=False`; model aktif `gemini-3.1-flash-lite`; silent bugs P1–P4 & S1–S6 diperbaiki | `f200110` `c63bf31` `cbd0d2d` | | 2026-08-13 | **DRP Resync + Inventory Fix** | 16/16→17/17 (CLLMClient ditemukan di disk) | v2.3.0 | | 2026-08-13 | **VPS Unattended + Ops** | AutoLogon, `start_centaur_services.bat`, schtasks, env registry | — | | 2026-08-13 | **SocketSend API Fix + SDP Fix + Live Verify** | `4003` = signature API berubah (buffer_len); `sdp_version` tanpa kutip → JSON invalid; `FileTruncate` tak ada; telemetri TCP mengalir | v2.4.0 | | 2026-08-13 | **Live Verification Penuh + Resilient Ops** | Log spam 97,2% → throttle 1/10 dtk; journal = DISK (UTF-16); guard koneksi ganda; `clean_old_logs.bat` + Task Scheduler; Algo Forge 21+ commit; **handoff BACKTEST** | v2.5.0 | | 2026-08-13 | **DRP Resync v2 + Inventory Docs** (CHIRON) | 17/17 terverifikasi; inventori auxiliary files; koreksi §6 16/16→17/17 | v2.6.0 | | 2026-08-13 | **SMOKE Backtest + Fix Tester-Mode** (CHIRON) | Backtest #1 PASS 4:12 tapi **0 setup/0 trade**; Bug P1 (socket 4014 di tester) & P2 (throttle TimeCurrent) diperbaiki; backtest #2 PASS 4:01.7, log 167 MB→37 baris | v2.7.0 | | 2026-08-13 | **Multi-Agent Fuzzy Fusion Engine** (CHIRON) | `CFuzzyFusion.mqh` — 5 agen, fuzzy logic, bobot dinamis adaptif, gate threshold; unit test + backtest #3 PASS 4:00.1 | v2.8.0 `79275b1` | **Evolusi kanal AI (penting untuk dipahami):** EA→OpenAI langsung → MCP bridge (Rute 2a/2b) → MCP-only single source → **file bridge periodik** (`ai_request.json` ⇄ `assistant_bridge.py` ⇄ MarketAnalyzer → LLM) — hemat token, sederhana, race-safe. --- ## 3. ARSITEKTUR & PRINSIP INTI ### 3.1 Lima Tenet Non-Negotiable (dari charter) 1. **Centaur System** — Executor + Probability Analyst + Data Harvest Core (yang terakhir = *true core*). 2. **Anti-Veto** — skor AI hanya memengaruhi sizing/manajemen, TIDAK PERNAH memblokir eksekusi. 3. **SDP** — satu envelope JSON; `CSDPEncoder` satu-satunya serializer MQL5; raw JSON dilarang. 4. **Normalisasi Dinamis** — nol buffer per-symbol hardcoded; semua jarak dari `SymbolInfo*()` + ATR runtime. 5. **Non-Blocking** — semua I/O punya timeout eksplisit; OnTimer/OnTick tidak boleh hang. ### 3.2 Skema SDP v1.0 Envelope wajib: `sdp_version`, `timestamp`, `symbol`, `timeframe`, `action_type` (+ `algorithmic_confidence_score`, `payload`). Aksi: `Heartbeat`, `Tick_Harvest`, `Setup_Detected`, `Trade_Opened`, `Trade_Closed`. ### 3.3 Arsitektur Keputusan v2.8.0 (baru) ``` Scanner OB+FVG (penyedia setup: arah + level) │ ▼ ┌───────────────────────── Multi-Agent Fuzzy Fusion ─────────────────────────┐ │ Agen: Struktur(SMC) · Trend(EMA50/200) · Momentum(RSI14) · Vol(ATR14/50) │ │ · AI(LLM) │ │ Fuzzifikasi (lemah/sedang/kuat) → agregasi BOBOT DINAMIS → defuzzifikasi │ │ centroid → fused 0..100 │ └─────────────────────────────────┬──────────────────────────────────────────┘ ▼ fused ≥ InpFuzzyThreshold (55)? ├─ ya → eksekusi (sizing pakai fused; anti-veto) └─ tidak → setup dilewati (keputusan kolektif) ``` Bobot dinamis diperbarui online dari outcome trade (win/loss via R-multiple): agen akurat naik bobot, agen salah turun (clamp 0.05–0.60, normalisasi, persistensi file). --- ## 4. TEMUAN-TEMUAN KUNCI 1. **AI Assistant MT5 tidak dapat dipanggil secara programatik** — `LLMCreate` error (build 6090), docs 404, Inferdeck 403. Forum: Web API key hanya untuk validasi status akun. → Solusi: file bridge ke MarketAnalyzer (single source of truth). 2. **`SocketSend` signature MQL5 berubah** — parameter ke-3 adalah `buffer_len`, bukan `max_wait_ms`; semua send lama dikirim dengan nilai timeout sebagai panjang buffer → `4003 ERR_INVALID_PARAMETER`. Bukan masalah lingkungan, murni bug call-site. 3. **Journal expert ternyata DISK, bukan memori** — `MQL5\logs\YYYYMMDD.log` (UTF-16); 97,2% isinya spam; pertumbuhan 23,8 MB/hari. 4. **Socket dilarang di Strategy Tester** — `SocketCreate()` → `4014 ERR_FUNCTION_NOT_ALLOWED`; retry tiap 5 dtk membanjiri log. 5. **Throttle berbasis `TimeCurrent()` tidak efektif di tester** — waktu simulated melaju cepat → 167 MB log dalam 4 menit. 6. **0 setup dalam 6 bulan (XAUUSD M15)** — kombinasi unmitigated ketat + proksimitas 0,25 ATR + depth 200 + expansion_min 1.2 terlalu konservatif untuk memicu trade. 7. **Kredensial git forge kedaluwarsa + Git Credential Manager rusak** (`credential.helper=manager-core` tanpa binary) → push gagal sampai GCM 2.9.1 diinstall (kredensial ternyata masih tersimpan di Windows Credential Manager). 8. **Sampah disk: 44 GB** di `Tester\logs\20260812.log` — di luar cakupan `clean_old_logs.bat`. 9. **Model Gemini berubah cepat** — `2.0-flash` pensiun (404), `2.5-flash-lite` tak tersedia untuk user baru → default aktif `gemini-3.1-flash-lite` ($0.25/$1.50 per 1M; biaya ≈ $0.00005/setup). 10. **Fuzzy fusion matematik valid** — unit test mirror: all-strong=80, all-weak=25.7, konflik=49.2120s blokir entry; `ManagePositions` skip offline | ✅ fixed | | 17 | Tooling: edit multi-line CRLF gagal | `replace_text_in_file` normalisasi LF vs file CRLF | Patch tidak cocok | Patch byte-exact via Python; verifikasi pasca-edit | ✅ workaround | | 18 | Edit tidak sengaja 2× (EnsureConnection) | Anchor `g_sock.Connect` match ganda | Kode redundan (tapi benar) | Verifikasi ulang + format + cleanup | ✅ caught | | 19 | `ai_response.json` stale | File sisa sesi lama | Skor basi | Id-mismatch menanganinya; hapus bila bersih | ✅ handled | **Pelajaran umum:** (a) selalulu verifikasi output tiap edit (kompilasi + baca ulang); (b) uji di tester ≠ live — sandbox tester punya batasan sendiri (socket); (c) throttle log harus berbasis wall-clock, bukan simulated time; (d) kredensial & tooling git adalah bagian dari "operasional" yang bisa jadi single-point-of-failure. --- ## 6. PELUANG YANG BISA DI-EXPLORE ### Prioritas Tinggi (P0) — prapersyarat validasi strategi 1. **Kalibrasi scanner OB+FVG** — longgarkan proksimitas (0,25→0,5 ATR) dan/atau depth (200→400), atau relaksasi kriteria unmitigated/expansion → tujuannya memunculkan setup di backtest sehingga **fusi fuzzy benar-benar teruji**. 2. **Verifikasi live v2.8.0 di demo** — attach EA `InpEnableLLM=true`: siklus penuh Setup→FUSION→Open→Close→DB + adaptasi bobot dinamis dari trade nyata. ### Prioritas Menengah (P1) 3. **Perluas `clean_old_logs.bat` ke `Tester\logs`** — hapus otomatis log agent/tester >30 hari (temuan 44 GB). 4. **Kalibrasi `v_feedback`** — regresi skor→R-multiple di Python begitu telemetri berisi (butuh trade nyata/backtest dengan setup). 5. **Persistensi bobot dinamis ke telemetry DB** — ganti file `centaur_weights.txt` dengan tabel di Data Harvest Core (selaras tenet "data = true core"). ### Prioritas Lanjutan (P2/P3) 6. **Per-agen score masuk SDP payload** — kirim breakdown 5 agen + bobot di `Setup_Detected`/`Trade_Opened` → data training lebih kaya untuk ML. 7. **Agen konteks multi-timeframe (HTF bias)** — bias arah dari H1/H4 sebagai agen ke-6. 8. **Deploy multi-symbol** — arsitektur sudah instrument-agnostic (charter): XAUUSD + EURUSD + indeks, masing-masing dengan bobot fuzzy terpisah. 9. **Risk dinamis** — `InpRiskPercent` statis → sizing adaptif: fraksi risiko ∝ fused score & drawdown berjalan. 10. **Backtest "every tick" (Model=0)** — validasi fill lebih realistis vs OHLC 1 menit. 11. **Upgrade transport ZMQ** (charter §3.1) bila volume telemetri naik. 12. **MQL5 native LLM API** — begitu MetaEditor di-update (jalur AI tanpa bridge). 13. **Optimasi parameter fuzzy** — walk-forward optimization untuk membership/threshold/bobot dasar. 14. **Ensemble LLM** — chain fallback multi-model (Gemini → OpenAI → lokal) untuk skor lebih stabil. --- ## 7. STATUS SAAT INI & HANDOFF BERIKUTNYA **Status:** - 17/17 workstream @ 100% · build MQL5 0E/0W · QA Python 3/3 · LLM Gemini LIVE · rilis Algo Forge. - Commit terakhir: `79275b1` (v2.8.0) — ter-push ke `forge main`. - Backtest SMOKE: PASS konsisten (4:12 → 4:01.7 → 4:00.1) — stabil secara teknis. - **Belum ada trade** (0 setup/6 bulan) → telemetry DB masih kosong. **Handoff sesi berikutnya (prioritas):** 1. Kalibrasi scanner (P0) → backtest ulang sampai muncul setup → uji fusi fuzzy + adaptasi bobot. 2. Verifikasi live demo v2.8.0. 3. Kalibrasi `v_feedback` setelah data telemetri terisi. 4. Disk hygiene: hapus `Tester\logs\20260812.log` (44 GB) + perluas script cleanup. --- ## 8. REFERENSI - `00_CONCEPT/CENTAUR_CHARTER.md` — charter & 5 tenet (v1.0.0, RATIFIED). - `00_CONCEPT/BOOTSTRAP.md` — DRP v1.0.0 (protokol resinkronisasi sesi AI). - `00_CONCEPT/PROGRESS.md` — log progres & telemetri (v2.8.0). - `MQL5/Include/Models/CFuzzyFusion.mqh` — mesin fusi fuzzy multi-agen (baru). - `MQL5/Experts/CentaurQuant.mq5` — composition root (alur keputusan v2.8.0). - `Database/schema.sql` — DDL prod (PostgreSQL, `v_feedback`). - `Python/*` — router, analyzer (MarketAnalyzer), telemetry.py, assistant_bridge.py, ingest_telemetry.py, publish_forge.py. *Laporan disusun otomatis oleh MetaTrader Assistant (sesi CHIRON, nonce Qz4m) — data dari PROGRESS.md v2.8.0 + verifikasi langsung di disk & tester.*