# 比特骆驼自动化对冲系统 — 策略说明

> 产品：**比特骆驼自动化对冲系统**（工程 `eth_hedge_sim`）  
> 依据当前代码逻辑整理（SIM 默认真值参数）。  
> 关联：[开发方案](./开发方案.md)、[商业化与授权方案](./商业化与授权方案.md)、[实盘索引](./实盘策略说明.md)、[OKX实盘](./OKX实盘策略说明.md)、[币安实盘](./币安实盘策略说明.md)  
> 更新：2026-08-07（期期对冲互斥模式）

**运行模式**：设置页「运行模式」可切 **SIM / LIVE**；交易所 API 录入后写入服务器 `.env`（不回传明文）。LIVE 须二次确认输入 `LIVE`；**OKX / 币安均可真下单**（须选对应当前交易所并配齐密钥）。有持仓时不可切模式。

分所动作细节另见：[OKX实盘](./OKX实盘策略说明.md)、[币安实盘](./币安实盘策略说明.md)。**策略口径以本文为准。** 期期操作说明见：[期期对冲说明](./期期对冲说明.md)。

---

## 1. 策略一句话

**默认（永期对冲）**：用 **ATM 期权买方** 表达方向弹性，用 **反向永续** 做对冲腿；波动大时争取多轮兑现净盈利，波动小时接受权利金磨损，**到期自动全平**。

**可选（期期对冲）**：系统设置二选一。用回看窗内真实高低点匹配 **虚值 Call + 虚值 Put**，以损预算 1:1 定仓；达标只平盈利腿，亏损腿残留至权利金回升或到期。

本质是 **概率与样本**：不追求每天固定轮次，而按行情吃机会。

**行情来源可切换（SIM）**：系统设置中可选 **OKX** 或 **币安** 公共行情；成交仍为本机模拟撮合，**不下真单**。

| 交易所 | 永续（默认） | 期权 | 说明 |
|--------|--------------|------|------|
| OKX | ETH-USDT-SWAP | ETH-USD_UM（偏 USDC 保证金族） | 当前默认 |
| 币安 | ETHUSDT（USDT-M） | 欧洲期权 ETH-YYMMDD-行权价-C/P（USDT） | 后期实盘优先候选 |

有持仓时不可切换交易所；切换后自动套用该所合约并重连行情。

---

## 2. 仓位结构（默认）

| 腿 | 默认数量 | 方向规则 | 成交方式 |
|----|----------|----------|----------|
| 永续 ETH-USDT-SWAP | **1 ETH** | 见下表 | 市价（吃买一/卖一 + 滑点） |
| 期权 ETH-USD_UM | **2 ETH** 名义 | 只买不卖 | 开仓吃卖一，平仓吃买一 |

**开仓顺序**：先成交期权 → 确认后再市价成交永续。永续盘口失败则回滚期权扣款，不留半边仓。

**平仓顺序**：同样先平期权（买一薄）→ 再瞬时平永续。平期权期间永续对冲先留着；永续盘口失败则回滚期权入账。

永续杠杆默认 **3×**（可配）。永续保证金模式默认 **全仓**（可改逐仓）；期权保证金模式固定买方现金/逐仓意图。同时最多 **1 组**仓，禁止叠仓开下一组。

### 2.0 仓位模式：手动 vs 以损定仓

设置页二选一：

| 模式 | 行为 |
|------|------|
| **手动** | 直接填 `perp_qty_eth` / `option_qty_eth` / `net_profit_target` |
| **以损定仓** | 禁用手填；每次**新开仓前**按预算反推倍数 `k`（一位小数向下），写出永续 `1×k`、期权 `2×k`、出场 `15×k`（强制 `fixed_usdt`） |

预算：

- **亏损幅度**：`本金 × 幅度%`。本金二选一——交易账户总资金（USDT+USDC）或单独本金。  
- **亏损值**：直接填可亏 USDT。

估算最大亏损（须 ≤ 预算）：

