事中风控是自动化程度最高、责任最重的一层:它要在无人值守的毫秒到分钟级时间里,做出「继续持有 / 降仓 / 全停」的决定。它的设计哲学与人工风控相反:宁可误杀(多余的降仓损失有限),绝不漏杀(失效的风控毁掉全部)。
实时监控:盘中的仪表盘
盘中监控的指标分两组:
收益与损失组(决策「策略今天怎么了」):
- 实时 PnL:当日已实现 + 未实现损益,分策略/分因子/分行业切片;与日度波动率挂钩的动态阈值——「当日亏损 > 2 × 日波动」触发第一级响应;
- 实盘 vs 模拟偏离:影子模拟盘并行,偏离超阈值 = 执行或数据故障的即时信号(比绝对 PnL 更灵敏,见日志与监控 );
- 超额回撤的盘中逼近度:距组合回撤线(-15%/-20%)还剩多少——逼近预警线时自动收紧限额(减半单票上限、禁新开仓),让「熔断」成为一个渐进过程而非悬崖。
交易健康组(决策「系统今天怎么了」):
- 订单成功率、废单类型分布、成交价 vs 决策价差额(执行滑点的实时版,见TCA );
- 行情心跳(各源最后时间戳)、信号生成耗时(超时 = 可能用了过期数据下单);
- 账户保证金占用与追保距离(杠杆场景,见杠杆与保证金 )。
熔断:分档响应的自动机制
熔断不是开关而是梯子——每档都有明确的触发条件、自动动作与解除条件:
| 级别 | 触发(示例) | 自动动作 | 解除 |
|---|---|---|---|
| L1 警戒 | 当日 PnL < −2σ;某暴露越限 | 禁新开仓;违规暴露自动对冲回限内 | 当日收盘自动重置 |
| L2 降险 | 当日 PnL < −4σ;连续 3 日负超额且偏离模型预期 | 全组合降杠杆 50%;高波动持仓优先减 | 人工确认 + 次日评估 |
| L3 停机 | 当日 PnL < −6σ;执行系统异常(废单潮、行情断流);影子偏离 > 阈值 | Kill Switch:撤销全部未成交委托、停止新订单,存量持仓按预案处理 | 仅限人工双人确认 |
设计要点:
- 阈值挂靠波动率:σ 随 regime 变,固定百分比阈值会在平静期过松、动荡期过紧——动态阈值(σ 的倍数)是标准做法;
- 触发后的动作要「预演过」:每档动作在上线前用历史数据模拟过(「如果 2024-02-05 触发 L2,会减掉哪些仓、成交假设是什么」)——没演练过的熔断在真触发时会暴露新的执行问题(流动性紧缩时「减仓」本身可能不可行,见事前风控 的压力测试);
- 熔断与策略的契约:熔断造成的被动交易要能从策略绩效中剥离(标记熔断时段),否则风控动作会污染策略评估(归因见绩效指标 )。
Kill Switch:最后的保险丝
Kill Switch 的设计是纯粹的可靠性工程,原则与交易无关而与「失效安全(fail-safe)」有关:
- 独立于交易系统的通路:Kill 开关不能跑在交易引擎同一个进程里(引擎卡死 = 开关也死)——独立进程、独立网络通路、券商端的撤单+禁交易权限(API 级 + 柜台级双通道);
- 一键且不可逆:触发后的状态是「完全停止交易」,恢复需要显式的人工步骤——「半开半关」的中间态是事故扩大的温床;
- 定时演练:每月在模拟环境触发一次,每季度在实盘低风险时段演练(撤当日全部委托的重放测试)——没演练过的 Kill Switch 在心理与工程上都大概率失效;
- 权限与审计:谁有权触发(值班员 + 主管双权限)、触发日志不可篡改(合规要求,见安全 )。
异常检测:抓住「不对劲」
熔断线捕捉「已量化的大坏」,异常检测捕捉「未建模的怪」:
- 规则级:信号值突变的物理边界(因子值超出历史 [0.1%, 99.9%] 分位、某股票收益 > 涨跌停约束允许的范围 = 数据错误信号);
- 统计级:PnL 流的 CUSUM 变点检测(均值漂移的快速发现)、实时残差(实盘收益 − 模型预测收益)的滚动 t 检验——比「事后发现月度超额没了」早几周报警;
- 行为级:成交回报的模式异常(同一标的反复撤单 = 可能是策略 bug 死循环;委托被拒理由分布突变 = 账户权限或资金问题)。
异常检测的输出接入熔断梯子的 L1/L2——它负责「发现」,熔断负责「动作」,两层阈值分离(可误报 vs 不可误触发,见日志与监控 的发现/动作分离)。