diff --git a/README.md b/README.md index b52891f..704dcf5 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,9 @@ | 进程管理 | PM2(`eth-hedge-api`) | | 安装目录 | `/opt/eth_hedge_sim` | | 端口 | **5155** | +| 云服务器(推荐) | **2 vCPU / 2 GB / 40 GB SSD**;地域优先香港、新加坡等低延迟区 | + +云服务器最低/推荐/余量规格、地域与带宽选择见 **[开发方案 §6.0 云服务器配置选择说明](docs/开发方案.md#60-云服务器配置选择说明)**。 ## 文档 diff --git a/docs/商业化与授权方案.md b/docs/商业化与授权方案.md index 1b87d41..41ed270 100644 --- a/docs/商业化与授权方案.md +++ b/docs/商业化与授权方案.md @@ -1,222 +1,233 @@ -# 比特骆驼自动化对冲系统 — 商业化与授权方案(初步) - -> **产品名**:比特骆驼自动化对冲系统 · **工程**:`eth_hedge_sim` -> 状态:草案,指导后续开发,细节可迭代。 -> 商业模式结论:**客户侧部署 + 软件授权**(不做中心化多租户托管)。 -> 关联文档:[开发方案](./开发方案.md)、[代码结构](./代码结构.md) - ---- - -## 1. 目标与边界 - -### 1.1 卖什么 - -| 项 | 约定 | -|----|------| -| 产品名 | **比特骆驼自动化对冲系统** | -| 产品形态 | 可独立部署的对冲交易系统(SIM + 可选实盘) | -| 交付方式 | 安装包 / 一键脚本 / Docker(后续择一为主) | -| 收费方式 | **授权(License)**:按实例、按期限、按功能档 | -| 不卖什么 | 不承诺收益;不做代客理财;不集中托管客户 API Key | - -### 1.2 为什么不做 SaaS 托管 - -| 风险 | 说明 | -|------|------| -| 交易所限流 | REST/WS 按 IP、API Key 限流;多客户共机互相挤占 | -| 同 IP 风控 | 一公网 IP 对多交易所、多 Key 高频请求,易触发异常标记 | -| 密钥与责任 | 客户 Key 进你机房,合规与事故责任更重 | -| 运维成本 | 你要为所有客户的行情稳定性买单 | - -**原则:一客户一实例一出口 IP(或客户自有网络)。** - -### 1.3 产品定位一句话 - -> **比特骆驼自动化对冲系统**:客户在自己的服务器上部署;API Key 不出客户环境;你提供软件、更新与授权。 - ---- - -## 2. 交付与部署 - -### 2.1 目标交付形态(分阶段) - -| 阶段 | 形态 | 说明 | -|------|------|------| -| 现在(内部) | Git + `deploy/manage.sh` + PM2 | 已具备,继续打磨成「可复制安装」 | -| 商用 v1 | **一键部署脚本** + 环境检查 + 健康检查 | 客户 **Ubuntu 22.04** 机器上跑通 | -| 商用 v2 | **Docker Compose**(可选) | 降低环境差异;与脚本二选一或并存 | -| 商用 v3 | 离线包 / 镜像导出 | 内网客户、无法拉 Git 的场景 | - -### 2.2 客户侧必备条件 - -- 一台独立 **Ubuntu 22.04** 主机(建议独立 IP) -- 出网访问目标交易所 API(OKX 等) -- 域名或 IP + HTTPS(可用反代) -- 客户自备交易所 API Key(只读行情 / 实盘交易按档位要求) - -### 2.3 部署流程(商用目标体验) - -1. 客户拿到安装脚本或镜像 + **授权码** -2. 填写 `.env`(账号、交易所 Key、授权码) -3. 一键安装 → 健康检查通过 -4. 浏览器登录 → SIM 可演示;实盘需对应授权档位 + 二次确认 - -### 2.4 更新策略 - -- 默认:客户机 `git pull` / 镜像升级 + 构建 + 仅 reload 本项目进程 -- 破坏性升级:附带迁移说明(配置项、数据库/状态文件) -- 授权未过期才允许拉取正式版更新(可选;初期可人工发版) - ---- - -## 3. 授权(License)设计 - -### 3.1 设计原则 - -- **正规客户好用,随手拷贝有门槛**(不做无法破解的完美 DRM) -- 校验失败时:允许登录看状态,但 **禁止启策略 / 禁止实盘下单**(策略可配置) -- 校验逻辑本地为主;可选短时在线激活(降低盗版批量复制) - -### 3.2 授权字段(建议) - -| 字段 | 用途 | -|------|------| -| `license_id` | 授权编号 | -| `customer_name` | 客户标识(展示/审计) | -| `expires_at` | 到期日 | -| `edition` | 档位:`sim` / `live` / `pro`(名称可调) | -| `instance_id` 或 `machine_fingerprint` | 绑定部署实例(主机指纹或安装时生成的 UUID) | -| `features` | 功能开关列表(可选) | -| `signature` | 对上述字段的签名(私钥在你方,公钥打进程序) | - -### 3.3 档位建议(初稿) - -| 档位 | 能力 | -|------|------| -| `sim` | 仅 SIM 撮合;实盘下单关闭 | -| `live` | SIM + 实盘下单(显式开关 + 二次确认) | -| `pro` | live + 多策略/高级报表/优先支持(后续) | - -### 3.4 绑定策略(由松到紧,可演进) - -1. **v1**:授权码 + 到期日 + 档位(不绑机,靠合同与信任) -2. **v2**:首次激活写入 `instance_id`,换机需重置授权 -3. **v3**(可选):定期在线心跳续期;断网宽限期 N 天 - -### 3.5 运行时行为 - -``` -启动 → 读 license → 验签 / 查到期 / 查档位 - ├─ 有效 → 按档位开放功能 - └─ 无效/过期 → UI 提示;策略不可启动;实盘接口 403 -``` - -本地文件建议:`data/license.json` 或环境变量 `LICENSE_KEY`(整段授权串)。 - ---- - -## 4. 技术架构约束(后续开发必须遵守) - -### 4.1 多租户与网络 - -- **不做**「一个进程服务多个无关客户」 -- **不做**「你方中心机房代跑客户实盘」作为主路径 -- 每个商用部署 = 独立进程 + 独立配置 + 独立日志 + 独立出口网络 - -### 4.2 密钥与安全 - -- 交易所 API Key **仅存客户机**(加密或系统权限保护) -- 禁止把客户 Key 回传到你方(授权校验除外的元数据也不含密钥) -- HTTPS、登录鉴权、改密、审计日志(谁启停、谁改参数)逐步补齐 - -### 4.3 模式隔离 - -| 模式 | 要求 | -|------|------| -| SIM | 零交易类写接口;行情只读 | -| LIVE | 显式开关 + 二次确认 + 授权档位 dual-check | -| 数据 | SIM 与 LIVE 成交/绩效 **分库或分表/分前缀**,不可混报 | - -### 4.4 可观测性(商用必需) - -- `/health`:进程、行情连接、授权状态(不含密钥) -- 结构化日志:开平仓原因、费用、流动性等待、紧急平仓 -- 绩效导出:按组 / 按日(收益、回撤、费用、胜率)— 客户自证与你售后都需要 - ---- - -## 5. 合规与产品话术(边界) - -- 定位:**交易辅助工具 / 策略执行软件**,非保本理财 -- 界面与合同:风险提示、用户自负盈亏、交易所账户属用户 -- 对外演示默认走 **SIM**;实盘由客户自行承担 Key 与资金风险 -- 法务文本后续单独立项;工程侧先把「免责展示位 + 二次确认」留好 - ---- - -## 6. 开发路线图 - -### Phase 0 — 现在(产品可用、可演示) - -- [x] SIM 对冲主流程、设置、Plan 桌面布局 -- [ ] 绩效与组维度报表可导出/可复盘 -- [ ] 部署脚本文档化到「陌生人能装上」的程度 -- [ ] SIM / 未来 LIVE 配置与文案边界清晰 - -### Phase 1 — 授权骨架(商用前提) - -- [ ] License 数据结构 + 本地验签 -- [ ] 到期 / 档位拦截(启策略、实盘 API) -- [ ] 设置页或启动页展示授权状态与到期日 -- [ ] 内部发码工具(私钥离线,不进客户仓库) - -### Phase 2 — 实盘与交付打磨 - -- [ ] LIVE 下单通路(已有规划则按开发方案推进) -- [ ] 安装向导:环境检查、端口、反向代理示例 -- [ ] 升级与回滚说明;配置迁移 -- [ ] 客户排障包:一键打包日志(脱敏) - -### Phase 3 — 商业运营配套 - -- [ ] 授权台账(客户、到期、续费、换机)— 可先表格,后小后台 -- [ ] 版本通道:stable / beta -- [ ] 支持档位与 SLA(人工即可) -- [ ] (可选)在线激活与换机工单 - -### 明确延后 - -- 中心化多租户 SaaS -- 复杂手机端优先设计 -- 支付系统内嵌(可先对公转账 + 人工发码) -- 完美防破解 - ---- - -## 7. 与当前仓库的衔接 - -| 现有能力 | 商用含义 | -|----------|----------| -| `deploy/manage.sh`、远程 `deploy_remote.py` | 演进为客户侧一键安装/更新的基础 | -| PM2 `eth-hedge-api`、端口 5155 | 单实例模型已符合「一客户一进程」 | -| 登录 `AUTH_USERNAME` / `AUTH_PASSWORD` | 保留为实例管理员;与 License 分层 | -| SIM 撮合 + 只读行情 | 作为 `sim` 档与售前演示默认路径 | -| 与 `crypto_monitor` 隔离 | 商用交付物必须自包含,禁止捆绑现网 | - ---- - -## 8. 待决事项(开发前拍板) - -1. 主交付形态优先:**脚本 + PM2** 还是 **Docker Compose**? -2. 授权 v1 是否绑机?还是先「码 + 到期日」? -3. 过期策略:只禁实盘,还是 SIM 一并只读? -4. 首发交易所是否仅 OKX,多所是否进 `pro`? -5. 价格与续费周期(工程不阻塞,商务可并行) - ---- - -## 9. 修订记录 - -| 日期 | 说明 | -|------|------| -| 2026-07-25 | 初稿:确定「部署 + 授权」、否决中心托管主路径、划定 Phase 0–3 | +# 比特骆驼自动化对冲系统 — 商业化与授权方案(初步) + +> **产品名**:比特骆驼自动化对冲系统 · **工程**:`eth_hedge_sim` +> 状态:草案,指导后续开发,细节可迭代。 +> 商业模式结论:**客户侧部署 + 软件授权**(不做中心化多租户托管)。 +> 关联文档:[开发方案](./开发方案.md)、[代码结构](./代码结构.md) + +--- + +## 1. 目标与边界 + +### 1.1 卖什么 + +| 项 | 约定 | +|----|------| +| 产品名 | **比特骆驼自动化对冲系统** | +| 产品形态 | 可独立部署的对冲交易系统(SIM + 可选实盘) | +| 交付方式 | 安装包 / 一键脚本 / Docker(后续择一为主) | +| 收费方式 | **授权(License)**:按实例、按期限、按功能档 | +| 不卖什么 | 不承诺收益;不做代客理财;不集中托管客户 API Key | + +### 1.2 为什么不做 SaaS 托管 + +| 风险 | 说明 | +|------|------| +| 交易所限流 | REST/WS 按 IP、API Key 限流;多客户共机互相挤占 | +| 同 IP 风控 | 一公网 IP 对多交易所、多 Key 高频请求,易触发异常标记 | +| 密钥与责任 | 客户 Key 进你机房,合规与事故责任更重 | +| 运维成本 | 你要为所有客户的行情稳定性买单 | + +**原则:一客户一实例一出口 IP(或客户自有网络)。** + +### 1.3 产品定位一句话 + +> **比特骆驼自动化对冲系统**:客户在自己的服务器上部署;API Key 不出客户环境;你提供软件、更新与授权。 + +--- + +## 2. 交付与部署 + +### 2.1 目标交付形态(分阶段) + +| 阶段 | 形态 | 说明 | +|------|------|------| +| 现在(内部) | Git + `deploy/manage.sh` + PM2 | 已具备,继续打磨成「可复制安装」 | +| 商用 v1 | **一键部署脚本** + 环境检查 + 健康检查 | 客户 **Ubuntu 22.04** 机器上跑通 | +| 商用 v2 | **Docker Compose**(可选) | 降低环境差异;与脚本二选一或并存 | +| 商用 v3 | 离线包 / 镜像导出 | 内网客户、无法拉 Git 的场景 | + +### 2.2 客户侧必备条件 + +- 一台独立 **Ubuntu 22.04** 主机(建议独立公网 IP) +- **云服务器规格**:见下方「配置选择」;更完整说明见 [开发方案 §6.0](./开发方案.md#60-云服务器配置选择说明) +- 出网访问目标交易所 API(OKX / 币安等) +- 域名或 IP + HTTPS(可用反代) +- 客户自备交易所 API Key(只读行情 / 实盘交易按档位要求) + +#### 云服务器配置选择(交付速查) + +| 用途 | 建议规格 | 地域 | +|------|----------|------| +| 演示 / SIM | 2 vCPU / 2 GB / 40 GB SSD | 香港或新加坡优先 | +| LIVE 实盘 | 同上起配;网络优先于堆配置 | 对交易所延迟低的海外区 | +| 最低试装 | 1 vCPU / 1 GB(仅短期试跑) | 同上 | + +不建议:超售共享低配、无稳定公网、大陆机房直连境外交易所作为默认 LIVE 节点。 + +### 2.3 部署流程(商用目标体验) + +1. 客户拿到安装脚本或镜像 + **授权码** +2. 填写 `.env`(账号、交易所 Key、授权码) +3. 一键安装 → 健康检查通过 +4. 浏览器登录 → SIM 可演示;实盘需对应授权档位 + 二次确认 + +### 2.4 更新策略 + +- 默认:客户机 `git pull` / 镜像升级 + 构建 + 仅 reload 本项目进程 +- 破坏性升级:附带迁移说明(配置项、数据库/状态文件) +- 授权未过期才允许拉取正式版更新(可选;初期可人工发版) + +--- + +## 3. 授权(License)设计 + +### 3.1 设计原则 + +- **正规客户好用,随手拷贝有门槛**(不做无法破解的完美 DRM) +- 校验失败时:允许登录看状态,但 **禁止启策略 / 禁止实盘下单**(策略可配置) +- 校验逻辑本地为主;可选短时在线激活(降低盗版批量复制) + +### 3.2 授权字段(建议) + +| 字段 | 用途 | +|------|------| +| `license_id` | 授权编号 | +| `customer_name` | 客户标识(展示/审计) | +| `expires_at` | 到期日 | +| `edition` | 档位:`sim` / `live` / `pro`(名称可调) | +| `instance_id` 或 `machine_fingerprint` | 绑定部署实例(主机指纹或安装时生成的 UUID) | +| `features` | 功能开关列表(可选) | +| `signature` | 对上述字段的签名(私钥在你方,公钥打进程序) | + +### 3.3 档位建议(初稿) + +| 档位 | 能力 | +|------|------| +| `sim` | 仅 SIM 撮合;实盘下单关闭 | +| `live` | SIM + 实盘下单(显式开关 + 二次确认) | +| `pro` | live + 多策略/高级报表/优先支持(后续) | + +### 3.4 绑定策略(由松到紧,可演进) + +1. **v1**:授权码 + 到期日 + 档位(不绑机,靠合同与信任) +2. **v2**:首次激活写入 `instance_id`,换机需重置授权 +3. **v3**(可选):定期在线心跳续期;断网宽限期 N 天 + +### 3.5 运行时行为 + +``` +启动 → 读 license → 验签 / 查到期 / 查档位 + ├─ 有效 → 按档位开放功能 + └─ 无效/过期 → UI 提示;策略不可启动;实盘接口 403 +``` + +本地文件建议:`data/license.json` 或环境变量 `LICENSE_KEY`(整段授权串)。 + +--- + +## 4. 技术架构约束(后续开发必须遵守) + +### 4.1 多租户与网络 + +- **不做**「一个进程服务多个无关客户」 +- **不做**「你方中心机房代跑客户实盘」作为主路径 +- 每个商用部署 = 独立进程 + 独立配置 + 独立日志 + 独立出口网络 + +### 4.2 密钥与安全 + +- 交易所 API Key **仅存客户机**(加密或系统权限保护) +- 禁止把客户 Key 回传到你方(授权校验除外的元数据也不含密钥) +- HTTPS、登录鉴权、改密、审计日志(谁启停、谁改参数)逐步补齐 + +### 4.3 模式隔离 + +| 模式 | 要求 | +|------|------| +| SIM | 零交易类写接口;行情只读 | +| LIVE | 显式开关 + 二次确认 + 授权档位 dual-check | +| 数据 | SIM 与 LIVE 成交/绩效 **分库或分表/分前缀**,不可混报 | + +### 4.4 可观测性(商用必需) + +- `/health`:进程、行情连接、授权状态(不含密钥) +- 结构化日志:开平仓原因、费用、流动性等待、紧急平仓 +- 绩效导出:按组 / 按日(收益、回撤、费用、胜率)— 客户自证与你售后都需要 + +--- + +## 5. 合规与产品话术(边界) + +- 定位:**交易辅助工具 / 策略执行软件**,非保本理财 +- 界面与合同:风险提示、用户自负盈亏、交易所账户属用户 +- 对外演示默认走 **SIM**;实盘由客户自行承担 Key 与资金风险 +- 法务文本后续单独立项;工程侧先把「免责展示位 + 二次确认」留好 + +--- + +## 6. 开发路线图 + +### Phase 0 — 现在(产品可用、可演示) + +- [x] SIM 对冲主流程、设置、Plan 桌面布局 +- [ ] 绩效与组维度报表可导出/可复盘 +- [ ] 部署脚本文档化到「陌生人能装上」的程度 +- [ ] SIM / 未来 LIVE 配置与文案边界清晰 + +### Phase 1 — 授权骨架(商用前提) + +- [ ] License 数据结构 + 本地验签 +- [ ] 到期 / 档位拦截(启策略、实盘 API) +- [ ] 设置页或启动页展示授权状态与到期日 +- [ ] 内部发码工具(私钥离线,不进客户仓库) + +### Phase 2 — 实盘与交付打磨 + +- [ ] LIVE 下单通路(已有规划则按开发方案推进) +- [ ] 安装向导:环境检查、端口、反向代理示例 +- [ ] 升级与回滚说明;配置迁移 +- [ ] 客户排障包:一键打包日志(脱敏) + +### Phase 3 — 商业运营配套 + +- [ ] 授权台账(客户、到期、续费、换机)— 可先表格,后小后台 +- [ ] 版本通道:stable / beta +- [ ] 支持档位与 SLA(人工即可) +- [ ] (可选)在线激活与换机工单 + +### 明确延后 + +- 中心化多租户 SaaS +- 复杂手机端优先设计 +- 支付系统内嵌(可先对公转账 + 人工发码) +- 完美防破解 + +--- + +## 7. 与当前仓库的衔接 + +| 现有能力 | 商用含义 | +|----------|----------| +| `deploy/manage.sh`、远程 `deploy_remote.py` | 演进为客户侧一键安装/更新的基础 | +| PM2 `eth-hedge-api`、端口 5155 | 单实例模型已符合「一客户一进程」 | +| 登录 `AUTH_USERNAME` / `AUTH_PASSWORD` | 保留为实例管理员;与 License 分层 | +| SIM 撮合 + 只读行情 | 作为 `sim` 档与售前演示默认路径 | +| 与 `crypto_monitor` 隔离 | 商用交付物必须自包含,禁止捆绑现网 | + +--- + +## 8. 待决事项(开发前拍板) + +1. 主交付形态优先:**脚本 + PM2** 还是 **Docker Compose**? +2. 授权 v1 是否绑机?还是先「码 + 到期日」? +3. 过期策略:只禁实盘,还是 SIM 一并只读? +4. 首发交易所是否仅 OKX,多所是否进 `pro`? +5. 价格与续费周期(工程不阻塞,商务可并行) + +--- + +## 9. 修订记录 + +| 日期 | 说明 | +|------|------| +| 2026-07-25 | 初稿:确定「部署 + 授权」、否决中心托管主路径、划定 Phase 0–3 | diff --git a/docs/开发方案.md b/docs/开发方案.md index 1b77f4f..ac8b5bc 100644 --- a/docs/开发方案.md +++ b/docs/开发方案.md @@ -1,224 +1,262 @@ -# 比特骆驼自动化对冲系统 — 开发方案 - -> **产品名**:比特骆驼自动化对冲系统 -> **工程名 / 目录**:`eth_hedge_sim` -> 独立项目,与现网 `crypto_monitor` / `zk.hyf2.cc` **无部署、无进程、无密钥共用关系**。 -> 可参考现有仓库的实现思路或复制片段到本仓库,但 **禁止修改** `crypto_monitor` 内任何文件。 -> Git 仓库由负责人自行创建;本目录为本地工程骨架与文档。 - ---- - -## 1. 项目定位 - -| 项 | 约定 | -|----|------| -| 产品名 | **比特骆驼自动化对冲系统** | -| 工程名 / 目录名 | `eth_hedge_sim` | -| 部署操作系统 | **Ubuntu 22.04** LTS | -| 云服务器 | **单独一台 Ubuntu 22.04**(或同机不同目录/不同 PM2 进程名,且与现网隔离) | -| 部署 | PM2 | -| 行情 | OKX **实盘只读** API(REST + WebSocket) | -| 成交(默认) | **本地模拟撮合 + 本地虚拟资金**(非 OKX 模拟盘) | -| 后期 | 支持切换 **实盘下单**(显式开关 + 二次确认) | - -### 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 推送 - ↓ - Frontend(OKX 风格四页) -``` - -### 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.1 建议目录 - -```text -/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 发布流程(负责人自建仓库后) - -```bash -cd /opt/eth_hedge_sim -git pull -# 安装依赖 / 构建前端(按实际栈) -pm2 startOrReload deploy/ecosystem.config.cjs --update-env -pm2 save -``` - -### 6.4 环境变量(示例) - -```bash -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 单独部署;可抄现网思路,但不改现网代码、不共用现网进程。** +# 比特骆驼自动化对冲系统 — 开发方案 + +> **产品名**:比特骆驼自动化对冲系统 +> **工程名 / 目录**:`eth_hedge_sim` +> 独立项目,与现网 `crypto_monitor` / `zk.hyf2.cc` **无部署、无进程、无密钥共用关系**。 +> 可参考现有仓库的实现思路或复制片段到本仓库,但 **禁止修改** `crypto_monitor` 内任何文件。 +> Git 仓库由负责人自行创建;本目录为本地工程骨架与文档。 + +--- + +## 1. 项目定位 + +| 项 | 约定 | +|----|------| +| 产品名 | **比特骆驼自动化对冲系统** | +| 工程名 / 目录名 | `eth_hedge_sim` | +| 部署操作系统 | **Ubuntu 22.04** LTS | +| 云服务器 | **单独一台 Ubuntu 22.04**;规格选型见 [§6.0 云服务器配置选择](#60-云服务器配置选择说明) | +| 部署 | PM2 | +| 行情 | OKX **实盘只读** API(REST + WebSocket) | +| 成交(默认) | **本地模拟撮合 + 本地虚拟资金**(非 OKX 模拟盘) | +| 后期 | 支持切换 **实盘下单**(显式开关 + 二次确认) | + +### 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 推送 + ↓ + Frontend(OKX 风格四页) +``` + +### 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 长期 / 同机反代)** | 2~4 | 4 GB | 40~80 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 建议目录 + +```text +/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 发布流程(负责人自建仓库后) + +```bash +cd /opt/eth_hedge_sim +git pull +# 安装依赖 / 构建前端(按实际栈) +pm2 startOrReload deploy/ecosystem.config.cjs --update-env +pm2 save +``` + +### 6.4 环境变量(示例) + +```bash +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 单独部署;可抄现网思路,但不改现网代码、不共用现网进程。** diff --git a/docs/更新说明.md b/docs/更新说明.md index 0a40bb3..528fbe9 100644 --- a/docs/更新说明.md +++ b/docs/更新说明.md @@ -5,6 +5,15 @@ --- +## 2026-07-29 — 文档:云服务器配置选择说明 + +### 变更 + +1. [`docs/开发方案.md`](./开发方案.md) 增加 **§6.0 云服务器配置选择说明**(最低/推荐/余量规格、地域网络、选型速查)。 +2. [`docs/商业化与授权方案.md`](./商业化与授权方案.md)、[`README.md`](../README.md) 同步交付速查与链接。 + +--- + ## 2026-07-29 — 第四轮:查仓失败≠空仓;回滚/账本幂等 ### 变更