bf2d668d3c
Filter OKX positions-history to type 2/3/6, format premium and bid recovery to 2 decimals, and allow locally hiding rows via delete button. Co-authored-by: Cursor <cursoragent@cursor.com>
71 lines
1.9 KiB
Python
71 lines
1.9 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
|
|
)
|
|
"""
|
|
)
|