Centaur_Quant_Architecture/README.md

124 lines
5 KiB
Markdown
Raw Permalink Normal View History

# Centaur Quant Architecture
**Hybrid quantitative trading system for MetaTrader 5** — a deterministic Smart Money
Concepts (SMC) executor paired with a probabilistic LLM analyst. The AI advises;
it **never vetoes** execution.
> Status: **v2.0.0 — production-ready release** · License: MIT · Docs: `00_CONCEPT/`
---
## 1. Overview & Architecture (The Centaur)
A centaur is half deterministic, half probabilistic — exactly like this system.
| Agent | Layer | Role |
|-------|-------|------|
| **Executor** (deterministic) | `MQL5/` | Symbol normalization, strict OB+FVG scanning, anti-veto sizing, dynamic trade management, SDP telemetry |
| **Router / Gateway** | `Python/router/` | Persistent TCP bridge: SDP framing, AI advisory dispatch, telemetry wiring |
| **Probability Analyst** (probabilistic) | `Python/models/` | LLM evaluation of setups (OpenAI / Google GenAI; neutral fallback) |
| **Data Harvest Core** | `Python/database/` + `Database/` | Persists every score → execution → outcome for calibration |
**Closed feedback loop:**
```
Setup_Detected ──► AI_Advisory (score 0-100) ──► Trade_Opened ──► dynamic management
▲ │
└────────────── Trade_Closed (net PnL, R-multiple) ◄────────────┘
TelemetryDB (SQLite/PostgreSQL)
```
---
## 2. Non-Negotiable Tenets
1. **Anti-Veto Principle** — AI scores scale position risk only (≥70 full, 50–69 half,
<50 quarter with a defined floor). They **never block** baseline algorithmic execution;
on AI failure a neutral 40.0 keeps the pipeline trading at minimum risk.
2. **Standardized Data Protocol (SDP v1.0)** — one ratified JSON envelope schema
(`sdp_version`, `timestamp`, `symbol`, `timeframe`, `action_type`,
`algorithmic_confidence_score`, `payload`). `CSDPEncoder` is the **only** permitted
JSON serializer in the MQL5 codebase.
3. **Multi-Asset Dynamic Normalization** — zero hardcoded per-symbol point buffers.
All distances, SL/TP, lot sizes, and noise thresholds are resolved at runtime from
`SymbolInfo*()` and ATR (`CSymbolNormalizer`).
4. **Non-Blocking TCP/IP Transport** — every socket operation is bounded by explicit
timeouts (connect 3 s, send 1 s, read ≤2 s); the MT5 event loop never hangs when the
Python backend is offline.
---
## 3. Repository Layout
```
Centaur_Quant_Architecture/
├── 00_CONCEPT/ # Charter, BOOTSTRAP (DRP), PROGRESS (telemetry log)
├── Database/schema.sql # Production PostgreSQL DDL + v_feedback view
├── MQL5/
│ ├── Experts/CentaurQuant.mq5 # Composition root (all modules wired)
│ └── Include/
│ ├── Core/CSymbolNormalizer.mqh
│ ├── Network/CSDPEncoder.mqh, CSocketClient.mqh
│ ├── Data/DataHarvester.mqh, ContextPackager.mqh
│ └── Execution/COrderBlockScanner.mqh, COrderExecutor.mqh, CHistoryTracker.mqh
└── Python/
├── router/main.py # Central gateway (TCP 127.0.0.1:5555)
├── models/analyzer.py # MarketAnalyzer (LLM evaluation engine)
├── database/telemetry.py # TelemetryDB (SQLite feedback loop)
└── tests/test_sdp_schema.py # QA harness (3/3 green)
```
---
## 4. System Requirements & Setup
### MetaTrader 5
- Any recent build (sockets + CTrade required).
- Copy the `MQL5/` tree into your terminal's `MQL5/` folder (or open the project folder
in MetaEditor) and compile `CentaurQuant.mq5` (**0 errors / 0 warnings expected**).
### Python 3.9+
- `sqlite3`, `socket`, `threading`, `json` — standard library.
- **Optional** LLM SDKs (the router degrades to the neutral 40.0 fallback without them):
```bash
pip install openai google-genai
```
### TCP Port
- Default bind: **127.0.0.1:5555** (router `--host/--port` overrides; EA inputs must match).
---
## 5. Quick Start Guide
1. **Start the gateway** (from the `Python/` folder):
```bash
python router/main.py
```
Optional env: `PROVIDER=openai|google`, `OPENAI_API_KEY`/`GEMINI_API_KEY`, `MODEL`,
`CENTAUR_DB_PATH` (default `centaur_telemetry.db`).
2. **Attach the EA** in MT5: `CentaurQuant` → inputs `Host=127.0.0.1`, `Port=5555`,
`Magic=<yours>`, `RiskPercent` → enable AutoTrading.
3. **Monitor**:
- Router console: `[Setup_Detected]`, `[AI_Advisory]`, `>>> [Trade_Opened/Closed]`.
- Telemetry: `sqlite3 centaur_telemetry.db "SELECT * FROM trades;"`.
- Project state: `00_CONCEPT/PROGRESS.md`.
### QA
```bash
python -m unittest tests.test_sdp_schema # 3/3 tests OK
```
---
## 6. Resynchronization Protocol (for AI-assisted maintenance)
See `00_CONCEPT/BOOTSTRAP.md` — any future session can regain full context by running the
Dynamic Resynchronization Protocol (scan → read → internalize → verify → acknowledge).
---
## 7. License
MIT — see `LICENSE`. Free to use, modify, and distribute; trading use is at your own risk.