-- Create agent_strategies table for trading agent service -- Manages trading strategies and their configuration CREATE TYPE strategy_type AS ENUM ( 'ML_ENSEMBLE', 'MEAN_REVERSION', 'MOMENTUM', 'ARBITRAGE', 'MARKET_MAKING' ); CREATE TYPE strategy_status AS ENUM ( 'ENABLED', 'DISABLED', 'PAUSED', 'ERROR' ); CREATE TABLE IF NOT EXISTS agent_strategies ( strategy_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), strategy_name VARCHAR(100) NOT NULL UNIQUE, strategy_type strategy_type NOT NULL, status strategy_status NOT NULL DEFAULT 'DISABLED', config JSONB NOT NULL, -- Strategy-specific configuration target_symbols TEXT[], -- Symbols this strategy trades max_capital_pct NUMERIC(5, 4) CHECK (max_capital_pct >= 0 AND max_capital_pct <= 1), created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), last_run_at TIMESTAMPTZ, run_count INTEGER NOT NULL DEFAULT 0, error_message TEXT ); -- Indexes for performance CREATE INDEX idx_agent_strategies_status ON agent_strategies(status); CREATE INDEX idx_agent_strategies_type ON agent_strategies(strategy_type); CREATE INDEX idx_agent_strategies_updated ON agent_strategies(updated_at DESC); -- Comments COMMENT ON TABLE agent_strategies IS 'Trading strategies managed by the trading agent'; COMMENT ON COLUMN agent_strategies.config IS 'Strategy-specific parameters in JSON format'; COMMENT ON COLUMN agent_strategies.max_capital_pct IS 'Maximum percentage of portfolio for this strategy';