# OKX 期权模块 — 技术方案 > 适用范围:`crypto_monitor_okx` 实例;与永续子账户并行,不新增 PM2 进程。 ## 1. 目标 在现有 OKX 监控实例中增加 **USDⓈ 本位期权(买方)** 能力: - 永续/关键位:继续走 **子账户 API-A**(现有 `OKX_API_*`) - 期权:走 **主账户 API-B**(`OKX_OPTIONS_API_*`) - 资金展示对齐 OKX:**资金账户 / 交易账户**,分币种显示 USDT、USDC、USDG - 支持 **手动 USDT→USDC 兑换** 与 **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 ← OKX_OPTIONS_API_* 主账户 lib/options/ ├── okx_options_lib.py # 封装于 lib/exchange/ ├── options_pricing_lib.py ├── options_db.py ├── options_monitor_lib.py └── options_register.py # 路由 + 监控线程 ``` **隔离:** 期权模块只调用 `exchange_options`;永续逻辑只调用 `exchange`。 ## 4. 资金与兑换 ### 4.1 展示(期权页顶栏) | 账户 | 币种 | |------|------| | 资金账户 | USDT、USDC(若有) | | 交易账户 | USDT、USDC、USDG(若有) | 不展示「练手池」等抽象记账名称。 ### 4.2 推荐操作流程 ``` 资金账户 USDT → [手动兑换 USDT→USDC](OKX Convert API,资金账户内) → [划转到交易账户](USDC) → 交易账户 USDC → [限价买入期权] ``` ### 4.3 API | 接口 | OKX | |------|-----| | 余额 | `fetch_balance`(funding / trading)+ `GET /api/v5/asset/balances` | | 询价兑换 | `POST /api/v5/asset/convert/estimate-quote` | | 确认兑换 | `POST /api/v5/asset/convert/trade` | | 划转 | `exchange.transfer(ccy, amt, from, to)` | ## 5. 配置项(`.env`) ```bash OKX_OPTIONS_ENABLED=false OKX_OPTIONS_API_KEY= OKX_OPTIONS_API_SECRET= OKX_OPTIONS_API_PASSPHRASE= OKX_OPTIONS_ACCOUNT_LABEL=主账户·期权 OKX_OPTIONS_TRADE_BUDGET_USDC=10 OKX_OPTIONS_BUDGET_BUFFER=0.95 OKX_OPTIONS_DEFAULT_UNDERLY=ETH OKX_OPTIONS_MAX_DTE_DAYS=2 OKX_OPTIONS_ITM_MAX_DIST_USD=30 OKX_OPTIONS_PROFIT_ALERT_RATIO=1.0 OKX_OPTIONS_POLL_SECONDS=15 OKX_OPTIONS_TD_MODE=cross OKX_OPTIONS_ALLOW_MARKET_CLOSE=false ``` 修改 `.env` 后须 `pm2 restart crypto_okx`。 ## 6. 数据库 ### `options_trades` 记录本地开仓/平仓、权利金、翻倍提醒状态。 ### `options_convert_log` / `options_transfer_log` 可选记录兑换与划转操作。 ## 7. HTTP 路由 | 方法 | 路径 | |------|------| | GET | `/options` | | GET | `/api/options/balances` | | GET | `/api/options/chain` | | GET | `/api/options/quote` | | POST | `/api/options/open` | | POST | `/api/options/close` | | POST | `/api/options/convert/quote` | | POST | `/api/options/convert/execute` | | POST | `/api/options/transfer` | | GET | `/api/options/positions` | ## 8. 分阶段交付 1. **基础设施**:双 API、余额、文档、设置页说明 2. **兑换 + 划转**:资金账户 USDT→USDC、划转到交易户 3. **交易**:链、报价、开平仓、持仓 4. **监控**:翻倍微信提醒 ## 9. 不在一期范围 - 卖方、组合单、RFQ - 自动 USDT↔USDC - `manual-agent-okx` / 中控聚合 - 币本位期权 ## 10. 安全 - 期权 API:**交易 + 读**,禁止提币 - 日志不输出 Secret - 下单前校验 `client is exchange_options`