= {
- fixed_usdt: "固定净盈利达标",
- premium_multiple: "权利金倍数达标",
- expiry: "到期自动全平",
+ fixed_usdt: "固定净盈利达标·双腿全平",
+ premium_multiple: "权利金倍数达标·双腿全平",
+ target_perp_only: "净盈利达标·只平永续(期权归档)",
+ expiry: "到期结算",
emergency: "紧急全平",
manual: "手动平仓",
liquidity_retry: "流动性等待后续平仓",
diff --git a/frontend/src/pages/Plan.tsx b/frontend/src/pages/Plan.tsx
index 3f9b9cf..f9d851c 100644
--- a/frontend/src/pages/Plan.tsx
+++ b/frontend/src/pages/Plan.tsx
@@ -134,7 +134,8 @@ export default function PlanPage() {
SIM 本地撮合 · 行情{" "}
{(snap?.exchange || "okx").toUpperCase()}
- {snap?.perp_inst_id ? ` · ${snap.perp_inst_id}` : ""} · 净盈利达标或到期全平
+ {snap?.perp_inst_id ? ` · ${snap.perp_inst_id}` : ""} ·
+ 目标平仓(双腿/远虚只平永续) · 未达标则到期结算
{err ? {err}
: null}
@@ -228,6 +229,19 @@ export default function PlanPage() {
当前组
{pos?.group_id || "—"}
+
+ 残留期权(待到期)
+
+ {plan?.residuals && plan.residuals.length > 0
+ ? plan.residuals
+ .map(
+ (r) =>
+ `${r.group_id}:${r.option_inst_id || "?"}@${r.expiry_ymd || "?"}`
+ )
+ .join(" · ")
+ : "无"}
+
+
信号方向
{biasTag}
diff --git a/scripts/gen_strategy_xmind.py b/scripts/gen_strategy_xmind.py
index f6e2928..c869e3f 100644
--- a/scripts/gen_strategy_xmind.py
+++ b/scripts/gen_strategy_xmind.py
@@ -395,41 +395,35 @@ def bodies() -> dict[str, list[str]]:
topic(
"平仓",
[
- L("触发即全平 · 先期权后永续"),
+ L("两大类:目标平仓 · 到期平仓"),
G(
- "主出场",
+ "目标A · 双腿全平",
[
- "净利 = 双腿浮盈 − 预估平仓费",
- "默认目标 ≥ 15 USDT",
- "或 ≥ 权利金 × 1.0",
+ "净利达标 + 期权非远虚",
+ "先期权后永续",
+ "流动性闸门:深度 + 标记偏差30%",
],
),
G(
- "流动性闸门",
+ "目标B · 只平永续",
[
- "买一深度足够",
- "买一偏离标记 ≤ 30%",
- "不满足则等待",
+ "净利达标 + 期权远虚(内在约0)",
+ "100x杠杆下波动约1%常远虚",
+ "期权归档到期 · 不再盯盘",
+ "逐仓不挡下一组开仓",
+ "下一组不扫描残留期权",
],
),
G(
- "到期全平",
+ "到期平仓",
[
- "上海 16:00(OKX)",
- "绕过闸门 · 暂停也执行",
- "亏权利金 = 预算成本",
+ "目标未达标 → 持有到到期",
+ "期权按内在价值结算",
+ "活跃组若有永续一并平",
+ "残留组只结归档期权",
],
),
L("另有:紧急全平 / 手动平仓"),
- G(
- "执行",
- [
- "① 确认期权买一",
- "② 平期权入账",
- "③ 瞬时平永续",
- "④ 失败则回滚",
- ],
- ),
],
style_id="sty-ops_close",
marker="arrow-down",
@@ -551,15 +545,15 @@ def mm_flat() -> list[str]:
mm("心法与节奏", [mm(x) for x in ["有波动多做", "目标 15U", "休息 5 分钟", "最多 1 组"]]),
mm("仓位结构", [mm(x) for x in ["永续 1 · 期权 2", "先期权后永续", "ATM 选向"]]),
mm("开仓", [mm(x) for x in ["前置检查", "选约门槛", "四步执行"]]),
- mm("平仓", [mm(x) for x in ["净利达标", "流动性闸门", "到期全平"]]),
+ mm("平仓", [mm(x) for x in ["目标A双腿", "目标B只平永续", "到期结算"]]),
mm("关键参数", [mm(x) for x in ["仓位/杠杆/费率", "目标/休息/周末", "选约/偏差"]]),
],
),
- mm("⑥ 风险评估", [mm(x) for x in ["横盘磨损", "SIM≠实盘", "方向/流动性/保证金", "不做卖方与叠仓"]]),
+ mm("⑥ 风险评估", [mm(x) for x in ["横盘磨损", "SIM≠实盘", "方向/流动性/保证金", "残留不挡新开"]]),
mm("⑦ 纪律要求", [mm(x) for x in [
- "单组 · 休息 · 周末",
- "不硬砸 · 看净利",
- "不报复 · 不叠仓",
+ "活跃1组 · 残留可共存",
+ "远虚归档 · 不挡新开",
+ "看净利 · 不报复",
"SIM 后再放大",
]]),
]