模拟盘买币改用公开行情,避免无效 OKX Key 导致 50111。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-08-20 16:05:10 +08:00
parent f63b3d9f2a
commit 1bb7f9b0ba
2 changed files with 26 additions and 14 deletions
+13 -14
View File
@@ -277,11 +277,9 @@ def _patch_okx_options_lib(app_module: Any) -> None:
try:
if _GET_DB is not None and is_sim_mode(_GET_DB):
# 对齐实盘: 交易账户 + USDC/USDT 公开买卖一(含手续费滑点)
pub = ex
pub = _sim_public_exchange(ex)
if pub is None and _APP_MODULE is not None:
pub = getattr(_APP_MODULE, "exchange", None) or getattr(
_APP_MODULE, "exchange_options", None
)
pub = getattr(_APP_MODULE, "exchange_options", None)
if pub is None:
return {"ok": False, "msg": "sim: 无公开行情 exchange"}
result = broker().convert_usdt_usdc(
@@ -370,6 +368,15 @@ def _patch_okx_options_lib(app_module: Any) -> None:
_patch_spot_bridge_lib()
def _sim_public_exchange(ex: Any = None) -> Any:
"""模拟盘行情优先用无密钥/公开实例,避免 options 私钥 50111 污染 public 请求."""
if _APP_MODULE is not None:
pub = getattr(_APP_MODULE, "exchange", None)
if pub is not None:
return pub
return ex
def _patch_spot_bridge_lib() -> None:
"""币本位现货桥:模拟盘走本地 USDT↔ETH/BTC,勿打实盘 private_post_trade_order."""
import lib.options.options_spot_bridge_lib as bridge_lib
@@ -396,11 +403,7 @@ def _patch_spot_bridge_lib() -> None:
def spot_market_buy_coin_with_usdt(ex, *, underlying: str, usdt_amount: float):
try:
if _GET_DB is not None and is_sim_mode(_GET_DB):
pub = ex
if pub is None and _APP_MODULE is not None:
pub = getattr(_APP_MODULE, "exchange", None) or getattr(
_APP_MODULE, "exchange_options", None
)
pub = _sim_public_exchange(ex)
if pub is None:
return {"ok": False, "msg": "sim: 无公开行情 exchange"}
result = broker().convert_usdt_coin(
@@ -448,11 +451,7 @@ def _patch_spot_bridge_lib() -> None:
sell_sz = max(0.0, sell_sz * 0.999)
if sell_sz <= 0:
return {"ok": False, "msg": f"{coin} 可卖数量过小"}
pub = ex
if pub is None and _APP_MODULE is not None:
pub = getattr(_APP_MODULE, "exchange", None) or getattr(
_APP_MODULE, "exchange_options", None
)
pub = _sim_public_exchange(ex)
if pub is None:
return {"ok": False, "msg": "sim: 无公开行情 exchange"}
result = broker().convert_usdt_coin(