845884fc67
Co-authored-by: Cursor <cursoragent@cursor.com>
4.8 KiB
4.8 KiB
永期对冲计算器
中控 策略计算器 第 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)
已知波动(点数或波动率%)、目标盈利、期权杠杆 → 反推期权开多少币/张。
公式
单币权利金 = 现价 / 期权杠杆
永续毛收益 = 波动点数 × 1
(波动率模式:现价 × 波动率% × 1)
平仓价 ≈ 现价 + 波动点数(永续方向对按上涨测算)
永续手续费 = (开仓名义 + 平仓名义) × 0.05%
权利金预算 = 永续毛收益 − 目标盈利 − 永续手续费
期权币数 = 权利金预算 / 单币权利金
期权张数 = 期权币数 / ct_mult
若权利金预算 ≤ 0:提示「波动收益不足以覆盖目标盈利+手续费,无法开期权」。
情景
A · 永续方向对(期权全亏)
净利 = 永续毛收益 − 权利金总额 − 永续手续费
(设计上 ≈ 目标盈利)
B · 期权方向对(永续 1 币反向亏同等波动)
期权内在 = 期权币数 × 波动点数
期权净利 = 期权内在 − 权利金总额
永续亏损 = −永续毛收益
组合净利 = 期权净利 + 永续亏损
手测示例
现价 1800、波动 50 点、目标盈利 15、期权杠杆 100、永续杠杆 10:
| 量 | 约值 |
|---|---|
| 单币权利金 | 18U |
| 永续手续费 | 1.83U |
| 权利金预算 | 33.18U |
| 期权币数 / 张数 | ≈1.84 币 / ≈184 张 |
| A 净利 | ≈15U |
| B 期权净利 / 组合 | ≈59U / ≈9U |
模式二:由比例推波动点数(calc_mode=points)
已知永续:期权比例(如 1:2)、目标盈利、期权杠杆 → 反推两套情景要涨/跌多少点才能达到目标。
仓位
永续币数 = 1
期权币数 = 1 × (期权比例 / 永续比例) # 1:2 → 2 币
权利金总额 = 期权币数 × (现价 / 期权杠杆)
情景 A · 永续方向对
净利 = 目标盈利:
move − 权利金 − fee(move) = 目标
fee(move) = (2×现价 + move) × 0.05%
move = (目标 + 权利金 + 2×现价×0.05%) / (1 − 0.05%)
情景 B · 期权方向对(以组合净利为准)
组合净利 = 目标盈利:
组合 = 期权币数×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 |
API 请求体(摘要)
{
"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 期权链卖一、把本页结果自动写入对冲计划。