diff --git a/lib/options/options_cond_order_lib.py b/lib/options/options_cond_order_lib.py index b2dc2c2..21d6f3b 100644 --- a/lib/options/options_cond_order_lib.py +++ b/lib/options/options_cond_order_lib.py @@ -45,6 +45,7 @@ def ensure_cond_order_table(conn: sqlite3.Connection) -> None: crossed_at TEXT, opened_inst_id TEXT, opened_trade_id INTEGER, + opened_at TEXT, message TEXT, created_at TEXT, updated_at TEXT, @@ -52,12 +53,29 @@ def ensure_cond_order_table(conn: sqlite3.Connection) -> None: ) """ ) + try: + conn.execute("ALTER TABLE options_cond_orders ADD COLUMN opened_at TEXT") + except Exception: + pass conn.execute( """ CREATE INDEX IF NOT EXISTS idx_options_cond_orders_status ON options_cond_orders(status) """ ) + try: + conn.execute( + """ + UPDATE options_cond_orders + SET opened_at = updated_at + WHERE opened_at IS NULL + AND status = 'open' + AND updated_at IS NOT NULL + AND TRIM(updated_at) != '' + """ + ) + except Exception: + pass def _now() -> str: @@ -715,12 +733,14 @@ def _tick_one( """ UPDATE options_cond_orders SET status='open', opened_inst_id=?, opened_trade_id=?, + opened_at=COALESCE(opened_at, ?), message=?, updated_at=? WHERE hub_order_id=? """, ( inst_id, int(trade_id) if trade_id is not None else None, + _now(), f"已开仓 {inst_id}", _now(), order["hub_order_id"],