```text
premium ≈ ATM卖一 × 2 × k
fee     ≈ 指数 × fee_rate × 3 × k   # 永续开/平 + 期权一次
max_loss = premium + fee
k = floor(budget / (2A + I×fee_rate×3) × 10) / 10
```

`k < 0.1` 或盘口缺失 → 拒绝开仓。

### 2.1 开仓方向

#### 默认（`fixed_direction_enabled=false`）：ATM 相对现价优先

行权价相对标的有偏离时（币安粗档常见），**先按 ATM 偏上/偏下选向**；仅当行权价与标的贴平（≈）时，才回退卖一比价。

| 条件 | 期权 | 永续 | bias |
|------|------|------|------|
| ATM 行权价 **<** 标的（如 1850 vs 1859） | 买入 Call | 做空 | `strike_below_spot` |
| ATM 行权价 **>** 标的（如 1875 vs 1859） | 买入 Put | 做多 | `strike_above_spot` |
| ATM ≈ 标的，且 Call 卖一 > Put 卖一 | 买入 Call | 做空 | `call_ask_gt_put` |
| ATM ≈ 标的，且 Put 卖一 > Call 卖一 | 买入 Put | 做多 | `put_ask_gt_call` |
| ATM ≈ 标的且卖一相等 | 不开仓，继续等待 | — | — |

直觉：偏下行权价用 Call+空，偏上行权价用 Put+多；贴平时再按权利金溢价侧选向。

#### 固定方向（`fixed_direction_enabled=true`）

设置里可开「固定方向」（默认关），并指定永续多或空：

| `fixed_perp_side` | 永续 | 期权 | 行权价约束 | bias |
|-------------------|------|------|------------|------|
| `long` | 做多 | 买入 Put | 实值或平值（K ≥ 标的），优先贴近标的 | `fixed_long_put` |
| `short` | 做空 | 买入 Call | 实值或平值（K ≤ 标的），优先贴近标的 | `fixed_short_call` |

固定方向开启时：**不买虚值**；ATM 偏差限制不适用（由实值/平值规则替代）。

---

## 3. 开仓机制（详细）

### 3.1 何时允许尝试开仓

须**同时**满足：

| # | 条件 | 说明 |
|---|------|------|
| 1 | 策略 `running=1` | 暂停时**不新开**（仍可平仓/到期） |
| 2 | 本地无 blocking 仓 | `flat` 才开；`open` / `half_open` / `option_closed_perp_pending` / `opening` 均禁止新开 |
| 3 | 不在组间休息 | 上一组全平成功后 `rest_seconds`（默认 300s）内不开 |
| 4 | 周末门禁 | `skip_weekends=true` 时上海时区六日跳过新开 |
| 5 | 资金门 | 以损定仓模式下预算推不出 `k≥0.1` → 拒绝开仓 |
| 6 | LIVE 对账 | 开仓前核交易所无「多余」永续/期权残留（防双开） |

### 3.2 选约与选向（逐步）

```
1) 列可交易到期日：剩余时长 ≥ min_option_hours（默认 12h）
2) 跳过「当日已用过」的到期（one_expiry_per_day，默认开）
3) 跳过仍有 pending 残留期权的到期日（避免同到期叠残留）
4) 固定方向关：取该到期 ATM 对（Call/Put）
   固定方向开：同到期取实值或平值、最贴近标的的 Put/Call
5) 未开固定方向且 atm_open_offset_enabled：|K−标的| ≤ max_atm_open_offset，否则换下一到期/等待
6) 选向（见 §2.1）
7) 杠杆门：标的价 ÷ 卖一权利金 ≥ min_option_leverage（默认 100）
8) 以损定仓：按预算算出 k，写入本组 perp/option 名义与出场目标
```

无合格合约：状态等待，记「无合格期权…」，**不硬开**。

### 3.3 成交顺序（SIM / LIVE 相同意图）

```
claim 开仓槽 status=opening
  → 先买期权（吃卖一 / LIVE 市价买）
  → 成功后市价开永续（对冲方向）
  → 两边都成功 → status=open，锁定 initial_premium = 成交价×期权名义（不含费）
  → 永续失败 → 立刻卖回期权回滚；回滚失败 → half_open（见 §5）
```

