-- ๐Ÿ”ฅ ๋ฆฌ์Šคํฌ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋ฅผ ์œ„ํ•œ DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ -- 1. trading_sessions ํ…Œ์ด๋ธ” ์ƒ์„ฑ (์ผ์ผ ๋ฆฌ์Šคํฌ ๊ด€๋ฆฌ) CREATE TABLE IF NOT EXISTS trading_sessions ( id SERIAL PRIMARY KEY, session_date DATE NOT NULL UNIQUE, consecutive_losses INTEGER DEFAULT 0, consecutive_wins INTEGER DEFAULT 0, daily_profit_loss NUMERIC(15, 2) DEFAULT 0, daily_trades_count INTEGER DEFAULT 0, is_paused BOOLEAN DEFAULT FALSE, pause_reason VARCHAR(200), starting_balance NUMERIC(15, 2), ending_balance NUMERIC(15, 2), peak_balance NUMERIC(15, 2), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE INDEX idx_trading_sessions_date ON trading_sessions(session_date); -- 2. trade_history ํ…Œ์ด๋ธ”์— ๋ฆฌ์Šคํฌ ๊ด€๋ฆฌ ํ•„๋“œ ์ถ”๊ฐ€ ALTER TABLE trade_history ADD COLUMN IF NOT EXISTS entry_trade_id INTEGER, ADD COLUMN IF NOT EXISTS slippage NUMERIC(15, 2), ADD COLUMN IF NOT EXISTS commission NUMERIC(15, 2), ADD COLUMN IF NOT EXISTS net_profit_loss NUMERIC(15, 2), ADD COLUMN IF NOT EXISTS profit_loss_rate NUMERIC(10, 4); -- 3. ๊ธฐ์กด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’ ์„ค์ • (์„ ํƒ์ ) -- ๊ธฐ์กด ๋งค๋„ ๊ฑฐ๋ž˜์— ๋Œ€ํ•ด profit_loss_rate ๊ณ„์‚ฐ (๋งค์ˆ˜ ๊ฑฐ๋ž˜์™€ ํŽ˜์–ด๋ง ํ•„์š”) -- ์ด ๋ถ€๋ถ„์€ ์‹ค์ œ ๋ฐ์ดํ„ฐ์— ๋งž๊ฒŒ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•„์š” COMMENT ON TABLE trading_sessions IS '์ผ์ผ ํŠธ๋ ˆ์ด๋”ฉ ์„ธ์…˜ ๊ด€๋ฆฌ - ์—ฐ์† ์†์‹ค ์ถ”์  ๋ฐ ๋ฆฌ์Šคํฌ ์ œํ•œ'; COMMENT ON COLUMN trade_history.entry_trade_id IS '๋งค๋„ ์‹œ ์—ฐ๊ฒฐ๋œ ๋งค์ˆ˜ ๊ฑฐ๋ž˜ ID'; COMMENT ON COLUMN trade_history.slippage IS '์Šฌ๋ฆฌํ”ผ์ง€ (์ฒด๊ฒฐ๊ฐ€ - ์ฃผ๋ฌธ๊ฐ€)'; COMMENT ON COLUMN trade_history.commission IS '์ˆ˜์ˆ˜๋ฃŒ'; COMMENT ON COLUMN trade_history.net_profit_loss IS '์ˆ˜์ˆ˜๋ฃŒ ์ฐจ๊ฐ ํ›„ ์ˆœ์†์ต'; COMMENT ON COLUMN trade_history.profit_loss_rate IS '์ˆ˜์ต๋ฅ  (%)';