44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
"""策略交易相关表结构(各所 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)
|