fix: align unrealized PnL across four exchange instances via hub_position_metrics

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-04 20:25:06 +08:00
parent 806350231e
commit 673bcbdc70
7 changed files with 126 additions and 16 deletions
+11
View File
@@ -2781,6 +2781,17 @@ def parse_ccxt_position_metrics(position, order_leverage=None):
out["unrealized_pnl"] = round(unrealized, FUNDS_DECIMALS)
if mark is not None and mark > 0:
out["mark_price"] = round(mark, 8)
if out:
sym = (p.get("symbol") or "").strip()
try:
cs = float(get_contract_size(sym)) if sym else 1.0
except Exception:
cs = 1.0
from hub_position_metrics import enrich_ccxt_position_metrics_out
enrich_ccxt_position_metrics_out(
p, out, contract_size=cs, funds_decimals=FUNDS_DECIMALS
)
return out or None