From 678833be457db53030aa3a85b6b92e233ce6a8a5 Mon Sep 17 00:00:00 2001 From: dekun Date: Fri, 9 Oct 2026 00:48:20 +0800 Subject: [PATCH] =?UTF-8?q?fix=E5=B8=81=E6=9C=AC=E4=BD=8D=E4=B8=8B?= =?UTF-8?q?=E5=8D=95=E4=BF=9D=E7=95=99=E6=8C=89=E5=8F=AF=E7=94=A8=E4=BD=99?= =?UTF-8?q?=E9=A2=9D=E6=89=93=E6=BB=A1=EF=BC=8C=E4=B8=8D=E5=86=8D=E8=A2=AB?= =?UTF-8?q?=E5=BD=92=E4=B8=80=E6=88=90=E6=8C=87=E5=AE=9A=E5=BC=A0=E6=95=B0?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- lib/options/options_pricing_lib.py | 2 +- lib/options/options_register.py | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/lib/options/options_pricing_lib.py b/lib/options/options_pricing_lib.py index ee978c3..8548b4e 100644 --- a/lib/options/options_pricing_lib.py +++ b/lib/options/options_pricing_lib.py @@ -387,7 +387,7 @@ def calc_order_size( ct_mult: float, min_sz: int, budget_usdc: float | None = None, - budget_buffer: float = 0.95, + budget_buffer: float = 1.0, eth_amount: float | None = None, sheets: int | None = None, budget_cap: float | None = None, diff --git a/lib/options/options_register.py b/lib/options/options_register.py index 4bb65cb..5419b6a 100644 --- a/lib/options/options_register.py +++ b/lib/options/options_register.py @@ -250,9 +250,22 @@ def _compound_full_enabled() -> bool: def _normalize_size_mode(mode: str) -> tuple[str, str | None]: - """USDC 预算/全仓模式已下线;统一落到指定张数.""" - m = (mode or "sheets").strip() or "sheets" + """币本位保留打满/复利;USDC 预算模式已下线,落到指定张数.""" + m = (mode or "").strip() + if m == "eth_amount": + m = "eth" + coin = False + try: + from lib.options.options_margin_mode_lib import is_coin_margin_mode + + coin = bool(is_coin_margin_mode()) + except Exception: + coin = False + if not m: + return ("budget_full" if coin else "sheets"), None if m in ("compound_full", "budget_full"): + if coin: + return m, None return "sheets", "USDC 期权模式已下线,已改用指定张数" return m, None @@ -587,7 +600,7 @@ def register_options_routes(app: Flask, cfg: dict[str, Any]) -> None: ask = q.get("ask") ct_mult = q.get("ct_mult") or 0.01 min_sz = q.get("min_sz") or 1 - mode = (request.args.get("mode") or "sheets").strip() + mode = (request.args.get("mode") or "").strip() sheet_count = None try: if request.args.get("sheets"): @@ -766,7 +779,7 @@ def register_options_routes(app: Flask, cfg: dict[str, Any]) -> None: return jsonify({"ok": False, "msg": f"交易模式校验失败: {e}", "can_open": False}) data = request.get_json(silent=True) or {} inst_id = (data.get("inst_id") or "").strip() - mode = (data.get("mode") or "sheets").strip() + mode = (data.get("mode") or "").strip() mode, mode_note = _normalize_size_mode(mode) signal_note = (data.get("signal_note") or "").strip() # 中控条件单占用时禁止手动开仓