Centaur_Quant_Architecture/Database/schema.sql

28 lines
1.4 KiB
SQL

-- Centaur Quant Architecture — Production Telemetry Schema (v1.0)
-- System Finalization deliverable: canonical DDL aligned with the SQLite
-- schema created by Python/database/telemetry.py (Track B).
-- Target: PostgreSQL. For SQLite (dev), use INTEGER PRIMARY KEY and TEXT
-- for the ISO-8601 UTC timestamps; NUMERIC maps to REAL.
CREATE TABLE IF NOT EXISTS trades (
ticket BIGINT PRIMARY KEY, -- MT5 position/order ticket
symbol TEXT NOT NULL,
direction TEXT NOT NULL, -- 'buy' | 'sell'
lot NUMERIC(12,4) NOT NULL,
entry_price NUMERIC(20,8) NOT NULL,
ai_score NUMERIC(6,2) NOT NULL DEFAULT 0, -- advisory score at open
open_time TIMESTAMPTZ, -- ISO-8601 UTC
close_time TIMESTAMPTZ, -- set on close
profit NUMERIC(20,2), -- net PnL in deposit currency
r_multiple NUMERIC(12,4) -- net PnL / initial risk amount
);
CREATE INDEX IF NOT EXISTS idx_trades_symbol ON trades(symbol);
CREATE INDEX IF NOT EXISTS idx_trades_ai ON trades(ai_score);
CREATE INDEX IF NOT EXISTS idx_trades_outcome ON trades(r_multiple);
-- Calibration view: score -> outcome (the ML training signal)
CREATE OR REPLACE VIEW v_feedback AS
SELECT ticket, symbol, ai_score, profit, r_multiple, open_time, close_time
FROM trades
WHERE close_time IS NOT NULL;