trading-platform-database-v2/ddl/schemas/trading/tables/04-bots.sql
rckrdmrd 45e77e9a9c feat: Initial commit - Database schemas and scripts
DDL schemas for Trading Platform:
- User management
- Authentication
- Payments
- Education
- ML predictions
- Trading data

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 04:30:23 -06:00

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 (%)';