提供日常巡检、故障响应、降级策略及人工干预流程,确保系统在异常环境下可控可退。
| 角色 | 主要任务 |
|---|---|
| 值班工程师 (On-call) | 监控报警、执行降级/恢复、记录 incident |
| 策略负责人 | 审核参数、决策策略切换或停机 |
| SRE / DevOps | 维护基础设施、日志、告警渠道 |
所有关键操作需在 Slack #trading-ops 频道同步,并在 incident log 记录。
| 时间频率 | 检查项 | 通过标准 | 指标/命令 |
|---|---|---|---|
| 每 15 分钟 | WS 延迟 / 重连 | pacifica_ws_reconnects_total 无增长 |
`curl /metrics |
| 每小时 | Delta 风险 | delta_abs < max_base_abs * 0.5 |
Grafana 面板 |
| 每小时 | Hedge 成功率 | hedge_success_rate > 0.95,latency_p99 < 2s |
Grafana |
| 每 4 小时 | 资金费率相关性 | funding_rate_correlation > 0.8 |
Funding 面板 |
| 每日 | PnL 汇总 | Intraday PnL 不超过 -0.5% | pnpm reports:daily |
| 每小时 | 网格自适应状态 | grid_step_bps 梯度平滑、grid_pending_hedges=0 |
/metrics -> grid_* |
异常时立即记录:时间、指标、上下文。
hedge_failure_count >= 3 或报警 hedge_success_rate < 0.9POST /api/override-degradation {"mode":"REDUCE_ONLY","reason":"hedge_fail"};/api/manual-hedge?symbol=BTC&size=0.3);pacifica_ws_gaps_total 提升或 data_gap_sec > 3OrderRouter.cancelAll(symbol)(API: POST /api/cancel-all);POST /api/halt 暂停策略;delta_abs > max_base_abs 告警POST /api/override-degradation {"mode":"REDUCE_ONLY","reason":"delta_high"};HedgeEngine.enqueueDelta,必要时人工平仓;grid.max_layers、grid_step_bps 或暂时关闭策略。funding_same_sign_ratio > 0.2grid.base_clip_usd 下调 30%,或禁用网格;401 / WS AUTH_FAILEDPOST /api/halt);.env 是否过期、时间同步 (ntp);pnpm test --filter contract。| 场景 | Action | 触发方式 |
|---|---|---|
| 对冲失败 | REDUCE_ONLY |
风控自动 |
| 数据断流 | HALT |
降级策略 |
| STP 率过高 | DISABLE_SCALPER |
降级策略 |
| 高波动 | ADAPTIVE (grid.max_layers=1) |
Adaptive Mode |
curl -X POST http://localhost:4000/api/override-degradation \
-H 'Content-Type: application/json' \
-d '{"mode":"HALT","reason":"manual_intervention"}'
HALT, REDUCE_ONLY, NORMAL.POST /api/override-degradation {"mode":"NORMAL"};📣 Kill-switch 通知:Runner 会在触发时向
KILL_SWITCH_WEBHOOK(若配置)发送 JSON 负载,包含status、gridStatus、source等字段,用于集成 Slack / PagerDuty。默认日志位于logs/runner-*.log。
手动对冲 API:POST /api/manual-hedge
{ "symbol": "BTC", "size": 0.25, "side": "sell", "reason": "manual_adjustment" }
manual=true。临时挂单:POST /api/manual-order → 仅在 reduce-only 模式下允许。
所有手动操作需记录:
| 日志文件 | 内容 | 查看命令 |
|---|---|---|
logs/runner-*.log |
主流程、策略、Risk/Kill-switch、Grid 自适应事件 | tail -f logs/runner-*.log |
logs/execution.log |
下单、撤单、错误码 | less +F logs/execution.log |
logs/metrics.log |
指标采集快照 | grep hedge_latency logs/metrics.log |
logs/events.log |
WS 事件 (JSONL) | jq '.' logs/events.log |
排障流程:
grep traceId=<id> logs/app.log)data/replay/incidents/ 保存事件序列。Incident ID: YYYYMMDD-HHMM-<short>
Severity: SEV2/SEV3
Start Time:
Detection Method: (Alert / Manual)
Primary Symptoms: (Delta spike / Hedge fail / WS gap)
Actions Taken:
- 00:01 Set mode=REDUCE_ONLY
- 00:03 Manual hedge 0.4 BTC
Resolution Time:
Root Cause:
Follow-up Tasks:
docs/incidents/,并在每周复盘会议回顾。在恢复前运行:
pnpm test --filter integration
pnpm backtest --config backtest/regression.yaml --from yesterday --to today
| 指标 | 阈值 | 动作 |
|---|---|---|
hedge_success_rate < 0.9 (5 分钟) |
Slack SEV2 | 触发 reduce-only |
delta_abs > max_base_abs (1 分钟) |
Slack SEV2 | 手动对冲 |
pacifica_ws_reconnects_total >= 3 (5 分钟) |
Slack SEV3 | 检查网络/交易所 |
funding_rate_correlation < 0.8 (1 小时) |
邮件 | 评估撤标的 |
strategy-vX.Y.Z.git checkout strategy-vX.Y.Zpnpm install && pnpm run buildpnpm run live -- --config config/config.yaml --rollback