feat条件单候选展示交易户资金,并支持打开实例划转。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -33,6 +33,15 @@ def _sse_heartbeat_sec() -> float:
|
||||
return 25.0
|
||||
|
||||
|
||||
def _safe_float(v: Any) -> float | None:
|
||||
if v is None or v == "":
|
||||
return None
|
||||
try:
|
||||
return float(v)
|
||||
except (TypeError, ValueError):
|
||||
return None
|
||||
|
||||
|
||||
def _candidates_from_snaps(rows: list[dict[str, Any]]) -> list[dict[str, Any]]:
|
||||
out: list[dict[str, Any]] = []
|
||||
for row in rows or []:
|
||||
@@ -45,6 +54,20 @@ def _candidates_from_snaps(rows: list[dict[str, Any]]) -> list[dict[str, Any]]:
|
||||
mode = str(inst.get("mode") or "").strip().lower()
|
||||
if mode not in ("sim", "live"):
|
||||
mode = ""
|
||||
funds = snap.get("funds") if isinstance(snap.get("funds"), dict) else {}
|
||||
# 开仓吃交易户;优先 avail,回退总额
|
||||
trading_usdt = _safe_float(funds.get("trading_usdt_avail"))
|
||||
if trading_usdt is None:
|
||||
trading_usdt = _safe_float(funds.get("trading_usdt"))
|
||||
if trading_usdt is None:
|
||||
trading_usdt = _safe_float(snap.get("trading_usdt"))
|
||||
funding_usdt = _safe_float(funds.get("funding_usdt"))
|
||||
if funding_usdt is None:
|
||||
funding_usdt = _safe_float(snap.get("funding_usdt"))
|
||||
if trading_usdt is not None:
|
||||
trading_usdt = round(float(trading_usdt), 4)
|
||||
if funding_usdt is not None:
|
||||
funding_usdt = round(float(funding_usdt), 4)
|
||||
out.append(
|
||||
{
|
||||
"id": row.get("id"),
|
||||
@@ -55,6 +78,8 @@ def _candidates_from_snaps(rows: list[dict[str, Any]]) -> list[dict[str, Any]]:
|
||||
"selectable": selectable,
|
||||
"mode": mode,
|
||||
"error": row.get("error") or "",
|
||||
"trading_usdt": trading_usdt,
|
||||
"funding_usdt": funding_usdt,
|
||||
}
|
||||
)
|
||||
return out
|
||||
|
||||
Reference in New Issue
Block a user