Add HEDGE_PO_MODE instance modes with shared sim/live path.

Lock one mode per instance/subaccount, cross-asset BTC option/ETH perp sizing, combo-U exit, and ship docs/tests/audit.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-10-14 20:05:25 +08:00
parent ab7a2309ad
commit 5d161b4220
18 changed files with 1215 additions and 115 deletions
+13 -1
View File
@@ -6878,6 +6878,9 @@ def render_main_page(page="trade", embed_mode=None):
_standalone_options_ui = standalone_options_ui_enabled()
_hedge_mode_on = _okx_trade_mode in ("perp_options", "options_options")
_show_perp_funds = show_perp_funds_enabled(exchange_key="okx")
from lib.hedge_plan.hedge_po_mode_lib import public_mode_payload as _po_mode_public
_hedge_po_mode_payload = _po_mode_public()
template_ctx = dict(
page=page,
key=key_list,
@@ -7000,7 +7003,16 @@ def render_main_page(page="trade", embed_mode=None):
options_compound_full_cap_usdc=float(
os.getenv("OKX_OPTIONS_COMPOUND_FULL_CAP_USDC") or "300"
),
options_default_underly=OKX_OPTIONS_DEFAULT_UNDERLY,
options_default_underly=_hedge_po_mode_payload.get("option_underlying")
or OKX_OPTIONS_DEFAULT_UNDERLY,
hedge_po_mode=_hedge_po_mode_payload.get("po_mode"),
hedge_po_mode_label=_hedge_po_mode_payload.get("po_mode_label"),
hedge_po_mode_short=_hedge_po_mode_payload.get("po_mode_short"),
hedge_option_underlying=_hedge_po_mode_payload.get("option_underlying"),
hedge_perp_underlying=_hedge_po_mode_payload.get("perp_underlying"),
hedge_cross_asset=bool(_hedge_po_mode_payload.get("cross_asset")),
hedge_cross_notional_k=_hedge_po_mode_payload.get("cross_notional_k"),
hedge_option_perp_ratio=_hedge_po_mode_payload.get("option_perp_ratio"),
options_chain_ask_liq_filter=os.getenv(
"OKX_OPTIONS_CHAIN_ASK_LIQ_FILTER_ENABLED", "true"
).lower()