c6e8f6fe1e
Hide sim equity when LIVE is selected; OKX funds bar uses exchange balances; add cross/isolated for perp only (options stay cash). Co-authored-by: Cursor <cursoragent@cursor.com>
362 lines
19 KiB
Markdown
362 lines
19 KiB
Markdown
# 比特骆驼自动化对冲系统 — 策略说明
|
||
|
||
> 产品:**比特骆驼自动化对冲系统**(工程 `eth_hedge_sim`)
|
||
> 依据当前代码逻辑整理(SIM 默认真值参数)。
|
||
> 关联:[开发方案](./开发方案.md)、[商业化与授权方案](./商业化与授权方案.md)、[实盘索引](./实盘策略说明.md)、[OKX实盘](./OKX实盘策略说明.md)、[币安实盘](./币安实盘策略说明.md)
|
||
> 更新: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 开仓方向
|
||
|
||
#### 默认(`fixed_direction_enabled=false`):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+多;贴平时再按权利金溢价侧选向。
|
||
|
||
#### 固定方向(`fixed_direction_enabled=true`)
|
||
|
||
设置里可开「固定方向」(默认关),并指定永续多或空:
|
||
|
||
| `fixed_perp_side` | 永续 | 期权 | 行权价约束 | bias |
|
||
|-------------------|------|------|------------|------|
|
||
| `long` | 做多 | 买入 Put | 实值或平值(K ≥ 标的),优先贴近标的 | `fixed_long_put` |
|
||
| `short` | 做空 | 买入 Call | 实值或平值(K ≤ 标的),优先贴近标的 | `fixed_short_call` |
|
||
|
||
固定方向开启时:**不买虚值**;ATM 偏差限制不适用(由实值/平值规则替代)。
|
||
|
||
---
|
||
|
||
## 3. 开仓机制
|
||
|
||
### 3.1 流程概览
|
||
|
||
```
|
||
策略运行中
|
||
→ 无持仓且不在休息期
|
||
→ 非周末跳过(若开启)
|
||
→ 选到期:剩余时长 ≥ min_option_hours(默认 12h)
|
||
→ 若固定方向关:该到期 ATM;若开:按 Put/Call 选实值或平值档
|
||
→ 若未开固定方向且开启 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 | 权利金相对标的不能太贵(现价/卖一) |
|
||
| `fixed_direction_enabled` | false | 固定方向开关(默认关) |
|
||
| `fixed_perp_side` | long | 开启后:long=多+Put / short=空+Call |
|
||
| `atm_open_offset_enabled` | false | 开仓 ATM 偏差限制开关(默认关;固定方向开启时忽略) |
|
||
| `max_atm_open_offset` | 3 | 开关开启后:\|ATM − 标的\| 超过则不开 |
|
||
| ATM / 实值平值 | — | 默认 ATM;固定方向时同到期实值或平值、最贴近标的 |
|
||
|
||
无合格合约时:状态停留等待,记录「无合格期权…」,不硬开。
|
||
|
||
### 3.3 时间与节奏
|
||
|
||
| 规则 | 说明 |
|
||
|------|------|
|
||
| 开仓时间窗 | **已取消**,全天可尝试(仍受选约约束) |
|
||
| 周六/周日 | 默认 **跳过新开仓**(上海时区,`skip_weekends`);持仓仍可平 |
|
||
| 每日轮次上限 | **不限制**;波动大可能多轮,波动小可能一轮都难 |
|
||
| 组间休息 | 全平后默认休息 **300 秒**(`rest_seconds`)再开下一组;**自动达标/到期、手动全平、紧急全平**成功后均进入休息 |
|
||
| 暂停时 | **不新开仓**;仍执行 **目标平仓 + 到期平仓**(防重启/暂停漏平) |
|
||
| 同时持仓 | 最多 1 组 |
|
||
|
||
### 3.4 费用(SIM)
|
||
|
||
- 永续、期权均按可配 `fee_rate`(默认 0.0005)计费。
|
||
- **SIM**:滑点按约 1 倍费率计入成交价,手续费另扣;统计拆分「永续手续费 / 期权手续费 / 滑点」。
|
||
- **LIVE**:用交易所真实成交价与真实手续费,**不计、不展示**模拟滑点。
|
||
- 开仓现金:支付期权权利金 + 开仓手续费;永续开仓主要扣费。
|
||
|
||
---
|
||
|
||
## 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)。
|
||
- 动作:
|
||
1. **只市价平掉永续**,兑现净利里永续那一截;
|
||
2. 本张期权 **不再盯盘、不再参与平仓扫描**,归档为「到期残留」;
|
||
3. 因期权 **逐仓**,残留 **不占用活跃持仓**,**不挡住下一组开仓**;
|
||
4. 下一组开平仓 **只扫当前活跃组期权**,不扫描历史残留腿;
|
||
5. 残留期权到到期日再按 **内在价值** 单独结算(多半接近 0);
|
||
6. 页面:**活跃持仓区变空**;归档腿出现在「残留期权(待到期)」;下方期权盘口 **切回新 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**(为下一组开仓);**不**继续钉归档那张 |
|
||
|
||
要点:
|
||
|
||
1. **活跃持仓期间**:现价怎么走,下方监控都盯开仓那张;重启服务也不会漂到新 ATM。
|
||
2. **平掉活跃组或走 4.1.B 后**:下方立刻回到「下一单 ATM」;归档腿只出现在残留列表,到期按内在价值结算。
|
||
3. **浮盈亏口径**:持仓合约买一;不得用其他行权价的买一顶替(避免 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实盘策略说明](./OKX实盘策略说明.md)、[币安实盘策略说明](./币安实盘策略说明.md)。
|
||
|
||
---
|
||
|
||
## 8. 关键可配参数速查
|
||
|
||
| 参数 | 默认 | 类别 |
|
||
|------|------|------|
|
||
| `perp_qty_eth` | 1 | 仓位 |
|
||
| `option_qty_eth` | 2 | 仓位 |
|
||
| `leverage` | 3 | 永续 |
|
||
| `perp_margin_mode` | cross | 永续全仓/逐仓(期权不受影响) |
|
||
| `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 | 选约 |
|
||
| `fixed_direction_enabled` | false | 固定方向开关 |
|
||
| `fixed_perp_side` | long | 固定永续方向 |
|
||
| `atm_open_offset_enabled` | false | 开仓 ATM 偏差开关 |
|
||
| `max_atm_open_offset` | 3 | 开仓 ATM 偏差上限 |
|
||
| `close_bid_mark_max_pct` | 30 | 平仓流动性 |
|
||
|
||
---
|
||
|
||
## 9. 修订记录
|
||
|
||
| 日期 | 说明 |
|
||
|------|------|
|
||
| 2026-07-24 | 选约增加固定方向开关:永续多→Put / 空→Call,期权仅实值或平值;关则沿用 ATM/比价 |
|
||
| 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 开平仓;币安密钥可存 |
|