requirements.md 7.3 KB

需求文档(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=2ugridStep=60bps
  • takerRatio=0.4minSpreadBps=35takerCooldownMs=10000
  • 入场价对齐:delta=8–15bpschunk=20–30%interval=3–5smode=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.tssrc/utils/events.tssrc/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.mddocs/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个