docs/API_CONNECTOR_SPEC.md:连接层端点、签名与错误处理docs/MODULE_INTERFACES.md:模块接口、依赖图与错误类型docs/SEQUENCE_FLOW.md:行情、策略、执行、对冲、降级的时序docs/CONFIG_REFERENCE.md:配置字段、默认值与热更新策略docs/TESTING_PLAN.md:测试矩阵、验收指标docs/OPERATIONS_PLAYBOOK.md:运维巡检、降级和恢复流程┌───────────────────────────────────────────────────────────────┐
│ Apps / Runners │
│ - live-runner - canary-runner - replay-runner (backtest) │
└────────────┬─────────────────────────────┬────────────────────┘
│ │
┌──────▼────────┐ ┌───────▼───────────────────┐
│ Strategy Bus │ │ Risk & Compliance Engine │
│ (MM, Scalper, │ │ (limits, STP, kill-switch│
│ ExecutionPolicy)│ │ audit, policy gating) │
└─────┬──────────┘ └─────────┬────────────────┘
│ │
┌──────▼─────────┐ ┌──────▼───────────┐
│ Order Router │◄────Health──────►│ Telemetry & Logs │
│ (child orders, │ │ (Prom, Pino, │
│ slippage guard)│ │ audit trail) │
└─────┬──────────┘ └──────┬───────────┘
│ │
┌───────▼──────────┐ ┌───────────▼──────────────┐
│ Exchange Adapter │◄──────────►│ Market Data Pipeline │
│ (Pacifica, +N) │ (WS/REST) │ (shadow book, derived
data)│
└────────┬─────────┘ └───────────┬──────────────┘
│ │
┌─────▼──────────┐ ┌────────▼───────────┐
│ Persistence │ │ Backtest/Simulator │
│ (PnL, fills, │ │ (event replay, fee│
│ configs, audit)│ │ model) │
└────────────────┘ └────────────────────┘
架构优化说明(2025-10 更新):
apps/runner: 负责 DI 容器、配置加载与热更新、生命周期管理(启动、平滑关闭)。live-runner、canary-runner、replay-runner 三种应用入口,统一注入策略与引擎。.env:API base、key、Ed25519 私钥、子账户等敏感信息。config/config.yaml:策略参数(symbols、mm、scalper、risk、hedge、telemetry),通过 zod 校验与热更新。packages/registry,新增)packages/execution/globalCoordinator.ts,新增)packages/strategies/coordinator.ts,新增)packages/connectors/pacifica)adapter.ts:封装 REST 请求(下单、撤单、批量撤、持仓、资金费率、账户信息)。signing.ts:Ed25519 签名实现(确定性 JSON 序列化、时间戳、header 注入)。adapterRegistry 管理 Account A/B。packages/utils/shadowBook.ts, packages/utils/marketDataAdapter.ts)mid、spread_bps、order_book_imbalance(k)、短时波动率 rv、队列估算 queue_alpha。packages/execution/orderRouter.ts)clientId 去重、STP 检查(不得与本地挂单交叉)。packages/risk)RiskEngine: 名义/库存/单笔上限,订单前置校验;实时记录 realized PnL,触发回撤熔断。packages/strategies)MarketMaker: 按 mid±δ 多层挂单;基于波动 regime 调整 spread/clip/reprice 周期。MicroScalper: spread 扩张 + 成交流不平衡触发;以 ExecutionPolicy 决定被动/主动模式、tp/sl 目标。GridMaker(新增,备选策略):
config.yaml 中的 strategy_mode: grid | scalper | both 选择StrategyBus 协调执行节奏,避免信号竞态;支持启停、参数热更。strategy_mode=both 时,GridMaker 和 Scalper 通过优先级避免冲突(网格优先,剥头皮仅在极端 spread 触发)。packages/portfolio, packages/hedge)PositionManager: 聚合多 venue/子账户仓位、计算净 Delta、资金费暴露。HedgeEngine: PI 控制器计算对冲量,强制最小间隔,调用对冲 venue 的 IOC/紧限价单;记录 hedge 成本。packages/execution/triggerEngine.ts)packages/telemetry)prom-client 暴露指标:maker_ratio, avg_edge_bps, real_slip_bps, delta_abs, hedge_cost_bps, latency_p99, cancel_rate, pnl_intraday, stp_hits 等。hedge_success_rate: 对冲订单成交率(目标 >98%)hedge_latency_p50/p95/p99: 从信号到对冲完成的延迟分位数hedge_slippage_bps: 对冲实际成交价 vs 预期价的偏差cross_venue_basis_bps: 双账户所在 venue 的价差,用于发现套利机会或数据异常pino 结构化日志 + pino-pretty 本地调试;审计日志写入 append-only 存储(文件或数据库)。packages/backtest)MarketDataEvent 与 OrderEvent 进行回放,驱动同一套策略模块。行情路径:
订单路径(协调版):
对冲路径(增强版):
监控路径:
配置热更(金丝雀流程):
降级路径(新增):
| 故障场景 | 检测条件 | 降级动作 | 恢复条件 |
|---|---|---|---|
| 主账户行情断流 | >5s 无行情更新 | 撤主账户所有挂单,保留对冲账户 | 行情恢复且延迟 <500ms |
| 对冲账户 API 故障 | 连续 3 次对冲失败 | 主账户切换为"只平不开"模式 | 对冲账户恢复正常 5 分钟 |
| 双账户都断流 | 双重断流 >3s | 全部撤单 + HALT + 告警 | 手动恢复 |
| 对冲延迟过高 | hedge_latency_p95 > 2s 持续 1 分钟 | 暂停新信号,仅处理存量仓位 | 延迟降至 <1s |
| Gas fee 暴涨(链上 DEX) | 对冲成本 > edge_bps * 2 | 暂停新信号,延长对冲间隔至 1 分钟 | Gas 降至正常水平 |
| Delta 失控 | abs(delta) > 2x max_base_abs | 强制市价对冲,暂停所有策略 1 分钟 | Delta 归零 |
| Funding rate 异常 | 双 venue funding rate 相关性 <0.5 | 减仓至 50%,告警通知人工审查 | 人工确认后恢复 |
| 策略表现劣化 | 某策略 EV <0 持续 10 分钟 | 自动暂停该策略,保留其他策略运行 | 参数调整后手动启用 |
| 跨账户 STP 命中率过高 | STP 拒绝率 >5% | 暂停 Scalper,仅保留 MM | STP 率 <1% 持续 5 分钟 |
降级策略实现要点:
/api/override-degradation(需认证)undici, ws;加密:@noble/ed25519。zod;配置:dotenv, cosmiconfig。pino, pino-pretty;指标:prom-client。vitest/jest + 自定义事件回放框架。StrategyBus 触发 MarketMaker.onTimer → ShadowBook 提供 mid/spread → 生成双边限价单 → RiskEngine 校验 → OrderRouter(postOnly) 下单 → Telemetry 记录。ShadowBook 发布新行情 → MicroScalper.onBook 检测 spread 扩张 → 发起 taker/被动组合 → TriggerEngine 设置 OCO → OrderRouter 执行。docs/IMPLEMENTATION_PLAN.md 里程碑保持同步,每阶段结束更新本架构文档状态。