d6823a2903
Position and order forms can arm a target; right-side and hub panels show active monitors; expiry remains the stop with no separate SL. Co-authored-by: Cursor <cursoragent@cursor.com>
96 lines
2.7 KiB
Python
96 lines
2.7 KiB
Python
"""期权模块 SQLite 表."""
|
|
from __future__ import annotations
|
|
|
|
import sqlite3
|
|
|
|
|
|
def init_options_tables(conn: sqlite3.Connection) -> None:
|
|
conn.execute(
|
|
"""
|
|
CREATE TABLE IF NOT EXISTS options_trades (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
inst_id TEXT NOT NULL,
|
|
underlying TEXT NOT NULL,
|
|
opt_type TEXT NOT NULL,
|
|
strike REAL,
|
|
exp_time TEXT,
|
|
sheets INTEGER NOT NULL,
|
|
eth_amount REAL NOT NULL,
|
|
open_quote REAL,
|
|
premium_paid REAL,
|
|
status TEXT DEFAULT 'open',
|
|
close_quote REAL,
|
|
premium_received REAL,
|
|
realized_pnl REAL,
|
|
profit_alert_sent INTEGER DEFAULT 0,
|
|
signal_note TEXT,
|
|
exchange_ord_id TEXT,
|
|
close_ord_id TEXT,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
closed_at TIMESTAMP
|
|
)
|
|
"""
|
|
)
|
|
conn.execute(
|
|
"""
|
|
CREATE TABLE IF NOT EXISTS options_convert_log (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
from_ccy TEXT,
|
|
to_ccy TEXT,
|
|
rfq_sz REAL,
|
|
received_sz REAL,
|
|
quote_id TEXT,
|
|
status TEXT,
|
|
message TEXT,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
)
|
|
"""
|
|
)
|
|
conn.execute(
|
|
"""
|
|
CREATE TABLE IF NOT EXISTS options_history_hidden (
|
|
history_key TEXT PRIMARY KEY,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
)
|
|
"""
|
|
)
|
|
conn.execute(
|
|
"""
|
|
CREATE TABLE IF NOT EXISTS options_transfer_log (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
ccy TEXT,
|
|
amount REAL,
|
|
from_account TEXT,
|
|
to_account TEXT,
|
|
status TEXT,
|
|
message TEXT,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
)
|
|
"""
|
|
)
|
|
conn.execute(
|
|
"""
|
|
CREATE TABLE IF NOT EXISTS options_target_monitors (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
inst_id TEXT NOT NULL,
|
|
underlying TEXT,
|
|
opt_type TEXT,
|
|
target_index REAL NOT NULL,
|
|
trade_id INTEGER,
|
|
sheets INTEGER,
|
|
status TEXT DEFAULT 'active',
|
|
trigger_idx REAL,
|
|
close_ord_id TEXT,
|
|
message TEXT,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
triggered_at TIMESTAMP
|
|
)
|
|
"""
|
|
)
|
|
conn.execute(
|
|
"""
|
|
CREATE INDEX IF NOT EXISTS idx_options_target_monitors_status
|
|
ON options_target_monitors(status)
|
|
"""
|
|
)
|