要点：

- **薄腿优先**：期权先于永续，避免只剩裸永续。
- **单组纪律**：同时最多 1 组活跃仓。
- **SIM**：本地撮合 + 可配 `fee_rate` + 约 1×费率滑点。
- **LIVE**：交易所真实均价与手续费；**不计模拟滑点**。

### 3.4 时间与节奏

| 规则 | 说明 |
|------|------|
| 开仓时间窗 | **已取消**，全天可尝试（仍受选约约束） |
| 周六/周日 | 默认跳过新开（`skip_weekends`）；持仓仍可平 |
| 每日轮次 | **不限制** |
| 组间休息 | 达标/到期/手动/紧急全平**成功后**休息 `rest_seconds` |
| 同到期一日一次 | `one_expiry_per_day`：当日已开过某到期并平仓后，不再开同到期 |
| 暂停时 | 不新开；仍目标平 + 到期 + 残留巡检 |

### 3.5 选约参数

| 参数 | 默认 | 作用 |
|------|------|------|
| `min_option_hours` | 12 | 过滤过近到期 |
| `min_option_leverage` | 100 | 权利金不能太贵 |
| `one_expiry_per_day` | true | 每个到期只开一次（跨日，按 expiry_ymd 历史占用） |
| `fixed_direction_enabled` | false | 固定方向 |
| `fixed_perp_side` | long | long→Put / short→Call |
| `atm_open_offset_enabled` | false | ATM 偏差开关 |
| `max_atm_open_offset` | 3 | \|ATM−标的\| 上限 |

---

## 4. 平仓机制（详细）

平仓入口：**目标平仓**、**到期平仓**、**残留中途回收**、**紧急/手动全平**。

### 4.1 盯盘净盈利口径

```
净盈利 ≈ 永续浮盈 + 期权浮盈 − 预估平仓手续费
期权浮盈 = 当前买一 × 数量 − 初始权利金
```

（盯盘用**买一**，不用标记价顶替持仓合约。）

| 出场模式 | 默认 | 触发 |
|----------|------|------|
| `fixed_usdt` | 15 USDT | 净盈利 ≥ `net_profit_target` |
| `premium_multiple` | 1.0 | 净盈利 ≥ `initial_premium ×` 倍数 |

权利金倍数：**1× = 赚回一倍权利金金额的净利**（权利金 20.41 → 目标约 20.41）。

### 4.2 目标平仓分支 A / B

达标后按期权是否**远虚**分支（远虚：内在价值 ≈ 0，默认阈值约 0.01 USDT/ETH）：

#### 4.2.A 双腿全平（非远虚）

```
校验买一深度覆盖名义
  + 买一/标记偏差 ≤ close_bid_mark_max_pct（默认 30%）
  → 先平期权（SIM 吃买一；LIVE 市价卖）
  → 再平永续
  → 任一步流动性不过 → liquidity_wait，组不变，下 tick 再试
```

LIVE 特殊态：`option_closed_perp_pending`（期权已在交易所卖掉、永续未平完）→ 只续平永续，**禁止再卖一次期权**。

#### 4.2.B 只平永续 + 期权归档（远虚）

```
只市价平永续
  → 期权写入 residual_options（pending）
  → 活跃仓变 flat，可开下一组
  → 残留不挡新开；同到期仍计入「跳过到期」直到残留结清
```

### 4.3 残留期权中途回收（权利金比例）

对 `residual_options.status=pending`：

| 项 | 规则 |
|----|------|
| 巡检间隔 | 默认 **300s**（`residual_close_check_sec`） |
| 门槛 | `买一×数量 ≥ 初始权利金 × residual_min_premium_pct%`（默认 **20%**，设置页可改） |
| 闸门 | 同 4.2.A：深度 + 买一/标记偏差 |
| 下单 | 再刷最新买一并**重算门槛**；LIVE 用买一 **IOC 限价卖**（不扫市价簿） |
| 部分成交 | 已成交部分入账并扣减残留数量；剩余继续 pending |
| 交易所已空 | 对账后本地直接结清，避免重复卖 |
| 未达标/未成交 | 等到下次巡检或到期 |

