Realign market pair when hedge mode switches.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-08-07 16:31:26 +08:00
parent 0659611d82
commit 7d21bc26c7
+15
View File
@@ -403,6 +403,9 @@ async def put_strategy_settings(
data = body.model_dump(exclude_none=True)
equity_to_apply: float | None = None
switch_to: str | None = None
old_hedge = str(
db.get_setting("hedge_mode", s.hedge_mode) or s.hedge_mode or "perp_option"
).strip().lower()
if "exchange" in data:
new_ex = normalize_exchange_name(str(data.pop("exchange")))
@@ -611,6 +614,18 @@ async def put_strategy_settings(
detail=f"交易所已切换为 {switch_to},但行情重连失败: {e}",
) from e
new_hedge = str(
db.get_setting("hedge_mode", s.hedge_mode) or s.hedge_mode or "perp_option"
).strip().lower()
if new_hedge != old_hedge and switch_to is None:
# 对冲模式切换:强制按新模式重对齐监控合约(ATM ↔ 虚值)
try:
from ..strategy.session import get_session
await get_session().ensure_atm_async(force=True)
except Exception:
pass
return _read_settings()