diff --git a/lib/common/static/hedge_plan.js b/lib/common/static/hedge_plan.js index 613e355..ccda357 100644 --- a/lib/common/static/hedge_plan.js +++ b/lib/common/static/hedge_plan.js @@ -26,7 +26,7 @@ ooMoneyFilter: "atm_otm", // 期期锁定:平值+虚值 ooRecommend: null, // atm_straddle | double_otm | null ooStrikeExpandAll: false, // 默认 Call/Put 各 3 档 - poStrikeExpandAll: false, // 永期市价选约:默认平值+实3+虚3 + poStrikeExpandAll: false, // 永期手动选约:默认平值+实3+虚3 chain: null, selected: null, legA: null, @@ -71,7 +71,7 @@ if (isOptionPrimary()) { hint.textContent = (dir === "short" ? "买 Put + 永续多" : "买 Call + 永续空") + - " · 点「选择」填入右侧市价下单;比例默认 2(期权 1 → 永续 0.5)。"; + " · 点「选择」填入右侧手动下单;比例默认 2(期权 1 → 永续 0.5)。"; } else { hint.textContent = dir === "short" ? "永续空 + 保险 Call" : "永续多 + 保险 Put"; } @@ -165,7 +165,7 @@ return fmt(v, 2) + ":1"; } - /** 条件单杠杆门槛;市价下单传 0 则不筛. */ + /** 条件单杠杆门槛;手动下单传 0 则不筛. */ function optionPrimaryMinLev() { const minLev = numInput("hp-opt-leverage", 0); if (!(minLev > 0)) return 0; @@ -187,7 +187,7 @@ const m = (c.moneyness || "").toLowerCase(); // 保险模式不可选虚值 if (!isOptionPrimary() && f === "otm") return false; - // 市价下单:仅按 全部/实值/虚值 筛选,不做间隔/杠杆条件门槛 + // 手动下单:仅按 全部/实值/虚值 筛选,不做间隔/杠杆条件门槛 if (isOptionPrimary()) { if (f === "all" || f === "any") return true; if (f === "itm") return m === "itm" || m === "atm"; @@ -371,7 +371,7 @@ if (on) applyOpDefaultsFromMoney(false); const badge = $("hp-po-mode-badge"); if (badge) { - badge.textContent = on ? "市价下单" : "保险模式"; + badge.textContent = on ? "手动下单" : "保险模式"; badge.classList.toggle("is-insurance", !on); } const title = $("hp-po-card-title"); @@ -532,8 +532,8 @@ const btn = $("hp-preview-btn"); if (!btn) return; if (isOptionPrimary()) { - btn.textContent = "市价下单"; - btn.title = "按左侧已选合约立即开仓(买期权+对冲永续);非条件盯盘"; + btn.textContent = "手动下单"; + btn.title = "按左侧已选合约卖一限价开仓(买期权+对冲永续);非交易所市价单、非条件盯盘"; } else { btn.textContent = "计算"; btn.title = "情景测算后再启动"; @@ -637,7 +637,7 @@ updatePerpPnlHint(); } - /** 市价选约:不自动代选;仅在已选失效(换 Call/Put 或筛掉)时清空. */ + /** 手动选约:不自动代选;仅在已选失效(换 Call/Put 或筛掉)时清空. */ function autoMatchPoOption(force) { if (!isOptionPrimary()) return; const want = optTypeForDirection(getDirection()); @@ -1237,7 +1237,7 @@ function fillExpSelect(sel, chain) { if (!sel) return; const prev = sel.value; - // 市价选约:到期列表不过滤(与期权页一致,默认最近一期);条件单 hidden 字段 min-hours=0 + // 手动选约:到期列表不过滤(与期权页一致,默认最近一期);条件单 hidden 字段 min-hours=0 const minH = sel.id === "hp-exp-select" ? numInput("hp-min-hours", 0) : 0; sel.innerHTML = ''; let firstOk = null; @@ -2229,7 +2229,7 @@ if ($("hp-preview-btn")) $("hp-preview-btn").addEventListener("click", function () { state.mode = "perp_options"; - // 以期权为主 = 市价下单(左侧人工选约后立即开);条件盯盘不再从此入口 + // 以期权为主 = 手动下单(左侧人工选约后按卖一限价开);条件盯盘不再从此入口 if (isOptionPrimary()) void startPlan("perp_options", false); else void runPreview(); }); @@ -2890,7 +2890,7 @@ } if (!fromPreviewModal) { const confMsg = isOptionPrimary() - ? "确认市价下单?\n期权 " + + ? "确认手动下单(卖一限价)?\n期权 " + (state.selected && state.selected.inst_id) + " × " + (body.sheets || "") + diff --git a/lib/hedge_plan/hedge_plan_option_primary_lib.py b/lib/hedge_plan/hedge_plan_option_primary_lib.py index 67fff4e..6b53af0 100644 --- a/lib/hedge_plan/hedge_plan_option_primary_lib.py +++ b/lib/hedge_plan/hedge_plan_option_primary_lib.py @@ -267,7 +267,7 @@ def validate_option_primary_moneyness( m_want = (moneyness or "atm").strip().lower() m_got = classify_moneyness(opt_type=o, strike=k, index_px=s) if m_want in ("all", "any", ""): - # 市价人工选约:不限制虚实值 + # 手动选约:不限制虚实值 pass elif m_want == "itm": if not is_itm_or_atm(opt_type=o, strike=k, index_px=s): @@ -283,7 +283,7 @@ def validate_option_primary_moneyness( else: return "期权类型(实/平/虚)无效" - # 间隔/最短到期/杠杆门槛:仅条件单使用;传 0 表示市价下单跳过 + # 间隔/最短到期/杠杆门槛:仅条件单使用;传 0 表示手动下单跳过 interval_raw = _sf(strike_interval) if interval_raw is None: interval_raw = DEFAULT_STRIKE_INTERVAL @@ -390,7 +390,7 @@ def validate_option_primary_start(body: dict[str, Any]) -> Optional[str]: want = opt_type_for_view(direction) if opt_type != want: return f"以期权为主时做{'多' if direction == 'long' else '空'}须用 {'Call' if want == 'C' else 'Put'}" - # 市价下单:左侧人工选约,跳过条件单(间隔/最短到期/杠杆门槛) + # 手动下单:左侧人工选约,跳过条件单(间隔/最短到期/杠杆门槛) if market: return None moneyness = str(body.get("moneyness") or body.get("option_moneyness") or "otm").strip().lower() diff --git a/lib/hedge_plan/templates/hedge_plan_panel.html b/lib/hedge_plan/templates/hedge_plan_panel.html index e14b4fe..e3fcc05 100644 --- a/lib/hedge_plan/templates/hedge_plan_panel.html +++ b/lib/hedge_plan/templates/hedge_plan_panel.html @@ -45,11 +45,11 @@
- +
-

市价选约 · Call 币本位

+

手动选约 · Call 币本位

@@ -73,8 +73,8 @@ 指数 —
-

买 Call + 永续空 · 点「选择」填入右侧市价下单;比例默认 2(期权 1 → 永续 0.5)。

- {# 条件单残留字段:隐藏,市价下单不用 #} +

买 Call + 永续空 · 点「选择」填入右侧手动下单;比例默认 2(期权 1 → 永续 0.5)。

+ {# 条件单残留字段:隐藏,手动下单不用 #} @@ -106,10 +106,10 @@
- +

- 市价下单 + 手动下单 下单 · ETH 合约账户 @@ -117,7 +117,7 @@
规则说明
-

市价下单:左侧人工选约(同期权页:到期/Call·Put/实虚值),点「选择」后右侧下单;非条件盯盘。

+

手动下单:左侧人工选约(同期权页:到期/Call·Put/实虚值),点「选择」后右侧下单;开仓按卖一限价(非交易所市价单);非条件盯盘。

组合:买 Call → 永续空;买 Put → 永续多。

比例:期权:永续默认 2(期权名义 ÷ 比例 = 永续名义)。例:期权 1 BTC → 永续 0.5 BTC。

@@ -186,7 +186,7 @@

- +