Files
2026-07-30 13:07:25 +08:00

11 KiB
Raw Permalink Blame History

比特骆驼自动化对冲系统 — 开发方案

产品名:比特骆驼自动化对冲系统
工程名 / 目录eth_hedge_sim
独立项目,与现网 crypto_monitor / zk.hyf2.cc 无部署、无进程、无密钥共用关系
可参考现有仓库的实现思路或复制片段到本仓库,但 禁止修改 crypto_monitor 内任何文件。
Git 仓库由负责人自行创建;本目录为本地工程骨架与文档。


1. 项目定位

约定
产品名 比特骆驼自动化对冲系统
工程名 / 目录名 eth_hedge_sim
部署操作系统 Ubuntu 22.04 LTS
云服务器 单独一台 Ubuntu 22.04;规格选型见 §6.0 云服务器配置选择
部署 PM2
行情 OKX 实盘只读 APIREST + WebSocket
成交(默认) 本地模拟撮合 + 本地虚拟资金(非 OKX 模拟盘)
后期 支持切换 实盘下单(显式开关 + 二次确认)
中控 同仓 control/,本地局域网运维面板(多机监控/启停/更新);见 中控 Fleet 说明

1.1 硬边界

  • 模拟阶段:零交易类 API(不下单、不撤单、不改单)。
  • 永续:全部 市价(不做限价)。
  • 期权:只吃 买一 / 卖一
  • 仓位固定:永续 1 ETH,期权 2 ETH 名义(始终 2 倍,与权利金金额无关)。
  • 卖一比对 仅用于选方向;平仓用买一,并检查买一流动性。

2. 业务规则

2.1 时间与次数

  • 期权合约:按 剩余时长下限(可配)筛选到期;行权价默认 ATM(同到期、最接近指数/标记的同一行权价 Call+Put)。
  • 开仓时间窗已取消(全天可尝试开仓,仍受选约条件约束)。
  • 周六 / 周日跳过开仓(上海时区,设置项 skip_weekends,默认开启):禁止新开仓;已有持仓仍盯盘平仓
  • 不做横盘识别:波动过滤难以精准,避免假信号;用周末跳过等确定性规则代替。
  • 同时最多 1 组仓;一轮全平结束后 休息(可配 rest_seconds,默认 300 秒)再开下一组。

2.2 方向(Call 卖一 vs Put 卖一;期权只买入、永不为卖方)

