## 需求文档(V2)— 多交易所对冲执行系统 ### 1. 总体目标 - 统一 `exchanges` 接入层(抽象 + 实现),策略与领域层不感知底层差异。 - 降低净值回撤、减少误码(精度/保证金不足等),保持两侧灵活度与原子对称开平。 - 强化可观测性(中文日志、持久化、报表)与可运维性(PM2/健康检查)。 ### 2. 分层与目录 - `src/exchanges/`: - 抽象:`ExchangeAdapter.ts` - 实现:`aster/*`、`binance/*`、`pacifica/*` - `src/core/`:对冲执行抽象、市场聚合、策略接口 ### 账户文档索引 - 统一方式:`docs/accounts/UNIFIED_MANAGEMENT.md` - 生命周期:`docs/accounts/ACCOUNT_LIFECYCLE.md` - 环境变量:`docs/accounts/ENV_VARS.md` - Pacifica 账户:`docs/accounts/PACIFICA_ACCOUNT.md` - Aster 账户:`docs/accounts/ASTER_ACCOUNT.md` - `src/infrastructure/`:钱包、配置、数据库(当前仅钱包在用) - `docs/`:架构、使用、变更日志与需求 ### 3. 交易与执行需求 - 原子配对与对称开平:两侧同时下单,任一失败立即回滚/对冲,净敞口约束。 - 强制净零:周期性/每 tick 将净暴露打回阈值内。 - 入场价对齐:AUTO(ADD/REPLACE)自适应回归,参数范围(delta 8–15bps、chunk 20–30%、间隔 3–5s)。 - 混合 Maker/Taker 刷量:`takerRatio` 自适应,薄盘口限制 Taker,Maker join best/inside。 - 成本阈值过滤:若费用+滑点+价差超阈值则跳过。 - -2019 处理:双边多步减仓、失败侧冷却,Taker 爆发前撤限价释放保证金。 - 精度与步进:严格遵循 stepSize/tickSize/precision;数量与价格格式化统一。 ### 4. 行情与订单簿 - 标准化 `depth(symbol, limit)` 与 WS 事件(depth/ticker/trade)。 - 薄盘口(如部分 DEX)启用 spread-aware,限制 Taker;聚合中位价用于触发逻辑。 ### 5. 可观测性与持久化 - 中文日志:账户/仓位/入场价/PNL/净暴露/动作(重试/回退/对冲/净零/对齐)。 - 数据持久化:CSV/SQLite(账户净值、下单/成交量、PnL、错误码、回归动作)。 - 报表脚本:支持时间窗口聚合(胜率、回撤、手续费覆盖率、净度)。 ### 6. 运维与测试 - PM2 管理,`--update-env` 热重载;健康检查。 - smoke:各交易所连通(time/symbols/depth/最小下单/撤单)。 - 单元:精度与步进边界、指令与账户解码一致性(适用 DEX)。 ### 7. 参数(保守默认) - 杠杆 25x;单侧最大名义 30u;`baseNotional=2u`;`gridStep=60bps` - `takerRatio=0.4`;`minSpreadBps=35`;`takerCooldownMs=10000` - 入场价对齐:`delta=8–15bps`,`chunk=20–30%`,`interval=3–5s`,`mode=AUTO` ### 8. 里程碑 - M1:三交易所 smoke 通,全局精度/步进校验通过 - M2:执行器面向 `ExchangeAdapter` 完整对接,原子配对>98% - M3:日志/持久化/报表就绪、错误码自愈率>95% - M4:长周期稳态试跑与复盘优化 ### 9. 模块清单与职责(按分层) - exchanges(接入层) - 抽象 - `src/exchanges/ExchangeAdapter.ts`:统一接口(下单/撤单/账户/仓位/深度/WS) - Binance - `src/exchanges/binance/FutureConnector.ts`:USDS 合约 REST 封装 - `src/exchanges/binance/BinanceAdapter.ts`:实现 `ExchangeAdapter` - Aster - `src/exchanges/aster/asterAdapter.ts`:签名封装/下单占位 - `src/exchanges/aster/wsClient.ts`:WS 客户端(订阅/重连/心跳) - `src/exchanges/aster/orderBook.ts`:本地 OrderBook(快照+增量) - `src/exchanges/aster/orderBookManager.ts`:多符号管理与分发 - `src/exchanges/aster/types.ts`:Aster 事件/配置类型 - Pacifica - `src/exchanges/pacifica/PacificaClient.ts`:REST/WS 基础客户端(签名占位) - `src/exchanges/pacifica/PacificaAdapter.ts`:实现 `ExchangeAdapter` - core(领域层) - `src/core/hedging/hedgingExecutor.ts`:对称/原子开平、净敞口约束(后续对接 exchanges) - `src/core/hedging/hedgeCalculator.ts`:数量/净暴露/回归计算 - `src/core/hedging/router.ts`:路由到现货/合约执行(调用 AsterAdapter) - `src/core/strategy/positionStrategy.ts`:策略接口/信号定义 - `src/core/market/*`:行情聚合/配置(深度/中位价) - infrastructure(基础设施) - `src/infrastructure/wallet/walletManager.ts`:链上签名/地址管理(已用) - `src/infrastructure/config/configManager.ts`:统一配置读取(待接) - `src/infrastructure/database/`:持久化(CSV/SQLite/报表,待接) - utils(通用) - `src/utils/logger.ts`:中文日志输出 - `src/utils/math.ts`、`src/utils/events.ts`、`src/utils/web3.ts` - examples / scripts(示例与脚本) - `examples/pacifica_smoke.ts`:Pacifica 连通性 - (新增)`examples/adapter_symmetry_demo.ts`:基于 `ExchangeAdapter` 的最小对称下单 - yarn 脚本:`smoke:pacifica`(已有)、(新增)`demo:adapter-symmetry` - docs(文档) - `docs/requirements.md`(本文)、`docs/architecture.md`、`docs/CHANGELOG.md` ### 10. 生产就绪模块要求 #### 🔴 关键生产模块(P0 - 上线前必须) **监控和可观测性** - [ ] Prometheus 指标收集系统 - [ ] Grafana 监控仪表板 - [ ] 健康检查 API (`/health`) - [ ] 关键指标告警规则 (延迟、错误率、连接状态) - [ ] 结构化日志输出 (JSON格式、统一时间戳) **故障恢复和容错** - [ ] 自动重连机制 (指数退避策略) - [ ] 订单执行失败回滚机制 - [ ] 网络分区场景处理 - [ ] 账户故障切换逻辑 - [ ] 数据不一致自动修复 **安全加固** - [ ] API 密钥轮换机制 - [ ] IP 白名单和防火墙配置 - [ ] 详细审计日志记录 - [ ] 敏感数据加密存储 - [ ] 入侵检测和告警 #### 🟡 重要生产模块(P1 - 上线后优化) **性能和扩展** - [ ] 连接池管理优化 - [ ] 批量订单处理 - [ ] 内存缓存策略 - [ ] 数据库连接池 - [ ] WebSocket 消息压缩 **数据持久化** - [ ] PostgreSQL 数据库集成 - [ ] 数据备份和恢复机制 - [ ] 实时分析引擎 - [ ] 交易报表系统 - [ ] 历史数据归档 **运维工具** - [ ] PM2 生态配置文件 - [ ] Docker 容器化部署 - [ ] CI/CD 流水线 - [ ] 自动化部署脚本 - [ ] 环境配置管理 #### 🟢 增强功能模块(P2 - 长期规划) **高级交易功能** - [ ] 冰山订单和 TWAP 算法 - [ ] 动态风险管理系统 - [ ] 回测框架集成 - [ ] ML 模型集成接口 - [ ] 更多 DeFi 协议支持 ### 11. 需新增/完善模块(任务清单) - 执行器对接 exchanges:将 `hedgingExecutor` 改为仅依赖 `ExchangeAdapter` - 精度/步进工具:数量/价格对齐(stepSize/tickSize/precision)通用化 - 审计与持久化: - CSV/SQLite 写入器(账户净值、下单/成交量、PNL、错误码、回归动作) - 报表脚本(时间窗口聚合) - 对称下单示例与脚本(adapter_symmetry_demo) - PM2 生态文件(ecosystem.config.js),含日志目录与自动重启 ### 12. 生产就绪度评估 **当前状态**: 81.55/100 分 **目标状态**: 90+ 分 (企业级标准) **关键指标要求**: - 系统可用性 ≥ 99.9% - API 响应时间 < 100ms (95th percentile) - 故障恢复时间 < 5分钟 - 错误率 < 0.1% - 支持并发账户数 ≥ 1000个