# 永期对冲计算器 中控 **策略计算器** 第 3 个 tab:永期对冲。用于离线测算「永续 1 币 + 买方期权」在目标盈利口径下的期权仓位,或按永续:期权比例反推达目标所需波动点数。 入口:中控 → 策略计算器 → **永期对冲**。 API:`POST /api/calculator/perp-options` 逻辑库:`lib/hub/hub_perp_options_calc_lib.py` 单测:`tests/test_hub_perp_options_calc_lib.py` 与实例页「对冲计划」不同:本页**不实盘下单、不拉期权链**,价格与杠杆均为手填。 --- ## 共同假设 | 项 | 口径 | |----|------| | 品种 | BTC / ETH | | 永续仓位 | 固定 **1 币** | | 单币权利金 | `现价 / 期权杠杆`(例:1800÷100=18U) | | 权利金 | **按全亏**计入;忽略时间价值 / Theta | | 永续手续费 | 开+平各 `0.05%`(`PERP_TAKER_FEE_RATE`,默认 0.0005) | | 期权手续费 | **不算** | | 交易资金 | 仅参考:与 `现价/永续杠杆` 比保证金是否够开 | | `ct_mult` | 默认 0.01;张数 = 期权币数 / ct_mult | | 展示 | 金额与点数统一 **小数点后两位** | --- ## 模式一:由波动推期权仓位(`calc_mode=size`) 已知波动(点数或波动率%)、目标盈利、期权杠杆 → 反推期权开多少币/张。 ### 公式 ```text 单币权利金 = 现价 / 期权杠杆 永续毛收益 = 波动点数 × 1 (波动率模式:现价 × 波动率% × 1) 平仓价 ≈ 现价 + 波动点数(永续方向对按上涨测算) 永续手续费 = (开仓名义 + 平仓名义) × 0.05% 权利金预算 = 永续毛收益 − 目标盈利 − 永续手续费 期权币数 = 权利金预算 / 单币权利金 期权张数 = 期权币数 / ct_mult ``` 若权利金预算 ≤ 0:提示「波动收益不足以覆盖目标盈利+手续费,无法开期权」。 ### 情景 **A · 永续方向对(期权全亏)** ```text 净利 = 永续毛收益 − 权利金总额 − 永续手续费 (设计上 ≈ 目标盈利) ``` **B · 期权方向对(永续 1 币反向亏同等波动)** ```text 期权内在 = 期权币数 × 波动点数 期权净利 = 期权内在 − 权利金总额 永续亏损 = −永续毛收益 组合净利 = 期权净利 + 永续亏损 ``` **C · 横盘(最大亏损)** 波动≈0、期权到期无内在价值: ```text 永续盈亏 ≈ 0 永续开平手续费 = 2 × 现价 × 1 × 0.05% (同价开平) 最大亏损 = 权利金总额 + 永续开平手续费 组合净利 = −最大亏损 ``` 忽略资金费 / Theta 过程中的中间态;口径与「权利金按全亏」一致。 ### 手测示例 现价 1800、波动 50 点、目标盈利 15、期权杠杆 100、永续杠杆 10: | 量 | 约值 | |----|------| | 单币权利金 | 18U | | 永续手续费 | 1.83U | | 权利金预算 | 33.18U | | 期权币数 / 张数 | ≈1.84 币 / ≈184 张 | | A 净利 | ≈15U | | B 期权净利 / 组合 | ≈59U / ≈9U | --- ## 模式二:由比例推波动点数(`calc_mode=points`) 已知永续:期权比例(如 **1:2**)、目标盈利、期权杠杆 → 反推两套情景要涨/跌多少点才能达到目标。 ### 仓位 ```text 永续币数 = 1 期权币数 = 1 × (期权比例 / 永续比例) # 1:2 → 2 币 权利金总额 = 期权币数 × (现价 / 期权杠杆) ``` ### 情景 A · 永续方向对 净利 = 目标盈利: ```text move − 权利金 − fee(move) = 目标 fee(move) = (2×现价 + move) × 0.05% move = (目标 + 权利金 + 2×现价×0.05%) / (1 − 0.05%) ``` ### 情景 B · 期权方向对(以组合净利为准) 组合净利 = 目标盈利: ```text 组合 = 期权币数×move − 权利金 − 1×move = move×(期权币数 − 1) − 权利金 move = (目标 + 权利金) / (期权币数 − 1) ``` 要求期权币数 > 永续币数(比例须使期权侧更重,如 1:2);若为 1:1,组合恒为 −权利金,无法解出正目标。 结果区展示:所需波动点数(及折合%)、组合净利、其中期权净利、其中永续盈亏。 ### 手测示例 现价 1800、目标 15、期权杠杆 100、比例 1:2 → 权利金总额 36U: | 情景 | 所需点数(约) | |------|----------------| | A 永续方向对(净利=15) | ≈52.83 | | B 组合净利=15 | 51.00 | | C 横盘最大亏损 | 37.80(权利金 36 + 同价开平费 1.8) | --- ## API 请求体(摘要) ```json { "calc_mode": "size | points", "base": "ETH", "spot": 1800, "capital_usdt": 3000, "target_profit_u": 15, "move_mode": "points", "move_value": 50, "perp_leverage": 10, "option_leverage": 100, "ct_mult": 0.01, "ratio_perp": 1, "ratio_opt": 2 } ``` - `size` 模式必填 `move_value`;`points` 模式用 `ratio_perp` / `ratio_opt`,可不填波动。 --- ## 相关文件 | 路径 | 作用 | |------|------| | `lib/hub/hub_perp_options_calc_lib.py` | 纯函数测算 | | `manual_trading_hub/hub.py` | `POST /api/calculator/perp-options` | | `manual_trading_hub/static/index.html` | 计算器 tab UI | | `manual_trading_hub/static/calculator.js` | 提交与结果渲染 | | `lib/trade/trade_fee_lib.py` | 永续双边手续费 | ## 不做 实盘开平仓、拉 OKX 期权链卖一、把本页结果自动写入对冲计划。 振幅统计页可对历史日表做同口径对照,见 [振幅统计说明.md](./振幅统计说明.md)「永期对冲对照」。