定义单元、集成、回测、性能测试以及指标验证,确保策略在上线前经过系统性验证。
| 测试类型 | 范围 | 触发方式 | 通过标准 |
|---|---|---|---|
| 单元测试 | 单模块逻辑 (GridMaker, RiskEngine, OrderRouter 等) | pnpm test --filter unit |
核心断言覆盖率 ≥ 80% |
| 合约测试 | REST/WS 适配器与签名 | pnpm test --filter contract |
对官方 sandbox 通过 |
| 私有 WS 冒烟 | Pacifica 私有频道 (orders/fills/account) | pnpm test --filter contract -- --suite pacifica-ws + 手动连接 |
成功订阅并收到增量,签名校验通过 |
| 集成测试 | 策略→执行→风控链闭环(Mock adapter) | pnpm test --filter integration |
无错误,Delta 控制达标 |
| 回测 / 仿真 | 实际行情数据回放 | pnpm backtest --config backtest.yaml |
指标满足门槛(下表) |
| 性能 / 压力 | OrderRouter、HedgeEngine 并发 | pnpm test --filter perf |
CPU<60%,p99 延迟 < 20ms |
| 可观测性 | Prom 指标、日志字段存在 | pnpm test --filter telemetry |
指标注册完整 |
| 模块 | 文件 | 关键用例 | Mock 依赖 |
|---|---|---|---|
GridMaker |
packages/strategies/__tests__/gridMaker.test.ts |
初始化 N 层、成交后补对手单、Delta 超阈触发对冲 | ShadowBookMock, HedgeEngineStub |
RiskEngine |
packages/risk/__tests__/riskEngine.test.ts |
超限拒单、Kill-switch 触发、熔断状态持久化 | 自定义 Fake Telemetry |
OrderRouter |
packages/execution/__tests__/orderRouter.test.ts |
滑点守卫、PostOnly 拒绝、clientId 去重 | ExchangeAdapterMock |
HedgeEngine |
packages/hedge/__tests__/hedgeEngine.test.ts |
PI 控制器稳定性、重试逻辑、延迟预算 | Stub Router |
StrategyCoordinator |
packages/strategies/__tests__/coordinator.test.ts |
多策略合并、冲突解决、超时 | Faked producers |
PacificaSigning |
packages/connectors/pacifica/__tests__/signing.test.ts |
body 序列化一致、时间戳漂移、错误密钥 | N/A |
describe('Grid strategy integration', () => {
it('should place ladder orders, receive fills, and hedge within threshold', async () => {
// Arrange: Fake adapter returns deterministic fills
// Assert: risk.currentExposure().abs <= max_base_abs
});
});
要求:
MockPacificaAdapter,模拟下单、成交、延迟。resolution: "drop_scalper"。REDUCE_ONLY 并阻止新开仓。运行命令:
pnpm test --filter integration
pnpm test --filter contract -- --suite pacifica-ws,确保签名拼接、订阅 payload 通过本地断言。PacificaWebSocket.subscribe('orders.{sub}') 等频道,确认 10 秒内收到订单/成交/account 更新。pacifica_ws_auth_fail_total=0。data/replay/{symbol}_{date}.jsonl,包含 book/trade/fill 事件。pnpm scripts:fetch --symbol BTC --date 2025-09-01.pnpm backtest --config backtest/grid.yaml --from 2025-09-01 --to 2025-09-07
输出:
reports/grid/{timestamp}/summary.json
{
"ev_bps_p50": 1.9,
"ev_bps_p10": 0.4,
"delta_abs_p95": 0.32,
"hedge_cost_bps": 0.6,
"max_drawdown_pct": -0.45
}
图表:equity_curve.png, delta_histogram.png.
通过标准:
ev_bps_p50 ≥ 1.5delta_abs_p95 ≤ 0.5max_drawdown_pct ≥ -1.0hedge_success_rate ≥ 0.95目标:在高频行情下,核心组件 CPU 使用率 < 60%,事件延迟满足 SLO。
pnpm test --filter perf -- --suite order-router
sendLimit 平均 9ms,p99 < 20ms| 指标 | 验证方法 | 期望 |
|---|---|---|
maker_ratio |
回测 / 真实运行 10 分钟 | 输出至 Prom,值在 0–1 |
hedge_latency_ms_bucket |
触发对冲 | 直方图 buckets 填充 |
delta_abs |
Grid 运行 | Gauge 反映实时 Delta |
pacifica_ws_reconnects_total |
人为断网 | 指标增加,告警触发 |
funding_rate_correlation |
FundingMonitor | 计算并输出最新值 |
自动化检查:
pnpm test --filter telemetry
/metrics 输出,确认关键指标存在并有标签。pnpm test --filter unit)pnpm test --filter integration)reports/grid/.../summary.json)pnpm test --filter perf)docs/OPERATIONS_PLAYBOOK.md)ev_bps, delta_abs, hedge_latency, funding_same_sign_ratio。