feat期权链与持仓展示 Delta。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-10-14 22:14:07 +08:00
parent 48f544b1f5
commit 627c27a6f8
8 changed files with 88 additions and 5 deletions
+12
View File
@@ -884,6 +884,10 @@ def build_option_chain(
mark = q["mark_px"]
ask_sz = q["ask_sz"]
bid_sz = q["bid_sz"]
# 行情 ticker:delta;兼容个别字段名
delta = _safe_float(t.get("delta"))
if delta is None:
delta = _safe_float(t.get("deltaBS"))
expiry_be = expiry_breakeven_from_ask(
opt_type=opt_type,
strike=strike,
@@ -904,6 +908,7 @@ def build_option_chain(
"ask_sz": ask_sz,
"bid_sz": bid_sz,
"mark_px": mark,
"delta": delta,
"ask_estimated": q["ask_estimated"],
"expiry_be_px": expiry_be,
"dist_expiry_be": strike_distance_to_be(strike, expiry_be),
@@ -1843,6 +1848,9 @@ def format_position_row(
round(total_premium(avg, eth_amount), 8) if avg is not None and eth_amount > 0 else None
)
delta_pa = _safe_float(pos.get("deltaPA"))
delta_bs = _safe_float(pos.get("deltaBS"))
if delta_bs is None:
delta_bs = _safe_float(pos.get("delta"))
try:
from lib.options.options_margin_mode_lib import margin_mode_from_inst_id
@@ -1909,6 +1917,10 @@ def format_position_row(
total_premium=premium_paid,
margin_mode=row_mode,
),
# 展示用单位 Delta(BS);delta_pa 为仓位美元敏感度
"delta": delta_bs,
"delta_bs": delta_bs,
"delta_pa": delta_pa,
"raw": pos,
}