到期/紧急结算残留：LIVE **优先交易所卖掉**，失败再回落内在价值记账。

### 4.4 到期平仓

- 净利一直未达标 → **不主动砍仓**，持有到期权到期。
- 到期时刻：OKX 惯例 UTC 08:00 = **上海 16:00**（币安按该所交割时刻）。
- **活跃组**：优先交易所平期权+永续；到期无法交易时用内在价值入账。
- **残留组**：只处理归档期权；不改当前活跃仓与下方 ATM。
- 暂停时仍执行到期与目标平仓。

### 4.5 紧急全平 / 手动全平

| 动作 | 行为 |
|------|------|
| 紧急全平 | 尽量双腿市价；可绕过流动性等待；期权成交价仍按买一逻辑（不用标记抬价）；残留优先交易所卖，再内在价值兜底；成功后进休息 |
| 手动全平 | 与策略全平同类入口；运行中手动开仓默认关闭 |

### 4.6 流动性闸门何时生效

| 场景 | 是否强制买一闸门 |
|------|------------------|
| 4.2.A 双腿全平 | **是** |
| 残留中途回收 | **是**（再加权利金比例） |
| 4.2.B 归档当下 | 否（只平永续） |
| 到期 / 紧急 | 可绕过深度/偏差；紧急可市价扫期权 |

### 4.7 原因码

| 原因码 | 含义 |
|--------|------|
| `fixed_usdt` / `premium_multiple` | 目标 · 双腿全平（A） |
| `target_perp_only` | 目标 · 只平永续（B） |
| `residual_premium_close` | 残留 · 权利金回收中途平 |
| `expiry` | 到期结算 |
| `emergency` / `emergency_perp` | 紧急全平 / 紧急只平永续 |
| `liquidity_retry` | 等待流动性后继续全平 |
| `perp_pending_retry` | 期权已平，续平永续 |
| `manual` | 手动全平 |
| `half_open_repair` | 半仓修复（卖掉孤儿期权） |

### 4.8 流程总览

```
有活跃持仓
  ├─ 净利达标？
  │    ├─ 远虚 → B：平永续 + 期权归档残留
  │    └─ 非远虚 → A：流动性闸门 → 先期权后永续；失败则 liquidity_wait
  └─ 未达标 → 持有到到期 → 交易所平 / 内在价值

残留 pending
  ├─ 每 5 分钟：权利金≥设置% + 闸门 → 买一 IOC 卖（可部分成交）
  └─ 否则到期或紧急：优先交易所卖，否则内在价值
```

### 4.9 行情监控与页面展示

| 状态 | 持仓区 | 残留列表 | 下方期权盘口 |
|------|--------|----------|--------------|
| 有活跃组 | 当前组 | 历史残留 | **钉持仓行权价**（禁止借 ATM） |
| 空仓 | 空 | 无/历史 | 跟新 ATM（\|ATM−标的\|≥**5** 点切换） |
| 仅残留 | 空（flat） | 显示归档合约 | 跟新 ATM，不钉残留那张 |

浮盈亏只用**持仓合约买一**。

---

## 5. 实盘常见问题与处理

> 下列状态机为 LIVE 防卡设计；SIM 多数路径不会落到交易所对账，但本地状态名相同。

### 5.1 本地仓位状态

| status | 含义 | 能否新开 | 自动处理 |
|--------|------|----------|----------|
| `flat` | 空仓 | 能 | 选约开仓 |
| `opening` | 已占槽、开仓未完成 | 否 | `recover_opening`：对账后落 open/half_open/清槽 |
| `open` | 双腿齐全 | 否 | 盯目标 / 到期 |
| `half_open` | 仅期权成交、永续未开成且回滚失败 | 否 | `repair_half_open`：卖掉孤儿期权 |
| `option_closed_perp_pending` | 期权已平、永续待平 | 否 | 只续平永续，不重卖期权 |

