Show option bid as price/size and option leverage on plan and trades.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-31 16:01:34 +08:00
parent dffcd77837
commit dffcc4eeb9
5 changed files with 75 additions and 1 deletions
+31
View File
@@ -101,6 +101,36 @@ def _move_points(g: dict, fills: list) -> float | None:
return round(float(close_px) - e, 2)
def _option_entry_px(fills: list) -> float | None:
for row in fills:
f = dict(row) if not isinstance(row, dict) else row
if str(f.get("leg") or "") != "option" or str(f.get("action") or "") != "open":
continue
try:
v = float(f.get("fill_px") or 0)
if v > 0:
return v
except (TypeError, ValueError):
pass
break
return None
def _option_leverage(g: dict, fills: list) -> float | None:
"""开仓期权杠杆 = 开仓指数 ÷ 期权开仓均价(与选约门限口径一致)。"""
from ..strategy.selection import option_leverage
try:
entry = float(g.get("entry_index_px") or 0)
except (TypeError, ValueError):
return None
opt_px = _option_entry_px(fills)
if entry <= 0 or opt_px is None:
return None
lev = option_leverage(entry, opt_px)
return round(float(lev), 1) if lev is not None else None
def _enrich_group(g: dict, fills: list) -> dict:
summary = summarize_fills_pnl(fills)
# LIVE:优先 groups.realized_pnl(已按交易所回写,含资金费)
@@ -124,6 +154,7 @@ def _enrich_group(g: dict, fills: list) -> dict:
mp = _move_points(g, fills)
g["move_points"] = mp
g["close_index_px"] = _close_index_px(g, fills)
g["option_leverage"] = _option_leverage(g, fills)
return g