"""策略交易相关表结构(各所 crypto.db 共用 schema)。""" ROLL_GROUPS_SQL = """ CREATE TABLE IF NOT EXISTS roll_groups ( id INTEGER PRIMARY KEY AUTOINCREMENT, order_monitor_id INTEGER, symbol TEXT NOT NULL, exchange_symbol TEXT, direction TEXT NOT NULL, initial_take_profit REAL, initial_stop_loss REAL, current_stop_loss REAL, risk_percent REAL DEFAULT 2, leg_count INTEGER DEFAULT 0, status TEXT DEFAULT 'active', created_at TEXT, updated_at TEXT ) """ ROLL_LEGS_SQL = """ CREATE TABLE IF NOT EXISTS roll_legs ( id INTEGER PRIMARY KEY AUTOINCREMENT, roll_group_id INTEGER NOT NULL, leg_index INTEGER NOT NULL, add_mode TEXT NOT NULL, fib_upper REAL, fib_lower REAL, limit_price REAL, fill_price REAL, amount REAL, new_stop_loss REAL, exchange_order_id TEXT, status TEXT DEFAULT 'filled', created_at TEXT, FOREIGN KEY (roll_group_id) REFERENCES roll_groups(id) ) """ def init_strategy_tables(conn) -> None: conn.execute(ROLL_GROUPS_SQL) conn.execute(ROLL_LEGS_SQL)