条件 期权(名义 2 ETH 永续(1 ETH
Call 卖一 > Put 卖一 买入 Call(吃卖一) 市价做空
Call 卖一 < Put 卖一 买入 Put(吃卖一) 市价做多
相等 不开仓,等待

2.3 平仓(任一触发 → 该组全平)

  1. 净盈利达标(设置可选):固定 USDT,或初始权利金 × 倍数。
  2. 到期强制全平:到达期权到期时刻(OKX 惯例 UTC 08:00 = 上海 16:00)→ 整组卖出;绕过买一流动性闸门(与紧急平仓同类)。策略暂停时仍执行。
    波动小、拖到到期亏损权利金,按预算内成本接受。

平仓执行:

  • 永续:本地市价平仓。
  • 期权:多头平仓吃买一;买一深度需覆盖名义(到期/紧急可绕过偏差与深度校验)。

2.4 组(Group)标识

每一轮开→平为一组,稳定 ID 例如:G-YYYYMMDD-序号G-20260724-01)。
前端、交易记录、统计全部按组聚合。


3. 本地撮合与费用

3.1 手续费与滑点

  • 永续、期权 均收取手续费,费率可配置,默认按 OKX taker 档位。
  • 滑点 = 1 倍手续费(费率 f 时,滑点幅度按 f 计入成交价;手续费另扣)。

3.2 永续(仅市价)

本地市价定义(无真实交易所市价单时):

  • 开多 / 平空:基准 卖一,成交价 = 基准 × (1 + f),再扣手续费。
  • 开空 / 平多:基准 买一,成交价 = 基准 × (1 - f),再扣手续费。
  • UI 与引擎均不提供限价单。

3.3 期权(只吃买卖一)

  • 买入:吃 卖一,成交价 = 卖一 × (1 + f),再扣费。
  • 卖出:吃 买一,成交价 = 买一 × (1 - f),再扣费。
  • 开仓成交后锁定该组 初始权利金总额(按成交价 × 2 ETH 名义)。

3.4 本地账本

虚拟权益、可用、占用、持仓、成交、滑点、手续费、按组盈亏;持久化 SQLite(或等价本地 DB)。
不是 OKX 模拟盘余额。


4. 系统架构

OKX 实盘只读行情 (WS/REST)
        ↓
   market 行情网关(本地缓存/可选落盘)
        ↓
   strategy 策略状态机(时间窗 / 选向 / 开平 / 3 次 / 组 ID
        ↓
   executor
     ├─ SIM(默认)→ LocalMatcher + Ledger
     └─ LIVE(后期)→ OkxTradeAdapter
        ↓
   API + WebSocket 推送
        ↓
   FrontendOKX 风格四页)

4.1 与现网隔离

crypto_monitor(现网) eth_hedge_sim(本项目)
代码仓 独立 独立(负责人自建 remote
服务器目录 /opt/crypto_monitor /opt/eth_hedge_sim(另定)
PM2 进程名 现有一套 新名字,如 eth-hedge-api / eth-hedge-web
域名/端口 现网 独立端口或独立域名
密钥 现网 .env 本项目独立 .env(先只读行情 Key

允许:从现网 复制 盘口解析、OKX WS 订阅、流动性检查等代码到本仓库后改。
禁止:在现网仓库里改文件、共用 PM2 restart 脚本、共用生产 Key(除非只读 Key 故意共用且你知情)。


5. 前端

视觉:复刻 OKX 交易台观感(深色、盘口、持仓、紧凑数字)。

导航(4 项)

  1. 自动对冲计划
    模式 SIM/LIVE、时间窗状态、当前组 ID、方向、1+2 仓位、初始权利金、永续浮盈、距触发差值、30 点进度、永续/期权盘口、启动暂停、紧急全平(模拟)。

  2. 交易记录
    按组列表与组内成交明细;筛选日期、平仓原因、盈亏。

  3. 统计
    组数、胜率、总盈亏、总手续费、总滑点、平仓原因分布、按组权益曲线。

  4. 系统设置
    虚拟资金、费率 f(滑点自动 1×f)、轮次与时间、30 点定义、选约规则、OKX Key、SIM/LIVE 开关(LIVE 二次确认)。

每组必须有明确标识(组 ID + 状态标签:持仓中 / 已平 / 流动性等待等)。


6. 部署(Ubuntu 22.04 + PM2

6.0 云服务器配置选择说明

本系统为 轻量常驻进程(行情 WebSocket + 策略 tick + FastAPI + SQLite),对 CPU/内存要求不高,但对 网络延迟与稳定性 要求高(连交易所 API)。

推荐规格(单机专跑本系统)

场景 vCPU 内存 系统盘 带宽 说明
最低可用(SIM 试跑) 1 1 GB 20 GB SSD ≥3 Mbps 可装 Ubuntu + 本服务;偏紧,构建前端时可能吃紧
推荐(SIM / 小仓 LIVE 2 2 GB 40 GB SSD ≥5 Mbps 日常够用;前端 npm build、依赖安装更稳
余量(LIVE 长期 / 同机反代) 24 4 GB 4080 GB SSD ≥5 Mbps 同机跑 nginx、日志、备份更从容
不建议 共享超售极低配、无稳定公网、国内机访问境外交易所极慢 行情断连、下单超时风险高

地域与网络(比「堆配置」更重要)

建议
机房地域 优先选 香港 / 新加坡 / 东京 等对 OKX、币安延迟低的区域;大陆机房常需稳定出网或代理,不适合作为默认 LIVE 节点
公网 要有 固定公网 IP(或稳定入口);安全组放行 5155(或仅反代 443
延迟 部署后用本机测交易所 REST/WS;持续高延迟或频繁断线应换区,而不是盲目加 CPU
隔离 单独一台跑本系统;勿与现网 crypto_monitor 混用同一套密钥/同一 PM2 restart all

软件与其它选型

约定
OS Ubuntu 22.04 LTS(与一键脚本一致)
磁盘 SSD;日志与 SQLite 在本机,无需独立数据盘(仓位不大)
架构 x86_64(常规云主机);ARM 需自行验证 Node/Python 构建
面板 可选;一键部署只依赖 SSH + apt,不依赖宝塔等面板
反代 公网建议 Nginx/Caddy + HTTPS,后端仍监听本机 5155

选型速查

  • 只想先 SIM 看盘跑策略:香港/新加坡 2C2G 即可。
  • 要 LIVE 真下单:同样 2C2G 起,重点换到 低延迟机房 并配齐非默认 AUTH_SECRET + 交易密钥。
  • 同机还要跑其它重服务:升到 4G 内存,或把本系统拆到独立机。

6.1 建议目录

/opt/eth_hedge_sim          # git clone 目标
  .env                      # 仅本机/本项目,不进 git
  deploy/
    ecosystem.config.cjs    # PM2 配置
    pull_and_restart.sh     # 仅重启本项目进程

6.2 PM2 进程(示例名,可改)

进程名 作用
eth-hedge-api 行情网关 + 策略 + 本地撮合 + HTTP/WS API
eth-hedge-web 前端静态或 Node 服务(若前后端合一可合并为一个进程)

原则:不要 pm2 restart all 误伤现网;脚本里写死本项目进程名。

6.3 发布流程(负责人自建仓库后)

cd /opt/eth_hedge_sim
git pull
# 安装依赖 / 构建前端(按实际栈)
pm2 startOrReload deploy/ecosystem.config.cjs --update-env
pm2 save

6.4 环境变量(示例)

MODE=SIM
OKX_API_KEY=...          # 模拟阶段只需能拉行情的权限
OKX_API_SECRET=...
OKX_API_PASSPHRASE=...
FEE_RATE=0.0005          # 示例;滑点 = 1 × FEE_RATE
INITIAL_EQUITY=10000
TZ=Asia/Shanghai

7. 分期实施

阶段 内容 完成标准
P0 仓库骨架、依赖、OKX 只读行情(永续 + 次日期权盘口) 能稳定收到真盘口
P1 本地账本 + 撮合(永续市价、期权吃一、费+1×费滑点) 手动开平一组账目正确
P2 策略状态机(选向、两套平仓、3 次、08:00 停开、组 ID) 无 UI 也能跑完业务窗
P3 四页前端 可完整操作与复盘
P4 行情落盘与回放 重放结果与当时一致
P5 实盘适配器 显式开关下最小仓验证

8. 已拍板摘要

  1. 期权只买入 Call 或 Put(永不卖出开仓)。
  2. N 点 = 标的 ETH 波动点数,设置可配(默认 30)。
  3. 行权价 ATM。
  4. 权利金覆盖触发不含手续费。
  5. Call 卖一 = Put 卖一:跳过等待。
  6. 测试访问:https://dc.hyf2.cc → 本机 5155 / PM2 eth-hedge-api

9. 一句话

独立仓 eth_hedge_sim(产品:比特骆驼自动化对冲系统):OKX/币安真行情只读 + 本地虚拟资金撮合(永续市价、期权只买吃买卖一、滑点=1×手续费)+ 四页前端 + Ubuntu 22.04 / PM2 单独部署;可抄现网思路,但不改现网代码、不共用现网进程。