### 5.2 开仓阶段问题

| 现象 | 原因 | 系统处理 | 人工注意 |
|------|------|----------|----------|
| 期权成交、永续拒单 | 保证金不足、限流、持仓模式不对 | 立刻卖期权回滚；失败→`half_open` 自动修 | OKX 备足 USDT+USDC；确认双向持仓/保证金模式 |
| 进程崩溃在 `opening` | 断电/重启 | 启动后对账恢复或清槽 | 看企微「opening 恢复」；核对交易所是否真有仓 |
| 开仓前对账失败 | 交易所仍有旧仓 | **拒绝开仓** | 先平掉账户里多余仓或紧急全平 |
| 限流 429 | 下单过密 | 退避重试（秒～数十秒） | 独立 IP；勿多实例打同一 Key |
| 币安/OKX 张数换算错感 | ctVal/合约乘数 | 软件内部换算 | 勿在交易所手改张数打乱对账 |

### 5.3 平仓阶段问题

| 现象 | 原因 | 系统处理 | 人工注意 |
|------|------|----------|----------|
| `liquidity_wait` 长时间 | 买一薄或偏离标记 | 持续等待；远虚可走 B | 勿强行市价扫垃圾盘；可调大偏差%或等流动性 |
| 期权已平永续失败 | 保证金/限流 | `option_closed_perp_pending` 续平 | 保证永续账户有余量；勿手工再卖期权 |
| 远虚买一为 0 | 深度枯竭 | 走 B 归档残留 | 正常策略路径，不是故障 |
| 残留 IOC 部分成交 | 买一深度不够吃完 | 部分入账，剩余继续巡检 | 看残留数量是否递减 |
| 残留「交易所已空、本地仍 pending」 | 上次成交未入账/对账 | 对账后本地结清 | 若反复出现查日志查单 |
| 到期无法下单 | 已停止交易 | 内在价值记账 | 与交易所交割核对一口价 |
| 紧急全平仍有残留 | 期权卖不出 | 内在价值强制结 + 尽量交易所卖 | 登录交易所确认期权仓是否清零 |

### 5.4 残留回收专项

| 规则 | 说明 |
|------|------|
| 为何用 IOC 买一而非市价 | 避免扫穿更差价位；吃不到则取消，下轮再试 |
| 门槛跌破 | 二次刷买一后若 \< 设置%，**本轮不卖** |
| 部分成交后门槛 | 按剩余数量比例缩减 `initial_premium` 基准，避免永远达不到 20% |
| 与新开仓 | 残留不挡新开；但**同到期**在残留结清前不会再开 |

### 5.5 运维检查清单（实盘）

1. 设置页：交易所、LIVE、密钥、保证金模式与账户一致。  
2. 小 k（如 0.1）跑通：开仓 → A 或 B → 残留回收或到期 各至少一次。  
3. 关注状态：`opening` / `half_open` / `option_closed_perp_pending` / `liquidity_wait`。  
4. 企微：开平仓与故障推送；残留完全结清才推「权利金回收」类通知。  
5. 中控/策略机版本尽量一致，避免 Fleet 字段漂移。

---

## 6. 策略侧重点

| 侧重点 | 说明 |
|--------|------|
| **吃波动，不赌横盘** | 买方期权需要标的走动；大波动利于达标出场 |
| **概率与轮次** | 波动日可能多轮；磨盘日可能零轮或一轮认亏 |
| **确定性时间规则** | 用周末跳过、到期全平，**不做**难以精准的横盘识别 |
| **费用后净利** | 出场看扣完预估平仓费后的净盈利，避免「账面赚、平完亏」 |
| **单组纪律** | 活跃持仓最多 1 组；远虚归档的残留期权不挡下一组（逐仓） |
| **权利金是成本预算** | 小波动拖到期亏权利金，属于策略设计内损耗，不是异常 bug |
| **目标平仓两分支** | 能平期权则双腿全平；远虚则只平永续、期权归档并可权利金回收 |
| **监控分工** | 有仓钉持仓行权价；空仓/仅残留时下方跟新 ATM；残留腿单独列表 |

