Rename 永期「市价下单」文案为「手动下单」(卖一限价,非交易所市价单).
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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 = '<option value="">选择到期日</option>';
|
||||
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 || "") +
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -45,11 +45,11 @@
|
||||
|
||||
<div id="hp-tab-perp_options" class="hp-tab-panel" role="tabpanel">
|
||||
<div class="options-dual-grid" id="hp-po-layout">
|
||||
<!-- 左:市价选约(与期权下单同风格,人工选) -->
|
||||
<!-- 左:手动选约(与期权下单同风格,人工选;开仓按卖一限价) -->
|
||||
<div class="card hp-po-left-card hp-po-select-card">
|
||||
<div class="hp-po-left-stack">
|
||||
<div class="hp-po-inner-card hp-opt-card">
|
||||
<h2>市价选约 · <span id="hp-opt-type-label">Call</span> <span class="muted hp-acct-tag" id="hp-opt-acct-tag">币本位</span></h2>
|
||||
<h2>手动选约 · <span id="hp-opt-type-label">Call</span> <span class="muted hp-acct-tag" id="hp-opt-acct-tag">币本位</span></h2>
|
||||
<div class="form-row hp-opt-toolbar hp-po-opt-toolbar options-chain-toolbar">
|
||||
<button type="button" class="btn-secondary hp-uly-btn active" data-uly="ETH">ETH</button>
|
||||
<button type="button" class="btn-secondary hp-uly-btn" data-uly="BTC">BTC</button>
|
||||
@@ -73,8 +73,8 @@
|
||||
<button type="button" class="btn-secondary" id="hp-load-chain">刷新链</button>
|
||||
<span id="hp-index-line" class="hp-po-index" aria-live="polite">指数 —</span>
|
||||
</div>
|
||||
<p class="muted hp-po-chain-hint" id="hp-po-pair-hint">买 Call + 永续空 · 点「选择」填入右侧市价下单;比例默认 2(期权 1 → 永续 0.5)。</p>
|
||||
{# 条件单残留字段:隐藏,市价下单不用 #}
|
||||
<p class="muted hp-po-chain-hint" id="hp-po-pair-hint">买 Call + 永续空 · 点「选择」填入右侧手动下单;比例默认 2(期权 1 → 永续 0.5)。</p>
|
||||
{# 条件单残留字段:隐藏,手动下单不用 #}
|
||||
<input type="hidden" id="hp-min-hours" value="0" />
|
||||
<input type="hidden" id="hp-strike-interval" value="0" />
|
||||
<input type="hidden" id="hp-opt-leverage" value="0" />
|
||||
@@ -106,10 +106,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 右:市价下单参数(无选约条件;条件单另议) -->
|
||||
<!-- 右:手动下单参数(无选约条件;条件单另议;开仓按盘口卖一限价,非交易所市价单) -->
|
||||
<div class="card hp-po-right-card hp-po-order-card">
|
||||
<h2>
|
||||
<span id="hp-po-mode-badge" class="hp-po-mode-badge">市价下单</span>
|
||||
<span id="hp-po-mode-badge" class="hp-po-mode-badge">手动下单</span>
|
||||
<span id="hp-po-card-title">下单</span>
|
||||
· <span id="hp-perp-uly-label">ETH</span>
|
||||
<span class="muted hp-acct-tag" id="hp-perp-acct-tag">合约账户</span>
|
||||
@@ -117,7 +117,7 @@
|
||||
<details class="tip-collapse hp-rule-collapse">
|
||||
<summary class="tip-collapse-summary">规则说明</summary>
|
||||
<div class="tip-collapse-body rule-tip">
|
||||
<p><strong>市价下单</strong>:左侧人工选约(同期权页:到期/Call·Put/实虚值),点「选择」后右侧下单;非条件盯盘。</p>
|
||||
<p><strong>手动下单</strong>:左侧人工选约(同期权页:到期/Call·Put/实虚值),点「选择」后右侧下单;开仓按<strong>卖一限价</strong>(非交易所市价单);非条件盯盘。</p>
|
||||
<p><strong>组合</strong>:买 Call → 永续空;买 Put → 永续多。</p>
|
||||
<p><strong>比例</strong>:期权:永续默认 <strong>2</strong>(期权名义 ÷ 比例 = 永续名义)。例:期权 1 BTC → 永续 0.5 BTC。</p>
|
||||
</div>
|
||||
@@ -186,7 +186,7 @@
|
||||
</div>
|
||||
<div class="form-row hp-action-row hp-po-action-row">
|
||||
<span id="hp-po-strategy-status" class="hp-po-strategy-status" aria-live="polite"></span>
|
||||
<button type="button" class="primary" id="hp-preview-btn" title="按左侧已选合约市价开仓(期权+永续)">市价下单</button>
|
||||
<button type="button" class="primary" id="hp-preview-btn" title="按左侧已选合约卖一限价开仓(期权+永续)">手动下单</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user