DDL schemas for Trading Platform: - User management - Authentication - Payments - Education - ML predictions - Trading data Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
65 lines
2.4 KiB
SQL
65 lines
2.4 KiB
SQL
-- ============================================================================
|
|
-- Schema: trading
|
|
-- Table: bots
|
|
-- Description: Trading bots configurados por usuarios
|
|
-- Dependencies: auth.users, trading.bot_type, trading.bot_status, trading.timeframe
|
|
-- ============================================================================
|
|
|
|
CREATE TABLE trading.bots (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
|
|
-- Propietario
|
|
user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE,
|
|
|
|
-- Configuración básica
|
|
name VARCHAR(100) NOT NULL,
|
|
bot_type trading.bot_type NOT NULL DEFAULT 'paper',
|
|
status trading.bot_status NOT NULL DEFAULT 'paused',
|
|
|
|
-- Símbolos a operar
|
|
symbols VARCHAR(20)[] NOT NULL,
|
|
timeframe trading.timeframe NOT NULL DEFAULT '1h',
|
|
|
|
-- Capital
|
|
initial_capital DECIMAL(20,8) NOT NULL,
|
|
current_capital DECIMAL(20,8) NOT NULL,
|
|
|
|
-- Risk management
|
|
max_position_size_pct DECIMAL(5,2) DEFAULT 10.00, -- % del capital
|
|
max_daily_loss_pct DECIMAL(5,2) DEFAULT 5.00,
|
|
max_drawdown_pct DECIMAL(5,2) DEFAULT 20.00,
|
|
|
|
-- Estrategia (referencia a ML signal provider)
|
|
strategy_type VARCHAR(50), -- 'atlas', 'orion', 'nova', 'custom'
|
|
strategy_config JSONB DEFAULT '{}',
|
|
|
|
-- Estadísticas
|
|
total_trades INTEGER DEFAULT 0,
|
|
winning_trades INTEGER DEFAULT 0,
|
|
total_profit_loss DECIMAL(20,8) DEFAULT 0,
|
|
win_rate DECIMAL(5,2) DEFAULT 0,
|
|
|
|
-- Metadata
|
|
started_at TIMESTAMPTZ,
|
|
stopped_at TIMESTAMPTZ,
|
|
last_trade_at TIMESTAMPTZ,
|
|
|
|
-- Timestamps
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
-- Índices
|
|
CREATE INDEX idx_bots_user ON trading.bots(user_id);
|
|
CREATE INDEX idx_bots_status ON trading.bots(status);
|
|
CREATE INDEX idx_bots_type ON trading.bots(bot_type);
|
|
CREATE INDEX idx_bots_user_status ON trading.bots(user_id, status);
|
|
|
|
-- Comentarios
|
|
COMMENT ON TABLE trading.bots IS 'Trading bots automatizados configurados por usuarios';
|
|
COMMENT ON COLUMN trading.bots.bot_type IS 'Tipo: paper (simulación), live (real), backtest';
|
|
COMMENT ON COLUMN trading.bots.strategy_type IS 'Estrategia ML: atlas, orion, nova, custom';
|
|
COMMENT ON COLUMN trading.bots.max_position_size_pct IS 'Máximo % del capital por posición';
|
|
COMMENT ON COLUMN trading.bots.max_daily_loss_pct IS 'Máxima pérdida diaria permitida (%)';
|
|
COMMENT ON COLUMN trading.bots.max_drawdown_pct IS 'Máximo drawdown permitido (%)';
|