# OKX 期权 — 使用说明

## 1. 前置条件

1. OKX **主账户**已开通期权(USDⓈ 本位),且 App 中可见 `ETHUSD UM` / `BTCUSD UM`.
2. 在 `crypto_monitor_okx/.env` 配置 **期权专用 API**(与永续子账户分开):

```bash
OKX_OPTIONS_ENABLED=true
OKX_OPTIONS_API_KEY=你的主账户Key
OKX_OPTIONS_API_SECRET=...
OKX_OPTIONS_API_PASSPHRASE=...
```

3. 重启实例:`pm2 restart crypto_okx`

> 永续仍用原有 `OKX_API_*`(子账户);期权只用 `OKX_OPTIONS_API_*`(主账户).

## 2. 资金准备

期权权利金使用 **USDC 或 USDG**,不能直接用 USDT 买入.

### 推荐步骤

1. 打开 **期权** 页,查看顶栏:
   - **资金账户**:USDT 余额
   - **交易账户**:USDC 余额(买期权从这里扣)
2. **币种兑换**(资金账户内)  
   - 从 USDT 兑换为 USDC  
   - 先点 **询价**,确认预估获得量后点 **确认兑换**
3. **账户划转**  
   - 从:资金账户 → 到:交易账户  
   - 币种:USDC  
   - 将兑换得到的 USDC 划到交易账户
4. 确认 **交易账户 USDC** 足够支付本笔权利金

系统 **不会** 自动兑换或划转,避免误动资金.

## 3. 下单流程

1. 顶栏进入 **期权**
2. 选择 **ETH** 或 **BTC**
3. 选择 **到期日**(默认仅 1～2 日)
4. 选择 **看涨 Call** 或 **看跌 Put**
5. 在行权价列表中选 **轻度实值** 合约
6. 查看:
   - **卖一价**(每 1 ETH/BTC 的报价)
   - **张数 / ETH 数量**
   - **预估权利金**(USDC)
7. 选择 **按预算打满**(默认 10U×0.95)或 **指定 ETH 数量**
8. 点击 **限价买入**(价格 = 卖一)

### 张数说明

- **1 张 = 0.01 ETH**(或 0.01 BTC)— 与 OKX App「合约价值」一致
- 盘口报价是 **每 1 ETH** 的价格  
  例:报价 15.6,买 0.5 ETH(50 张)→ 权利金 ≈ 15.6 × 0.5 = **7.8 USDC**

## 4. 持仓与平仓

持仓表字段对齐 OKX:合约,张数,开仓均价,标记价,净盈亏,收益率,到期等.

**买一平仓:**

1. 在持仓卡点击 **买一平仓**
2. 系统重读盘口并校验有效买一(非残档)
3. 本轮只按买一深度限价卖出;买一不够则剩余下次再平
4. **市价平仓已禁用**(代码硬关闭)

目标位自动平另需「可回收 ≥ 2×权利金并持续约 2 分钟」;细则见独立说明:

- 仓库文档:[期权开平仓与监控说明.md](./期权开平仓与监控说明.md)
- 线上(登录后):`/options/guide`

## 5. 微信提醒

需已配置 `WECHAT_WEBHOOK`.

| 场景 | 标题 | 说明 |
|------|------|------|
| **开仓** | 【OKX期权·开仓】 | 下单成功并写入本地后必发(幂等) |
| **平仓** | 【OKX期权·平仓】 | 手动全平 / 目标位全平 / 到期或交易所平仓同步后必发(幂等) |
| 浮盈翻倍 | 【OKX期权·翻倍提醒】 | 未实现盈亏 ≥ 已付权利金约 100%,同一笔只提醒一次 |
| 挂单超时撤销 | 【OKX期权·挂单超时撤销】 | 平仓挂单超时被系统撤销 |

## 6. 与永续 / 对冲计划的关系

| | 永续(子账户) | 期权(主账户) |
|--|----------------|----------------|
| API | `OKX_API_*` | `OKX_OPTIONS_API_*` |
| 页面 | 实盘下单 / 关键位 | 期权 · 对冲计划 |
| 资金顶栏 | USDT 资金户+交易户 | 期权页单独显示 USDC 等 |

两套资金 **不合并** 显示.

