afe361ce47
Add UI switch for Call+short/Put+long, premium x0.95 sizing, option-first open, and K+/-points exits with fee-aware net PnL. Co-authored-by: Cursor <cursoragent@cursor.com>
3.7 KiB
3.7 KiB
对冲计划 · 选约与虚实值
实现日:2026-08-05 · 吸收
eth_hedge_sim(比特骆驼)选约几何;退出仍用本仓 TP/SL/S*,不移植仿真「净盈亏 15U 离场」。
1. 冻结规则
| 计划类型 | 允许虚实值 | 禁止 | 推荐模板 |
|---|---|---|---|
永期保险 perp_options(开关关) |
实值、平值 | 虚值 | 距指数最近的实值/平值(做多 Put / 做空 Call) |
永期以期权为主 option_primary=1 |
实值、平值、虚值 | —(间隔+杠杆门) | 做多 Call+永续空 / 做空 Put+永续多;详见 docs/对冲计划-以期权为主.md |
期期 options_options |
平值、虚值 | 实值 | 平值跨式(ATM C+P);双虚值(OTM C+P) |
口径与 lib/options/options_pricing_lib.option_moneyness 一致:ATM 带 = max(指数×0.2%, 2U)。
永期几何兜底(与仿真一致):
- Call 实值/平值:
K ≤ S - Put 实值/平值:
K ≥ S
2. 代码落点
| 层 | 文件 | 作用 |
|---|---|---|
| 选约/校验库 | lib/hedge_plan/hedge_plan_moneyness_lib.py |
is_itm_or_atm / is_atm_or_otm / pick_* / recommend_oo_legs / validate_* |
| 启动门禁 | hedge_plan_orders_lib.validate_start_body |
测算外再拦一遍;防绕过 UI 直 POST |
| 测算 | hedge_plan_register._preview_po/_preview_oo |
预览同样拒绝违规腿 |
| UI | hedge_plan.js + hedge_plan_panel.html |
筛选锁定、推荐按钮、选用前校验 |
| Env | env_ui_manifest 永期分组 |
HEDGE_PLAN_ITM_MAX_DIST_USD / MIN_OPTION_HOURS / MIN_OPTION_LEVERAGE |
3. Env
| 键 | 默认 | 说明 |
|---|---|---|
HEDGE_PLAN_ITM_MAX_DIST_USD |
空→沿用 OKX_OPTIONS_ITM_MAX_DIST_USD(常 30) |
永期过深实值上限;0=不限 |
HEDGE_PLAN_MIN_OPTION_HOURS |
8 | 仅当请求带 hours_to_expiry 时生效 |
HEDGE_PLAN_MIN_OPTION_LEVERAGE |
0 | 指数/卖一;0=关闭 |
4. 可用性审计
| 项 | 结论 |
|---|---|
| 默认筛选 | 永期默认「实值/平值」;期期默认「平/虚」—减少误选 |
| 推荐一键 | 永期「推荐」;期期「推荐跨式 / 推荐双虚」—降低手选成本 |
| 文案 | 规则说明与 alert 明确禁虚(永期)/禁实(期期) |
| 服务端一致 | UI 过滤可绕过时,preview/start 仍会 400 |
| 兼容旧 API | 未传 strike 时从 inst_id 解析;未传 index_px 时永期用 entry、期期用上下破中点 |
| 以期权为主 | 见 docs/对冲计划-以期权为主.md:点数目标+扣费净利出场(非仿真 15U 固定);保险模式仍不接仿真净盈亏离场 |
已知局限:
- 链上
moneyness依赖刷新时指数;剧烈跳动后需「刷新链」再选。 MIN_OPTION_HOURS需前端/调用方传入hours_to_expiry才校验(当前链行未必带该字段)。- 期期「推荐跨式」优先 ATM,若无 ATM 会回退到最近允许档(含 OTM)。
5. 安全性审计
| 风险 | 控制 |
|---|---|
| 客户端改包选虚值永期保险 | validate_start_body + preview 服务端拒绝 |
| 客户端选实值期期腿 | 同上 |
| 过深实值权利金过贵 / 杠杆过低 | ITM_MAX_DIST + 可选 MIN_OPTION_LEVERAGE |
| 误开实盘 | 既有 HEDGE_PLAN_LIVE_ORDER ∩ LIVE_TRADING_ENABLED ∩ 全仓(永期)门禁不变 |
| 保险模式平仓 | 不变:交易所 TP/SL |
| 以期权为主平仓 | 独立监控分支;不改保险模式路径 |
6. 测试
python -m unittest tests.test_hedge_plan_moneyness tests.test_hedge_plan_orders -v
覆盖:虚实值几何、永期拒 OTM、期期拒 ITM、validate_start_body 集成。
7. 与开发方案对齐
更新 docs/对冲计划开发方案.md §3.2 / §4.1 选约约束,与本文件一致。