适合对外表述：

> 适合有波动的时段；震荡磨盘是主要磨损源。不怕单边大波动本身，怕没波动却持续付时间价值。

---

## 7. 风险点评估

### 7.1 主要风险

| 风险 | 等级 | 说明 | 缓解（已有/建议） |
|------|------|------|------------------|
| **横盘 / 低波动** | 高 | Theta 消耗权利金；永续几乎不贡献利润 | 周末跳过；到期认亏全平；接受磨损日 |
| **方向选错** | 中高 | 卖一比价并非预测圣杯 | 净利达标才兑现；到期强平止损时间 |
| **开平滑点与手续费** | 中 | 双边 taker 侵蚀小目标 | 目标覆盖费用；勿设过低 |
| **期权流动性** | 中 | 远虚买一枯死 | B 归档 + 权利金回收 IOC + 到期结算 |
| **半仓 / pending 卡死** | 中 | 开平中途失败 | §5 状态机自动修复；企微告警 |
| **杠杆与保证金** | 中 | 永续挤压 | 控制名义；LIVE 留缓冲 |
| **SIM≠实盘** | 高（外推时） | 撮合简化 | 小 k 实盘验证 |
| **限流 / 断连** | 中 | 延误开平 | 退避；健康检查 |

### 7.2 明确不做什么（边界）

- 不做卖方期权。
- 不做横盘「智能识别」开仓过滤。
- 不做多组并行。
- LIVE 须授权与二次确认（见商业化方案）。

### 7.3 损益直觉

- **有利波动**：期权端弹性常快于永续对冲损耗 → 易达净利目标。  
- **不利 / 无波动**：权利金贬值 + 费用 → 拖到到期，单组亏损约在权利金量级 + 双边费用。

---

## 8. 最小资金推荐

以下按 **默认仓位**（永续 1 ETH、期权 2 ETH 名义、杠杆 3×）估算，标的价按 **ETH ≈ 1,800–2,200 USDT** 量级。

### 8.1 单组占用粗算

| 项目 | 约略金额（USDT） |
|------|------------------|
| 永续保证金（名义÷杠杆） | ≈ 1,800–2,200 ÷ 3 ≈ **600–750** |
| 期权权利金（ATM、短期限，2 ETH） | 常见约 **15–60**（行情波动大时更高） |
| 开平手续费 / 滑点缓冲 | **20–50** |
| 逆向波动缓冲（避免过紧） | **300–800**（经验缓冲，非精确 VaR） |

### 8.2 建议档位

| 档位 | 建议权益（USDT） | 适用 |
|------|------------------|------|
| **绝对下限（不推荐）** | ≥ **1,500** | 缓冲极薄 |
| **最小可用** | ≥ **3,000** | SIM / 极小实盘验证 |
| **推荐起步** | ≥ **5,000** | 留出磨损日缓冲 |
| **较舒适** | ≥ **10,000** | 连续磨损更从容 |

> 缩放：永续 `0.5`、期权 `1` 约减半资金需求，但费用占比上升。

### 8.3 与出场目标的关系

- 默认净利 **15 USDT**：小而频，依赖波动日。  
- 资金按**多次磨损日**留余量，而非「每组必赚 15」。

### 8.4 SIM 默认

`initial_equity = 10,000` USDT（可改）**不代表**实盘建议入金。试跑建议 **k=0.1**。分所见 [OKX](./OKX实盘策略说明.md)、[币安](./币安实盘策略说明.md)。

---

## 9. 关键可配参数速查

