Files

52 lines
1.4 KiB
MySQL
Raw Permalink Normal View History

CREATE TABLE IF NOT EXISTS signals (
id INTEGER PRIMARY KEY AUTOINCREMENT,
coin TEXT NOT NULL,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
technical_score REAL DEFAULT 50,
news_score REAL DEFAULT 50,
social_score REAL DEFAULT 50,
ai_score REAL DEFAULT 50,
composite_score REAL DEFAULT 50,
signal TEXT DEFAULT 'HOLD'
);
CREATE TABLE IF NOT EXISTS trades (
id INTEGER PRIMARY KEY AUTOINCREMENT,
coin TEXT NOT NULL,
side TEXT NOT NULL,
price REAL NOT NULL,
quantity REAL NOT NULL,
amount_usd REAL NOT NULL,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
reason TEXT
);
CREATE TABLE IF NOT EXISTS positions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
coin TEXT NOT NULL,
entry_price REAL NOT NULL,
quantity REAL NOT NULL,
invested_usd REAL NOT NULL,
status TEXT DEFAULT 'OPEN',
opened_at DATETIME DEFAULT CURRENT_TIMESTAMP,
closed_at DATETIME
);
CREATE TABLE IF NOT EXISTS portfolio (
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
total_value REAL NOT NULL,
cash REAL NOT NULL,
pnl REAL NOT NULL,
pnl_pct REAL NOT NULL
);
CREATE TABLE IF NOT EXISTS settings (
key TEXT PRIMARY KEY,
value TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_signals_coin_ts ON signals(coin, timestamp);
CREATE INDEX IF NOT EXISTS idx_positions_status ON positions(status);
CREATE INDEX IF NOT EXISTS idx_trades_coin ON trades(coin);