fix: use isolated margin for OKX option buys (error 51019)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-07 10:24:33 +08:00
parent 2a3f36d34f
commit 5fdfc67438
3 changed files with 56 additions and 12 deletions
+3 -3
View File
@@ -17,7 +17,7 @@ from lib.options.options_pricing_lib import (
premium_per_sheet,
total_premium,
)
from lib.exchange.okx_options_lib import _pos_side_from_position, _safe_float
from lib.exchange.okx_options_lib import _pos_side_from_position, _safe_float, td_mode_for_option_buy
def _env_bool(key: str, default: bool = False) -> bool:
@@ -89,7 +89,7 @@ def _build_cfg(app_module: Any) -> dict[str, Any]:
"max_dte_days": _env_float("OKX_OPTIONS_MAX_DTE_DAYS", 2.0),
"chain_max_dte_days": _env_float("OKX_OPTIONS_CHAIN_MAX_DTE_DAYS", 14.0),
"itm_max_dist": _env_float("OKX_OPTIONS_ITM_MAX_DIST_USD", 30.0),
"td_mode": (os.getenv("OKX_OPTIONS_TD_MODE") or "cross").strip(),
"td_mode": (os.getenv("OKX_OPTIONS_TD_MODE") or "isolated").strip(),
"allow_market_close": _env_bool("OKX_OPTIONS_ALLOW_MARKET_CLOSE", False),
"profit_ratio": _env_float("OKX_OPTIONS_PROFIT_ALERT_RATIO", 1.0),
"poll_seconds": _env_float("OKX_OPTIONS_POLL_SECONDS", 15.0),
@@ -250,7 +250,7 @@ def register_options_routes(app: Flask, cfg: dict[str, Any]) -> None:
side="buy",
sheets=sheets,
price=float(ask),
td_mode=cfg["td_mode"],
td_mode=td_mode_for_option_buy(cfg["td_mode"]),
tick_sz=tick_sz,
)
if not order.get("ok"):