File size: 3,572 Bytes
16bbbb2 ba0fd74 16bbbb2 7a31ef1 16bbbb2 7a31ef1 16bbbb2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | -- Trading Bot β Supabase SQL Schema
-- FΓΌge diese Datei im Supabase SQL Editor aus
-- ββββββββββββββββββββββββββββββββββββββββββββββ
-- Tabelle: trades
-- ββββββββββββββββββββββββββββββββββββββββββββββ
CREATE TABLE IF NOT EXISTS trades (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
symbol TEXT NOT NULL,
entry_price FLOAT NOT NULL,
exit_price FLOAT,
position_size_usd FLOAT NOT NULL,
stop_loss FLOAT NOT NULL,
take_profit_1 FLOAT NOT NULL,
take_profit_2 FLOAT NOT NULL,
entry_atr FLOAT NOT NULL DEFAULT 0,
pnl_pct FLOAT,
pnl_usd FLOAT,
realized_pnl_usd FLOAT DEFAULT 0,
risk_reward_ratio FLOAT,
entry_learning_tags TEXT[],
exit_learning_tags TEXT[],
exit_reason TEXT,
opened_at TIMESTAMPTZ DEFAULT NOW(),
closed_at TIMESTAMPTZ,
status TEXT DEFAULT 'open', -- 'open', 'closed'
hold_count INT DEFAULT 0,
tp1_hit BOOLEAN DEFAULT FALSE,
trailing_active BOOLEAN DEFAULT FALSE,
trailing_stop FLOAT,
highest_price FLOAT
);
-- ββββββββββββββββββββββββββββββββββββββββββββββ
-- Tabelle: scan_logs
-- ββββββββββββββββββββββββββββββββββββββββββββββ
CREATE TABLE IF NOT EXISTS scan_logs (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
scanned_at TIMESTAMPTZ DEFAULT NOW(),
market_gate_passed BOOLEAN NOT NULL,
market_gate_reason TEXT,
candidates_found INT DEFAULT 0,
trades_opened INT DEFAULT 0,
trades_closed INT DEFAULT 0,
errors TEXT[],
candidates TEXT[],
ai_decisions JSONB
);
-- ββββββββββββββββββββββββββββββββββββββββββββββ
-- Tabelle: btc_price_log
-- ββββββββββββββββββββββββββββββββββββββββββββββ
CREATE TABLE IF NOT EXISTS btc_price_log (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
price FLOAT NOT NULL,
logged_at TIMESTAMPTZ DEFAULT NOW()
);
-- Index fΓΌr schnellere Abfragen
CREATE INDEX IF NOT EXISTS idx_btc_price_log_logged_at
ON btc_price_log (logged_at DESC);
-- ββββββββββββββββββββββββββββββββββββββββββββββ
-- Tabelle: blacklist
-- ββββββββββββββββββββββββββββββββββββββββββββββ
CREATE TABLE IF NOT EXISTS blacklist (
symbol TEXT PRIMARY KEY,
reason TEXT,
expires_at TIMESTAMPTZ NOT NULL
);
-- Index fΓΌr schnelle Blacklist-Checks
CREATE INDEX IF NOT EXISTS idx_blacklist_expires
ON blacklist (expires_at);
-- ββββββββββββββββββββββββββββββββββββββββββββββ
-- Row Level Security deaktivieren (fΓΌr Bot)
-- ββββββββββββββββββββββββββββββββββββββββββββββ
ALTER TABLE trades DISABLE ROW LEVEL SECURITY;
ALTER TABLE scan_logs DISABLE ROW LEVEL SECURITY;
ALTER TABLE btc_price_log DISABLE ROW LEVEL SECURITY;
ALTER TABLE blacklist DISABLE ROW LEVEL SECURITY;
|