From a957946cfde4695d0cdeb7647653d590a53429bc Mon Sep 17 00:00:00 2001 From: dekun Date: Tue, 6 Oct 2026 16:20:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E5=8D=95=E5=BC=80=E4=BB=93?= =?UTF-8?q?=E6=97=B6=E5=86=99=E5=85=A5=20opened=5Fat=EF=BC=8C=E4=BE=9B?= =?UTF-8?q?=E4=B8=AD=E6=8E=A7=E5=B1=95=E7=A4=BA=E5=BC=80=E4=BB=93=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- lib/options/options_cond_order_lib.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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"],