feat: 期货下单写入DB来源与开仓时间,CTP同步均价保证金现价

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-25 15:59:15 +08:00
parent 0741997818
commit 649c064c2f
3 changed files with 148 additions and 59 deletions
+11 -4
View File
@@ -41,6 +41,10 @@ MONITOR_ORDER_COLUMNS = (
"ALTER TABLE trade_order_monitors ADD COLUMN trailing_be INTEGER DEFAULT 0",
"ALTER TABLE trade_order_monitors ADD COLUMN initial_stop_loss REAL",
"ALTER TABLE trade_order_monitors ADD COLUMN trailing_r_locked INTEGER DEFAULT 0",
"ALTER TABLE trade_order_monitors ADD COLUMN margin REAL",
"ALTER TABLE trade_order_monitors ADD COLUMN position_pct REAL",
"ALTER TABLE trade_order_monitors ADD COLUMN mark_price REAL",
"ALTER TABLE trade_order_monitors ADD COLUMN float_pnl REAL",
)
TRADE_RESULTS = ("止损", "止盈", "移动止盈", "保本止盈", "手动平仓")
@@ -146,13 +150,16 @@ def _release_close(monitor_id: int) -> None:
_closing_monitors.discard(monitor_id)
def _monitor_type_label(raw: str) -> str:
def monitor_source_label(raw: str) -> str:
"""持仓展示用来源文案。"""
mapping = {
"manual": "期货下单",
"trend": "趋势回调",
"roll": "顺势加仓",
"ctp_sync": "CTP 柜台",
}
return mapping.get(raw or "", raw or "程序监控")
key = (raw or "manual").strip().lower()
return mapping.get(key, raw or "期货下单")
def _result_for_close(mon: dict, reason: str) -> str:
@@ -284,7 +291,7 @@ def _write_trade_log(
open_time=(mon.get("open_time") or "").strip(),
symbol_name=mon.get("symbol_name") or sym,
market_code=mon.get("market_code") or "",
monitor_type=_monitor_type_label(mon.get("monitor_type") or ""),
monitor_type=monitor_source_label(mon.get("monitor_type") or ""),
capital=capital,
)
@@ -324,7 +331,7 @@ def write_manual_close_trade_log(
open_time=(mon.get("open_time") or open_time).strip(),
symbol_name=mon.get("symbol_name") or symbol_name,
market_code=mon.get("market_code") or market_code,
monitor_type=_monitor_type_label(mon.get("monitor_type") or ""),
monitor_type=monitor_source_label(mon.get("monitor_type") or ""),
capital=capital,
)
return