| 参数 | 默认 | 类别 |
|------|------|------|
| `perp_qty_eth` | 1 | 仓位 |
| `option_qty_eth` | 2 | 仓位 |
| `leverage` | 3 | 永续 |
| `perp_margin_mode` | cross | 永续全仓/逐仓 |
| `fee_rate` | 0.0005 | 成本（SIM） |
| `exit_mode` | fixed_usdt | 出场 |
| `net_profit_target` | 15 | 出场 |
| `premium_exit_multiple` | 1.0 | 出场 |
| `rest_seconds` | 300 | 节奏 |
| `skip_weekends` | true | 时间 |
| `one_expiry_per_day` | true | 选约 |
| `min_option_hours` | 12 | 选约 |
| `min_option_leverage` | 100 | 选约 |
| `fixed_direction_enabled` | false | 固定方向 |
| `fixed_perp_side` | long | 固定永续方向 |
| `atm_open_offset_enabled` | false | ATM 偏差开关 |
| `max_atm_open_offset` | 3 | ATM 偏差上限 |
| `close_bid_mark_max_pct` | 30 | 平仓/残留流动性 |
| `residual_min_premium_pct` | 20 | 残留权利金回收门槛% |
| `residual_close_check_sec` | 300 | 残留巡检间隔秒 |
| `hedge_mode` | perp_option | 永期 / 期期二选一 |
| `oo_amplitude_pct` | 1.5 | 期期振幅最大%（超过不开） |
| `oo_amplitude_hours` | 12 | 期期振幅回看小时 |
| `oo_min_option_hours` | 24 | 期期最短剩余到期 |
| `oo_min_leverage` | 200 | 期期单腿最低杠杆 |
| `oo_reward_ratio` | 2 | 期期盈亏比（目标=预算×比） |
| `oo_budget_cushion` | 0.92 | 期期定仓预留比例 |
| `semi_auto_enabled` | false | 半自动总开关（永期） |
| `semi_armed` | false | 半自动本单是否已授权 |
| `semi_view_side` | long | 半自动看法 long/short |
| `semi_option_move_points` | 50 | 半自动顺向波动点数 |
| `semi_perp_exit_unit` | 5 | 半自动净利出场基数（×k） |
| `semi_min_option_hours` | 30 | 半自动选约最短剩余小时 |
| `semi_min_option_leverage` | 200 | 半自动选约最低杠杆（虚值≥180） |
| `semi_moneyness` | otm | 半自动行权类型 itm/atm/otm |
| `semi_otm_max_offset` | 25 | 半自动虚值最大偏离 |
| `semi_perp_unit` | 1 | 半自动永续名义单位 |
| `semi_option_unit` | 4 | 半自动期权名义单位 |

---

## 9.1 期期对冲（option + option）

详见 [期期对冲说明](./期期对冲说明.md)。摘要：

- 回看 `oo_amplitude_hours` 的真实高低；振幅超过 `oo_amplitude_pct` 不开。
- 虚值 Call 贴高、Put 贴低；同到期；杠杆与剩余小时门槛。
- 预算 1:1、qty 一位小数、目标 = B × `oo_reward_ratio`。
- 达标只平盈利腿；亏损腿 residual（20% 回升或到期）。
- SIM / LIVE（OKX、币安）规则对齐。

---

## 9.2 半自动（永期）

详见 [半自动说明](./半自动说明.md)。摘要：

- 系统设置开启后，首页「半自动 · 本单」定方向/点数/净利基数并授权。
- 机器盯选约（ITM/ATM）→ 开 → 平；平完 `wait_human`，不连开。
- 出场：顺向到点且组合净利>0，或净利≥基数×k；先期权后永续。

---

## 10. 修订记录

| 日期 | 说明 |
|------|------|
| 2026-08-08 | 半自动：人工授权单笔；点数/净利出场；中控展示 |
| 2026-08-07 | 期期对冲互斥模式；振幅高低选约；盈亏比出场；SIM/LIVE 双通道 |
| 2026-08-02 | §3/§4 展开开平仓逐步逻辑；新增 §5 实盘状态机与异常处理；残留买一 IOC 回收 |
| 2026-07-24 | 固定方向：永续多→Put / 空→Call，仅实值或平值 |
| 2026-07-25 | 初稿；平仓顺序先期权后永续 |
| 2026-07-26 | 到期内在价值；目标平仓 A/B；有仓钉持仓监控；SIM/LIVE 切换 |
