09a763e47d
Co-authored-by: Cursor <cursoragent@cursor.com>
79 lines
2.7 KiB
Markdown
79 lines
2.7 KiB
Markdown
# OKX 期权模块 — 技术方案
|
||
|
||
> 适用范围:`crypto_monitor_okx` 实例;永续与期权共用同一套 `OKX_API_*`,不新增 PM2 进程.
|
||
|
||
## 1. 目标
|
||
|
||
在现有 OKX 监控实例中增加 **USDⓈ 本位期权(买方)** 能力:
|
||
|
||
- 永续/关键位与期权:**同一账户 API**(`OKX_API_*`)
|
||
- 两个 ccxt 客户端:`exchange`(defaultType=swap)与 `exchange_options`(defaultType=option),身份相同
|
||
- 顶栏资金:**资金账户/交易账户=USDT**;**期权资金/期权交易=USDC**
|
||
- 支持 **手动 USDT→USDC 兑换** 与 **账户内划转**(无主↔子划转)
|
||
- **无总资金池上限**;单笔权利金上限可配置(默认 10 USDC)
|
||
|
||
## 2. 交易规则(硬约束)
|
||
|
||
| 规则 | 说明 |
|
||
|------|------|
|
||
| 仅买方 | 开仓 `buy`,平仓 `sell`;禁止卖方开仓 |
|
||
| 产品 | `BTC-USD_UM` / `ETH-USD_UM`(线性,USDC/USDG 结算) |
|
||
| 到期 | 仅展示 ≤2 日到期合约(可配置 `OKX_OPTIONS_MAX_DTE_DAYS`) |
|
||
| 虚实 | 仅 **轻度实值**(`OKX_OPTIONS_ITM_ONLY`) |
|
||
| 合约规格 | **1 张 = 0.01 ETH/BTC**(`ctMult=0.01`,以接口为准) |
|
||
| 报价单位 | 盘口 ask/bid = **每 1 ETH/BTC** 的 USD 价 |
|
||
| 权利金 | `总权利金 = 报价 × ETH数量`;`张数 = ETH数量 / 0.01` |
|
||
| 单笔预算 | `≤ OKX_OPTIONS_TRADE_BUDGET_USDC`(默认 10),算张数 × `OKX_OPTIONS_BUDGET_BUFFER`(默认 0.95) |
|
||
| 开仓 | 限价买单,价格 = 卖一 |
|
||
| 平仓 | 限价卖单,价格 = 买一(市价需显式开启且二次确认) |
|
||
| 监控 | 浮盈 / 已付权利金 ≥ 100% → 企业微信推送一次 |
|
||
|
||
## 3. 架构
|
||
|
||
```
|
||
crypto_okx(单 PM2)
|
||
├── exchange (swap) ← OKX_API_*
|
||
└── exchange_options (option)← 同一套 OKX_API_*
|
||
|
||
lib/options/
|
||
├── okx_options_lib.py # 封装于 lib/exchange/
|
||
├── options_pricing_lib.py
|
||
├── options_db.py
|
||
├── options_monitor_lib.py
|
||
└── options_register.py # 路由 + 监控线程
|
||
```
|
||
|
||
**说明:** `defaultType` 分离避免错路由;密钥身份唯一.旧 `OKX_OPTIONS_API_*` 已废弃.
|
||
|
||
## 4. 资金与兑换
|
||
|
||
### 4.1 展示(实例顶栏)
|
||
|
||
- **资金账户 / 交易账户**:USDT(永续侧)
|
||
- **期权资金账户 / 期权交易账户**:USDC
|
||
- 总资金:USDT + USDC(1:1),同账户 USDT 不重复累加期权侧 USDT
|
||
|
||
### 4.2 兑换与划转
|
||
|
||
- 系统设置「币种兑换」:资金账户内 USDT ↔ USDC
|
||
- 「期权划转」:同账户 funding ↔ trading(USDC/USDT)
|
||
- **已移除**主↔子账户划转
|
||
|
||
## 5. 环境变量(要点)
|
||
|
||
```bash
|
||
OKX_API_KEY=
|
||
OKX_API_SECRET=
|
||
OKX_API_PASSPHRASE=
|
||
OKX_OPTIONS_ENABLED=true
|
||
OKX_OPTIONS_TRADE_BUDGET_USDC=10
|
||
OKX_OPTIONS_ACCOUNT_LABEL=账户·期权
|
||
```
|
||
|
||
详见 [env配置说明.md](./env配置说明.md) 与 `.env.example`.
|
||
|
||
## 6. 相关文档
|
||
|
||
- [期权用法.md](./期权用法.md)
|
||
- [对冲计划开发方案.md](./对冲计划开发方案.md)
|