OKX/Binance LIVE share half_open and option_closed_perp_pending repair paths; private REST throttles default to 1s and are tunable in settings. Co-authored-by: Cursor <cursoragent@cursor.com>
17 KiB
ETH 永续 + 期权对冲策略说明
依据当前代码逻辑整理(SIM 默认真值参数)。
关联:开发方案、商业化与授权方案、实盘索引、OKX实盘、币安实盘
更新:2026-07-26
运行模式:设置页「运行模式」可切 SIM / LIVE;交易所 API 录入后写入服务器 .env(不回传明文)。LIVE 须二次确认输入 LIVE;OKX / 币安均可真下单(须选对应当前交易所并配齐密钥)。有持仓时不可切模式。
1. 策略一句话
用 ATM 期权买方 表达方向弹性,用 反向永续 做对冲腿;波动大时争取多轮兑现净盈利,波动小时接受权利金磨损,到期自动全平。
本质是 概率与样本:不追求每天固定轮次,而按行情吃机会。
行情来源可切换(SIM):系统设置中可选 OKX 或 币安 公共行情;成交仍为本机模拟撮合,不下真单。
| 交易所 | 永续(默认) | 期权 | 说明 |
|---|---|---|---|
| OKX | ETH-USDT-SWAP | ETH-USD_UM(偏 USDC 保证金族) | 当前默认 |
| 币安 | ETHUSDT(USDT-M) | 欧洲期权 ETH-YYMMDD-行权价-C/P(USDT) | 后期实盘优先候选 |
有持仓时不可切换交易所;切换后自动套用该所合约并重连行情。
2. 仓位结构(默认)
| 腿 | 默认数量 | 方向规则 | 成交方式 |
|---|---|---|---|
| 永续 ETH-USDT-SWAP | 1 ETH | 见下表 | 市价(吃买一/卖一 + 滑点) |
| 期权 ETH-USD_UM | 2 ETH 名义 | 只买不卖 | 开仓吃卖一,平仓吃买一 |
开仓顺序:先成交期权 → 确认后再市价成交永续。永续盘口失败则回滚期权扣款,不留半边仓。
平仓顺序:同样先平期权(买一薄)→ 再瞬时平永续。平期权期间永续对冲先留着;永续盘口失败则回滚期权入账。
永续杠杆默认 3×(可配)。同时最多 1 组仓,禁止叠仓开下一组。
2.1 开仓方向(ATM 相对现价优先)
行权价相对标的有偏离时(币安粗档常见),先按 ATM 偏上/偏下选向;仅当行权价与标的贴平(≈)时,才回退卖一比价。
| 条件 | 期权 | 永续 | bias |
|---|---|---|---|
| ATM 行权价 < 标的(如 1850 vs 1859) | 买入 Call | 做空 | strike_below_spot |
| ATM 行权价 > 标的(如 1875 vs 1859) | 买入 Put | 做多 | strike_above_spot |
| ATM ≈ 标的,且 Call 卖一 > Put 卖一 | 买入 Call | 做空 | call_ask_gt_put |
| ATM ≈ 标的,且 Put 卖一 > Call 卖一 | 买入 Put | 做多 | put_ask_gt_call |
| ATM ≈ 标的且卖一相等 | 不开仓,继续等待 | — | — |
直觉:偏下行权价用 Call+空,偏上行权价用 Put+多;贴平时再按权利金溢价侧选向。
3. 开仓机制
3.1 流程概览
策略运行中
→ 无持仓且不在休息期
→ 非周末跳过(若开启)
→ 选到期:剩余时长 ≥ min_option_hours(默认 12h)
→ 该到期 ATM 行权价(最接近标的)
→ 若开启 atm_open_offset_enabled:|ATM − 标的| ≤ max_atm_open_offset(默认 3)否则跳过
→ 选向:ATM 偏下→Call+空;偏上→Put+多;贴平→卖一比价
→ 期权杠杆 = 标的价 ÷ 卖一权利金 ≥ min_option_leverage(默认 100)
→ 先开期权(吃卖一)→ 再市价开永续(一组)
→ 锁定 initial_premium = 期权成交价 × 期权名义(不含费)
3.2 选约约束
| 参数 | 默认 | 作用 |
|---|---|---|
min_option_hours |
12 | 过滤过近到期,减少刚开仓就到期 |
min_option_leverage |
100 | 权利金相对标的不能太贵(现价/卖一) |
atm_open_offset_enabled |
false | 开仓 ATM 偏差限制开关(默认关) |
max_atm_open_offset |
3 | 开关开启后:|ATM − 标的| 超过则不开 |
| ATM | — | 同到期、最接近指数/标记价的行权价 |
无合格合约时:状态停留等待,记录「无合格期权…」,不硬开。
3.3 时间与节奏
| 规则 | 说明 |
|---|---|
| 开仓时间窗 | 已取消,全天可尝试(仍受选约约束) |
| 周六/周日 | 默认 跳过新开仓(上海时区,skip_weekends);持仓仍可平 |
| 每日轮次上限 | 不限制;波动大可能多轮,波动小可能一轮都难 |
| 组间休息 | 全平后默认休息 300 秒(rest_seconds)再开下一组 |
| 同时持仓 | 最多 1 组 |
3.4 费用(SIM)
- 永续、期权均按可配
fee_rate(默认 0.0005)计费。 - 滑点按约 1 倍费率计入成交价,手续费另扣。
- 开仓现金:支付期权权利金 + 开仓手续费;永续开仓主要扣费。
4. 平仓机制
平仓分两大类:① 目标平仓(净盈利达标);② 到期平仓(目标未达标,拖到到期)。
目标平仓又分两种落地方式(双腿全平 / 只平永续+期权归档到期)。
4.1 目标平仓(第一优先级)
净盈利口径(盯盘用,主要看买一,不看标记价):
净盈利 ≈ 永续浮盈 + 期权浮盈 − 预估平仓手续费
期权浮盈 = 当前买一 × 数量 − 初始权利金
| 出场模式 | 默认 | 触发条件 |
|---|---|---|
fixed_usdt |
目标 15 USDT | 净盈利 ≥ net_profit_target |
premium_multiple |
倍数 1.0 | 净盈利 ≥ initial_premium × premium_exit_multiple |
说明:权利金倍数模式下,1× = 赚回一倍权利金金额的净利(例如权利金 20.41,目标约 20.41,不是 40.82)。
达标后按期权状态走下面 A / B 两套(不是互相替换,按能否平掉期权分支):
4.1.A 双腿全平(期权仍有可平价值 / 非远虚)
- 条件:净利达标,且期权 不是远虚(仍可能有买一可平)。
- 动作:校验买一深度 + 买一/标记偏差(默认 ≤30%)→ 先平期权、再平永续。
- 通不过流动性 →
liquidity_wait,继续等待(不改开仓组)。
4.1.B 只平永续 + 期权归档到期(远虚)
筛选约 100× 杠杆 期权时,标的波动约 1% 量级后,买方腿常变为远虚(内在价值≈0),买一往往枯死、整组硬平会卡死。
- 条件:净利达标,且期权已是 虚值且远虚(内在价值 ≈ 0)。
- 动作:
- 只市价平掉永续,兑现净利里永续那一截;
- 本张期权 不再盯盘、不再参与平仓扫描,归档为「到期残留」;
- 因期权 逐仓,残留 不占用活跃持仓,不挡住下一组开仓;
- 下一组开平仓 只扫当前活跃组期权,不扫描历史残留腿;
- 残留期权到到期日再按 内在价值 单独结算(多半接近 0);
- 页面:活跃持仓区变空;归档腿出现在「残留期权(待到期)」;下方期权盘口 切回新 ATM(见 4.6)。
残留到期结算口径:
结算价 = 内在价值(Put: max(K−S,0) / Call: max(S−K,0))
期权盈亏 ≈ (结算价 − 开仓均价) × 数量 − 结算手续费
整组净利 = 已实现永续盈亏 + 期权结算盈亏 − 全部手续费
直觉:能双腿平就走 A;期权已经远虚平不掉就走 B,别把永续利润和下一单机会一起卡死。
4.2 到期平仓(目标未达标)
- 净利一直未达标 → 不主动砍仓,持有到期权到期。
- 到达期权到期时刻(OKX:UTC 08:00 = 上海 16:00)→ 原因
expiry。 - 活跃组:期权按标的结算价的 内在价值 入账;若永续仍在则市价平掉。
- 残留组(曾走 4.1.B):永续早已平掉,只结算归档期权,不碰当前活跃仓、不改下方 ATM。
- 策略 暂停时仍执行到期结算,避免拖过期。
- 波动小、拖到到期:权利金亏损视为 预算内成本,可接受。
4.3 平仓流动性闸门(仅 4.1.A)
双腿全平时:
- 期权买一深度需覆盖平仓名义;
- 买一相对标记偏差默认 ≤ 30%(
close_bid_mark_max_pct); - 不满足 →
liquidity_wait,继续等待。
4.1.B / 到期 / 紧急全平:不适用「必须卖掉期权买一」这套闸门(到期与残留按内在价值;紧急可绕过)。
紧急全平:活跃组尽量双腿平掉;残留期权一并按内在价值结算。
4.4 其它平仓入口 / 原因码
| 原因码 | 含义 |
|---|---|
fixed_usdt / premium_multiple |
目标平仓 · 双腿全平(4.1.A) |
target_perp_only |
目标平仓 · 只平永续,期权归档到期(4.1.B) |
expiry |
到期结算(活跃组或残留期权) |
emergency |
界面紧急全平 |
manual |
手动平仓 |
4.5 流程总览
有活跃持仓
├─ 净利达标?
│ ├─ 是 · 期权远虚(内在价值≈0)→ 平永续,期权归档到期,可开下一组
│ └─ 是 · 非远虚 → 试双腿全平(流动性闸门)→ 失败则等待
└─ 否 → 持有直到到期 → 内在价值结算(+ 若有永续则平永续)
残留期权(已归档)
└─ 仅到期结算;不参与盯盘、不参与下一组平仓扫描
4.6 行情监控与页面展示
计划页下方期权盘口 不是永远跟现价 ATM,也 不是永远跟开仓那张,按仓位状态切换:
| 状态 | 持仓区 | 「残留期权(待到期)」 | 下方期权盘口 |
|---|---|---|---|
| 有活跃组(永续+期权都在) | 显示当前组 | 无(或仅历史残留) | 钉在持仓行权价(标题「持仓期权 @ K」);浮盈亏/平仓价 只用持仓合约盘口,禁止借用新 ATM |
| 空仓(无活跃组) | 空 | 无 | 跟现价 ATM:|ATM − 标的| ≥ 5 点时自动切到新行权价,供下一组选约 |
| 仅残留(4.1.B:永续已平,期权归档等到期) | 空(活跃已 flat) | 显示归档合约(到期/行权价) | 显示新 ATM(为下一组开仓);不继续钉归档那张 |
要点:
- 活跃持仓期间:现价怎么走,下方监控都盯开仓那张;重启服务也不会漂到新 ATM。
- 平掉活跃组或走 4.1.B 后:下方立刻回到「下一单 ATM」;归档腿只出现在残留列表,到期按内在价值结算。
- 浮盈亏口径:持仓合约买一;不得用其他行权价的买一顶替(避免 1880 持仓显示成 1890 盘口)。
有活跃仓 → 下方 = 持仓期权 @ 开仓行权价
无活跃仓 → 下方 = 期权 ATM @ 当前现价档(可随价漂移 ≥5 点切换)
残留腿 → 只在「残留期权」行;到期结算;不占用下方 ATM
5. 策略侧重点
| 侧重点 | 说明 |
|---|---|
| 吃波动,不赌横盘 | 买方期权需要标的走动;大波动利于达标出场 |
| 概率与轮次 | 波动日可能多轮;磨盘日可能零轮或一轮认亏 |
| 确定性时间规则 | 用周末跳过、到期全平,不做难以精准的横盘识别 |
| 费用后净利 | 出场看扣完预估平仓费后的净盈利,避免「账面赚、平完亏」 |
| 单组纪律 | 活跃持仓最多 1 组;远虚归档的残留期权不挡下一组(逐仓) |
| 权利金是成本预算 | 小波动拖到期亏权利金,属于策略设计内损耗,不是异常 bug |
| 目标平仓两分支 | 能平期权则双腿全平;远虚则只平永续、期权到期归档 |
| 监控分工 | 有仓钉持仓行权价;空仓/仅残留时下方跟新 ATM;残留腿单独列表 |
适合对外表述:
适合有波动的时段;震荡磨盘是主要磨损源。不怕单边大波动本身,怕没波动却持续付时间价值。
6. 风险点评估
6.1 主要风险
| 风险 | 等级 | 说明 | 缓解(已有/建议) |
|---|---|---|---|
| 横盘 / 低波动 | 高 | Theta 消耗权利金;永续几乎不贡献利润 | 周末跳过;到期认亏全平;接受磨损日 |
| 方向选错 | 中高 | 卖一比价并非预测圣杯;错向时期权可能失利,永续端也可能承压 | 净盈利达标才兑现;到期强平止损时间 |
| 开平滑点与手续费 | 中 | 双边 taker + 滑点侵蚀小目标利润 | 目标默认 15U 需覆盖费用;勿把目标设过低 |
| 期权流动性 | 中 | 远虚时买一枯死 | 4.1.B 只平永续+归档;到期内在价值结算 |
| 杠杆与保证金 | 中 | 永续 3×,标的急跌/急涨挤压保证金 | 控制名义、保留资金缓冲;实盘注意强平线 |
| 同到期 ATM 拥挤 | 低–中 | 临近到期价差与盘口恶化 | min_option_hours;到期强平 |
| SIM≠实盘 | 高(若直接外推) | 本地撮合、深度与成交假设简化 | 小资金实盘验证后再放大 |
| 交易所限流 / 断连 | 中 | 行情中断导致延误开平 | 健康检查;部署侧监控 |
6.2 明确不做什么(边界)
- 不做卖方期权(不收权利金那套)。
- 不做横盘「智能识别」开仓过滤。
- 不做多组并行。
- 当前主路径为 SIM;实盘需另行授权与二次确认(见商业化方案)。
6.3 损益直觉
- 有利波动:期权端弹性(2 ETH 名义)常快于永续(1 ETH)的对冲损耗 → 易达净利目标。
- 不利 / 无波动:权利金贬值 + 费用 → 拖到到期全平,单组亏损量级约在 权利金量级 + 双边费用(再叠加永续期间浮亏/浮盈)。
7. 最小资金推荐
以下按 默认仓位(永续 1 ETH、期权 2 ETH 名义、杠杆 3×)估算,标的价按 ETH ≈ 1,800–2,200 USDT 量级。
7.1 单组占用粗算
| 项目 | 约略金额(USDT) |
|---|---|
| 永续保证金(名义÷杠杆) | ≈ 1,800–2,200 ÷ 3 ≈ 600–750 |
| 期权权利金(ATM、短期限,2 ETH) | 常见约 15–60(行情波动大时更高) |
| 开平手续费 / 滑点缓冲 | 20–50 |
| 逆向波动缓冲(避免过紧) | 300–800(经验缓冲,非精确 VaR) |
7.2 建议档位
| 档位 | 建议权益(USDT) | 适用 |
|---|---|---|
| 绝对下限(不推荐) | ≥ 1,500 | 仅能勉强覆盖保证金 + 小权利金,缓冲极薄,易心态与风控双紧 |
| 最小可用 | ≥ 3,000 | 默认参数下可跑 SIM / 极小实盘验证,仍偏紧 |
| 推荐起步 | ≥ 5,000 | 留出磨损日与波动缓冲,更符合「概率样本」玩法 |
| 较舒适 | ≥ 10,000 | 参数微调、连续多日磨损时更从容 |
缩放规则:若把永续改为
0.5 ETH、期权1 ETH,资金需求大约可按比例减半,但费用占比会上升,小目标更难赚。
7.3 与出场目标的关系
- 默认净利目标 15 USDT:在费用后属于「小而频」目标,依赖波动日多次兑现。
- 单日/单组最坏常见情形更接近 亏掉当期权利金 + 费用(外加永续路径损益),资金规划应按 多次磨损日 而非「每组必赚 15」来留余量。
7.4 SIM 默认
系统默认虚拟权益 initial_equity = 10,000 USDT(策略设置可改;保存且数值变更时在无持仓下重置账本),不代表实盘建议入金。
实盘试跑建议仓位:永续 0.1 ETH / 期权 0.2 ETH 名义(k=0.1),并同比下调净利目标。分所口径见 OKX实盘策略说明、币安实盘策略说明。
8. 关键可配参数速查
| 参数 | 默认 | 类别 |
|---|---|---|
perp_qty_eth |
1 | 仓位 |
option_qty_eth |
2 | 仓位 |
leverage |
3 | 永续 |
fee_rate |
0.0005 | 成本 |
exit_mode |
fixed_usdt | 出场 |
net_profit_target |
15 | 出场 |
premium_exit_multiple |
1.0 | 出场 |
rest_seconds |
300 | 节奏 |
skip_weekends |
true | 时间 |
min_option_hours |
12 | 选约 |
min_option_leverage |
100 | 选约 |
atm_open_offset_enabled |
false | 开仓 ATM 偏差开关 |
max_atm_open_offset |
3 | 开仓 ATM 偏差上限 |
close_bid_mark_max_pct |
30 | 平仓流动性 |
9. 修订记录
| 日期 | 说明 |
|---|---|
| 2026-07-25 | 初稿:对齐当前开平仓、周末跳过、到期全平、净盈利口径与资金建议 |
| 2026-07-25 | 平仓顺序改为先期权后永续(与开仓同理:薄腿优先) |
| 2026-07-26 | 到期按内在价值结算(对齐实盘);紧急平仓仍用 max(买一,标记,内在价值) |
| 2026-07-26 | 明确两套目标平仓:双腿全平 / 远虚只平永续+期权归档到期;到期为未达标路径 |
| 2026-07-26 | 补充 §4.6:有仓钉持仓监控、空仓/仅残留跟新 ATM、残留列表与到期内在价值结算展示分工 |
| 2026-07-26 | 设置页 SIM/LIVE 切换;API 密钥落 .env;OKX LIVE 开平仓;币安密钥可存 |