统计已实现盈亏扣手续费,并按平仓时指数冻结为 U。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-10-08 22:50:21 +08:00
parent e8f8a76753
commit 5e8b578f75
12 changed files with 726 additions and 54 deletions
+13 -2
View File
@@ -284,12 +284,13 @@ def register_hub_bridge_routes(app: Flask, app_module: Any) -> None:
cfg = hub_ctx.get("options_cfg")
if not isinstance(cfg, dict):
return jsonify({"ok": False, "msg": "期权未就绪", "version": 1}), 503
from lib.options.options_history_lib import load_options_history
from lib.options.options_db import init_options_tables
from lib.options.options_margin_mode_lib import is_coin_margin_mode
from lib.options.options_positions_lib import sum_options_net_pnl_usdc
from lib.options.options_stats_lib import (
compute_options_stats_for_window,
history_pnl_to_usdt,
load_local_options_stats_history,
normalize_stats_window,
)
@@ -301,7 +302,17 @@ def register_hub_bridge_routes(app: Flask, app_module: Any) -> None:
raw_live = cfg["fetch_option_positions"](ex)
if raw_live is None:
return jsonify({"ok": False, "msg": "获取期权持仓失败", "version": 1})
history = load_options_history(ex, cfg)
# 与实例统计一致:本地已平(扣费+冻结 U),不跟实时指数漂移
conn = cfg["get_db"]()
try:
init_options_tables(conn)
history = load_local_options_stats_history(conn, ex)
try:
conn.commit()
except Exception:
pass
finally:
conn.close()
stats = compute_options_stats_for_window(history_pnl_to_usdt(history, ex), window)
open_float = sum_options_net_pnl_usdc(cfg, ex, raw_live)
net_realized = stats.get("net_realized_pnl")