diff --git a/lib/exchange/okx_options_lib.py b/lib/exchange/okx_options_lib.py index ea33ba0..da7d5e2 100644 --- a/lib/exchange/okx_options_lib.py +++ b/lib/exchange/okx_options_lib.py @@ -609,12 +609,14 @@ def fetch_options_balances( funding = _merge_balance_maps(funding, asset_funding) funding_avail = _merge_balance_maps(funding_avail, asset_funding_avail) trading, trading_avail = fetch_account_balances_by_type(ex, "trading") - if trading.get("USDC") is None: + # OKX 统一账户:option 客户端拉 type=trading 常缺 USDT/币;用 swap 补齐缺失项 + if any(trading.get(c) is None for c in ("USDT", "USDC", "ETH", "BTC")): swap_bal, swap_avail = fetch_account_balances_by_type(ex, "swap") - if swap_bal.get("USDC") is not None: - trading["USDC"] = swap_bal["USDC"] - if trading_avail.get("USDC") is None and swap_avail.get("USDC") is not None: - trading_avail["USDC"] = swap_avail["USDC"] + for ccy in ("USDT", "USDC", "USDG", "ETH", "BTC"): + if trading.get(ccy) is None and swap_bal.get(ccy) is not None: + trading[ccy] = swap_bal[ccy] + if trading_avail.get(ccy) is None and swap_avail.get(ccy) is not None: + trading_avail[ccy] = swap_avail[ccy] result = { "scope": "main", "funding_usdt": funding.get("USDT"),