eca6d091e9
Start strategy arms a watching plan instead of opening immediately; list filters by leverage; type is a dropdown defaulting to OTM. Co-authored-by: Cursor <cursoragent@cursor.com>
2.8 KiB
2.8 KiB
对冲计划 · 永期「以期权为主」
实现日:2026-08-09 · 在现有永期保险模式上增加子模式,不新增
OKX_TRADE_MODE。
模式由 envHEDGE_PLAN_OPTION_PRIMARY切换(默认true),页面标题前显示标识,不可在页内切换。
1. 模式对照
保险模式(OPTION_PRIMARY=false) |
以期权为主(true) |
|
|---|---|---|
| UI 做多 | 永续多 + 买 Put | 买 Call + 永续空 |
| UI 做空 | 永续空 + 买 Call | 买 Put + 永续多 |
| 左卡 | 开仓价 / 张数 / TP / SL | 资金与杠杆 / 选约条件 / 出场条件 三组 |
| 右卡 | 上永续行情 · 下期权链 | 同上;仅展示间隔+类型+杠杆达标候选 |
| 选约 | 仅实值/平值 | 类型下拉(默认虚值)+间隔+杠杆门槛 |
| 开仓 | 受 HEDGE_PLAN_OPEN_ORDER |
策略启动=盯盘(status=watching),达标后才先期权后市价永续(不挂交易所 TP/SL) |
| 出场 | 交易所 TP/SL | 相对 K 的点数目标分叉 |
2. 左卡默认
| 字段 | 默认 |
|---|---|
| 权利金 | 用户填(USDC 预算) |
| 永续杠杆 | 100 |
| 期权杠杆 | 实/平 100;虚 200 |
| 期权:永续比例 | 实/平 2;虚 4 |
| 到期时间(最短 h) | 36 |
| 期权间隔(点) | 15 |
| 期权/永续目标位 | 相对 K 点数,须 >0 |
3. 定仓
usable = 权利金 × 0.95
eth_qty = floor2(usable / ask) # ETH 名义,两位小数
sheets = floor(eth_qty / ct_mult) # 整张
perp_eth = eth_qty / 比例
contracts = perp_eth / contract_size
启动前再拉卖一重算;卖一深度不足则缩量。
4. 出场
触达任一目标位(做多 index ≥ K+N,做空 index ≤ K−N)后立即执行:
| 触达 | 规则 |
|---|---|
| 期权目标 | 验买一流动性 + 扣费净利 > 0 → 先平期权再平永续 |
| 永续目标 | 市价平永续;期权 hold_to_expiry 至到期结算 |
净利:平仓/卖出手续费按买入费率估算(HEDGE_PLAN_FEE_RATE / OKX_TAKER_FEE,默认 0.0005)。
若期权目标因买一/净利未过、但永续目标已触达 → 改走永续目标。
期权已平永续失败 → opt_target_perp_pending 下轮只补平永续。
两腿仍开但期权到期 → 结算期权并平永续,避免裸奔。
5. 代码落点
| 文件 | 作用 |
|---|---|
lib/hedge_plan/hedge_plan_option_primary_lib.py |
定仓/方向/目标/净利/校验 |
hedge_plan_orders_lib.py |
路径、开平永续、启动前定仓刷新 |
hedge_plan_monitor_lib.py |
_tick_po_option_primary* |
hedge_plan_register.py / hedge_plan_db.py |
preview/start/persist;options-chain?option_primary&min_hours&strike_interval |
hedge_plan.js + hedge_plan_panel.html |
env 模式标识、左三组参数、右上永续/右下期权 |
6. 测试
python -m unittest tests.test_hedge_plan_option_primary -v