**期期对冲张数**(对冲计划页,与单独开期权共用预算算法):

| 模式 | 说明 |
|------|------|
| 同张数(默认) | 两腿同 `n`,总权利金 ≤ 预算 |
| 做多 | Call:Put 按主腿占比(默认 7:3) |
| 做空 | Put:Call 按主腿占比(默认 7:3) |

拆分口径与比例见 env:`HEDGE_PLAN_OO_BIAS_SPLIT_BY`(`budget` 默认 / `sheets`=先算同张数总张数 `2n` 再拆)、`HEDGE_PLAN_OO_BIAS_RATIO`(默认 `0.7`)。细则见 [对冲计划开发方案.md](./对冲计划开发方案.md) §4.1、[系统说明.md](./系统说明.md)。

## 7. 配置说明

| 变量 | 默认 | 含义 |
|------|------|------|
| `OKX_OPTIONS_TRADE_BUDGET_USDC` | 10 | 单笔权利金上限 |
| `OKX_OPTIONS_BUDGET_BUFFER` | 0.95 | 算张数时预留 5% 缓冲 |
| `OKX_OPTIONS_MAX_DTE_DAYS` | 2 | 最多选几天内到期 |
| `OKX_OPTIONS_ITM_MAX_DIST_USD` | 30 | 轻度实值:价内不超过多少 USD |
| `OKX_OPTIONS_PROFIT_ALERT_RATIO` | 1.0 | 浮盈/权利金 ≥ 此值推送 |
| `HEDGE_PLAN_OO_BIAS_SPLIT_BY` | budget | 期期做多/做空:按预算或按张数拆 |
| `HEDGE_PLAN_OO_BIAS_RATIO` | 0.7 | 期期做多/做空主腿占比 |

## 8. 期权复盘(含对冲)

仅 **OKX** 实例提供独立页 **期权复盘**(`/options/review`),与合约「交易记录与复盘」完全隔离.

### 数据来源

| 类型 | source_type | 来源 | 粒度 |
|------|-------------|------|------|
| 纯期权 | `option_spot` | 本地 `options_trades` 已平仓 | 一仓一条 |
| 永期对冲 | `perp_options` | 本地 `hedge_plans` 且 `status=closed` | **一计划一条** |
| 期期对冲 | `options_options` | 同上 | **一计划一条** |

- 打开复盘页即自动读取本地记录,**不访问交易所**.
- 对冲盈亏主口径:`realized_pnl_total`;详情另显永续/期权分项.
- 若某纯期权 `inst_id` 已出现在对冲腿中,默认标记排除,避免总盈亏双计.
- 人工复盘字段存在 `options_review_entries`,刷新本地源**不会覆盖**.

### 图片

- 目录:`static/images/options_journal/`
- 文件名:`options_journal_{draftId}_{5m|15m|1h|4h}.ext`(与合约复盘同周期槽位)
- 备份时与 `crypto.db` 一并打包即可;勿与合约 `journal_*` 截图混用.

### 页面

顶部三个 Tab:**期权交易记录** / **期期对冲记录** / **永期对冲记录**.点击列表行后在下方打开「复盘记录上传」,支持四周期即时截图与情绪标签.

### 统计

同页 KPI + 分组:类型、标的、策略标签、对冲结束原因、持有周期、Call/Put.策略维度仅统计已填策略标签的记录.

## 9. 常见问题

**Q:为什么买不了?**  
- 交易账户 USDC 不足 → 先兑换再划转  
- 卖一价过高,10U 预算买不到 1 张 → 选更便宜合约或提高 `OKX_OPTIONS_TRADE_BUDGET_USDC`  
- 期权 API 未配置或 `OKX_OPTIONS_ENABLED=false`

**Q:报价 15 是每张 15U 吗?**  
- 不是.15 是 **每 1 ETH** 的报价;每张(0.01 ETH)约 0.15 USDC.

**Q:子账户能开期权吗?**  
- 本系统期权走主账户 API;子账户永续不受影响.

## 10. 风险说明

- 买方最大亏损为 **权利金**;近期实值仍会时间衰减  
- 限价单可能因无流动性未成交  
- 请先在小额下验证兑换,划转,开平仓全流程
