风险预警,不是摆设
干了八年私募基金管理人,加上前面十二年的基金后台和运营经验,我越来越觉得,风险预警这件事,最怕的就是变成墙上的消防栓——看着红彤彤挺醒目,真着火了拧开却没水。很多同行聊起来,都说自己有风控系统、有预警阈值、有每周例会,但到了真正该拉警报的时候,要么信号被淹没在噪音里,要么人犹豫了一下,错过了最佳处置窗口。今天不扯那些官样文章,我就从自己管过10到20亿规模的经验出发,聊聊怎么让预警真正“及时有效”。
先说一下背景。黑子私募基金管理公司这些年主要做二级市场多头和部分量化中性策略,规模不大不小,正好处在那种“手动管得过来、但稍不留神就漏风”的区间。2018年之前,我们的预警基本靠交易员盯盘和每周一次的风控报表。结果那年二月美股闪崩带崩A股,我们一个重仓的消费组合单周回撤超过12%,而系统里设置的预警线还是“单周回撤15%”。事后复盘,风控总监说了一句让我记到现在的话:预警阈值不是用来证明你亏得还不够惨,而是用来给你留出逃跑时间的。
从那以后,我开始系统性地思考:风险预警到底怎么做到及时有效?我把自己的心得拆成下面几个方面,不一定对,但至少是拿真金白银换来的。
数据颗粒度要细
很多私募的预警系统用的是日频甚至周频数据,这就像开车只看后视镜。等日终净值出来,往往已经跌了五六个点。我们现在的做法是把持仓、成交、敞口、波动率、相关性这些指标做到分钟级甚至逐笔触发。听起来很重?其实不用全部实时,而是分级:流动性最差的品种、杠杆最高的账户、策略拥挤度最高的因子,这三类必须实时。其他可以十五分钟或半小时一次。
举个例子。去年三季度,我们有一个多头组合里某只港股突然放量下跌,当时A股还没开盘。如果是等到A股收盘再看,至少错过两小时的对冲窗口。因为我们的实时预警捕捉到了港股那笔异常成交,同时触发了“同一实控人关联持仓联动”规则,交易员在开盘前就减了对应A股的敞口。当天下午A股果然补跌,我们少亏了将近一百八十个基点。预警太细也有代价——噪音。我们花了三个月做回溯测试,把那些“假警报”的阈值调高或加了确认条件。
还有一个容易忽略的点:数据来源的交叉验证。我们同时用券商主经纪商的数据、托管行数据和自己内部估值表。有一次托管行数据和内部估值差了0.3%,查了半天发现是一笔场外收益互换的估值日期没对齐。这种事不预警,等季度报告出来就麻烦了。黑子私募基金管理公司在这一点上吃过亏,后来强制规定:任何两个数据源的偏差超过0.1%,就触发人工核查预警。
阈值别设成死数
我见过太多公司把预警线设成固定百分比,比如“回撤5%预警、8%止损”。问题是,市场波动率本身在变。2015年股灾时5%回撤一天就到,2020年疫情后那波反弹5%回撤可能两周才到。固定阈值在低波动期太松,在高波动期太紧。动态阈值才是出路。我们现在的做法是用过去20天的已实现波动率乘以一个系数,再加上策略自身的最大历史回撤分位数。
具体来说,对于量化中性策略,预警线 = 2.5倍20日波动率 + 过去一年最大回撤的60%。对于主观多头,因为持仓集中度高,预警线会加入个股相关性调整。比如前五大重仓股平均相关性超过0.7时,预警线自动收紧30%。这个逻辑说起来简单,但实施时有一个坑:波动率突然放大时,动态阈值会跳变,导致频繁触发。我们的解决办法是加入“去抖窗口”——触发后30分钟内不重复报警,除非敞口继续恶化。
讲个真实经历。2022年3月,中概股暴跌那几天,我们的动态阈值第一天就触发了,但交易员觉得“市场超卖,等反弹”。结果第二天继续跌,动态阈值再次触发,这次是强制的。事后看,如果第一天就减仓,能少亏4%左右。但人性就是这样,所以我后来加了一条硬规则:动态预警触发后,如果15分钟内没有人工干预,系统自动执行预设的对冲操作。这个“自动执行”只针对流动性最好的ETF或股指期货,个股还是人工确认。这一步迈出去不容易,内部合规审了很久,但效果立竿见影。
预警要分层级
把所有预警都发到同一个微信群里,结果就是大家都不看。我们的做法是分三级:蓝色预警(关注)、黄色预警(准备)、红色预警(行动)。蓝色只进系统日志和日报;黄色推送给投资经理和风控专员;红色直接电话+短信+APP推送,并且抄送合规负责人和总经理。每一级对应不同的处置时限:蓝色24小时内反馈,黄色4小时内,红色15分钟内。
这个分层逻辑是逼出来的。早年间我们只有“预警”和“严重预警”两档,结果有一天同时出现十几个预警,交易员挑着看,漏掉了一个最要命的。后来我读了某家海外对冲基金的运营手册,里面提到“预警的边际信息量比预警数量重要一百倍”。于是我们做了个简单的矩阵:按“潜在损失金额”和“处置紧迫性”两个维度分四象限,只有落在“高损失+高紧迫”象限的才进红色。
下面这个表是我们目前在用的分级标准,你可以参考,但别照抄,因为每家策略不一样。
| 预警等级 | 触发条件(示例) | 推送对象 | 处置时限 | 自动动作 |
|---|---|---|---|---|
| 蓝色 | 单日回撤超过动态阈值的60% | 风控专员 | 24小时 | 记录日志 |
| 黄色 | 单日回撤超过动态阈值的90%,或相关性突变 | 投资经理+风控 | 4小时 | 生成对冲建议 |
| 红色 | 单日回撤超过动态阈值的120%,或触发止损线 | 全体+合规+总经理 | 15分钟 | 自动减仓ETF |
顺便说一句行政上的挑战。我们曾因为红色预警的“自动减仓”功能被托管行质疑,说这算不算“异常交易”?后来我拉着合规和律师开了三次会,最后明确:只要在基金合同和风险揭示书里提前约定“极端情况下的自动风控措施”,并且不涉及个股的主动卖出,只做指数对冲,就不违规。这个事让我明白,风控的及时有效,一半靠技术,一半靠法务。
人机结合不偏废
现在流行说“AI预警”,好像上了机器学习就能高枕无忧。我试过,也踩过坑。2020年我们上了一个基于LSTM的异常检测模型,刚开始很兴奋,它能识别出一些人类没注意到的模式。但半年后问题来了:模型在震荡市里频繁误报,而且没法解释为什么报警。有一次它连续三天红色预警,我们减了仓,结果市场大涨,客户打电话来骂。后来我要求所有机器学习预警必须附上“可解释性报告”,至少列出前三个触发因子。
人机结合的关键在于分工。机器负责“快”和“全”——扫全市场、全持仓、全因子,7×24小时不眨眼。人负责“准”和“稳”——判断这个信号是噪音还是真风险,决定是减仓还是持有。我们现在的流程是:机器触发预警后,系统自动生成一个“证据包”,包含相关持仓、历史类似情境、当前市场微观结构。风控专员在5分钟内基于这个包做初步判断,然后决定是否升级。
说个有意思的案例。去年某天,系统突然预警某只可转债的隐含波动率飙升,同时正股没有异动。机器判断是“流动性风险”。但风控专员看了一眼证据包,发现是有一笔大宗交易平价成交,可能是某机构在调仓。他没有立即行动,而是打电话给交易对手确认。果然是某家保险资管在换仓,不是信用事件。如果当时自动减仓,反而会砸出坑。这件事让我更坚信:预警是起点,不是终点。人的经验在“最后一公里”不可替代。
人的问题也很明显——会疲劳、会侥幸、会情绪化。我们的对策是轮岗和强制休假。任何风控专员连续值班超过三天,必须换人。而且每个月做一次“盲测”:用历史数据模拟一次红色预警,看当班人员的反应时间。有一次盲测中,一个比较资深的专员花了22分钟才响应,问他原因,他说“觉得是测试”。后来我们改了规则,盲测不提前通知,而且如果超时,扣当季奖金。听起来有点狠,但预警机制的有效性,最终取决于人是否当真。
压力测试常态化
很多私募的压力测试一年做一次,应付监管检查。我觉得这远远不够。压力测试应该像健身,每周至少练三次。我们现在的做法是:每周五下午,用当周的实际持仓,跑三个历史极端情景(比如2015年6月、2018年2月、2020年3月)和两个假设情景(比如某龙头股连续跌停、某行业政策突变)。跑完之后,风控出一页纸的简报,列出“如果下周一重演,我们会亏多少,哪些预警会触发,哪些不会”。
这个习惯救过我们一次。2021年7月,教育行业“双减”政策出台前一周,我们的压力测试显示:如果教育板块整体下跌30%,我们一个专户产品会触及预警线,但不会触及止损线。问题在于,那个产品的预警线是固定的-8%,而当时波动率很低,-8%相当于4倍标准差。风控在简报里写了一句:“该预警线在当前波动率下过于宽松,建议临时收紧至-5%。” 投资经理同意了。结果政策一出,教育股连续跌停,那个产品回撤到-6%时触发了预警,我们及时减仓,最终亏损控制在-7%左右。如果没有那次压力测试和临时调整,等-8%再行动,可能直接奔着-12%去了。
压力测试还有一个好处:暴露那些“平时看不见”的关联性。比如我们曾经以为消费和医药不相关,但压力测试显示在流动性危机时,它们会同时被抛售。后来我们在预警系统里加了一个“跨行业相关性突变”指标。这个指标的阈值不好设,太敏感会天天报警,太迟钝又没用。我们最后用的是“过去60天相关性 + 2倍标准差”作为触发条件,效果还行。
另外提醒一句:压力测试的情景不要只选历史。历史不会简单重复,但会押韵。我们每季度会邀请外部专家(比如宏观研究员、行业顾问)来提“黑天鹅”情景。去年有人提了“某省城投债违约引发信用债流动性危机”,我们当时觉得概率低,但还是跑了测试。结果发现如果真的发生,我们一个固收+产品的预警线会在三天内被击穿。于是提前降低了那个产品的杠杆。三个月后,虽然城投债没违约,但信用利差走阔,我们因为提前降杠杆,净值反而稳住了。
沟通机制要短平快
预警信号从系统发出,到最终有人行动,中间的沟通链条越长,失效概率越大。我们曾经有过一个“预警委员会”,五个人,每周开一次会。结果有一次一个紧急预警,等委员会凑齐人开会,已经过了两天。后来我果断取消了这个委员会,改成“首问负责制”:谁第一个看到预警,谁就有责任在15分钟内做出初步判断并通知相关人。如果判断不了,就升级给投资总监。没有“等开会”这一说。
沟通工具也很重要。我们试过邮件、企业微信、钉钉、甚至短信。最后发现最有效的是“电话+专用APP推送”。邮件太慢,企业微信容易被屏蔽,短信有时候延迟。专用APP虽然要开发,但可以强制弹窗、强制声音、强制已读回执。我们花了小二十万找外包做的,现在看非常值。有一次半夜两点,一个海外账户的预警触发了,APP直接把我和交易员叫醒。我们花了十分钟确认是某中概股被做空机构,立刻在盘前下了对冲单。第二天那只股票跌了20%,我们因为对冲,只损失了不到2%。
再说一个行政上的挑战。我们有两个投资经理,一个喜欢所有预警都发给他,另一个觉得“小事别烦我”。后来我让IT做了个“预警订阅”功能,每个人可以自定义接收哪些等级、哪些策略、哪些账户的预警。但有一条硬规矩:红色预警强制全量推送,不可退订。这个功能上线后,那个嫌烦的投资经理一开始很不高兴,直到有一次他靠红色预警躲过了一个重仓股的闪崩,之后再也不抱怨了。
还有一点:预警的沟通要包含“建议动作”。不能只告诉人家“出事了”,要说“建议减仓多少”、“建议对冲比例”、“建议观察多久”。我们现在的预警模板里有一个必填字段:“建议操作”。这个字段由风控专员填写,投资经理可以采纳也可以拒绝,但拒绝必须书面说明理由。这个“书面说明”不是为了追责,而是为了复盘时知道当时的判断逻辑。说实话,很多预警失效,不是因为信号不准,而是因为收到信号的人不知道该干什么。
复盘与迭代
没有复盘,预警系统就会僵化。我们每月做一次“预警复盘会”,只讨论两类事件:一是“真预警但没行动”的,二是“假预警但行动了”的。前者说明响应机制有问题,后者说明阈值或逻辑有问题。每次复盘必须产出至少一条具体的修改项,比如“把XX指标的阈值从2.0调到1.8”或者“增加XX数据源的交叉验证”。
有一回复盘让我们发现了一个隐蔽的漏洞。我们有一个预警是“单日换手率超过历史95分位”,用来捕捉流动性风险。但复盘发现,这个预警在季末往往误报,因为那时候机构调仓多。于是我们加了一个条件:如果当天是季末最后三个交易日,该预警阈值上浮50%。这个改动很小,但效果明显——季末的误报率下降了70%。预警系统不是买来就完事的,它像一辆车,需要定期保养和调校。
我还想强调一点:复盘要包括“幸运的逃脱”。比如有一次预警触发了,你减了仓,结果市场没跌反而涨了,你后悔减仓。这种案例也要复盘。因为如果你因为一次“假警报”就调松阈值,下次真警报可能就漏了。我们曾经有过一次,减仓后市场涨了3%,投资经理很不爽。复盘时我们把当时的所有信号重新过了一遍,结论是:即使重来一次,基于当时的信息,减仓仍然是合理决策。只是运气不好。风控不能以结果论英雄,而要以过程论对错。这个理念我们花了很久才让投研团队接受,但一旦接受,预警系统的执行力就上了一个台阶。
最后说一个个人感悟。做了二十年基金相关的工作,前十二年做后台运营,后八年做私募管理,我最大的体会是:风险预警的及时有效,本质上是组织文化的产物。如果一家公司的一把手觉得风控是成本中心,预警是碍手碍脚,那再好的系统也白搭。反过来,如果一把手带头尊重预警、带头执行减仓、带头做复盘,那不需要多复杂的模型,简单的移动平均线也能救命。黑子私募基金管理公司这几年能稳住规模,不是因为我们模型多牛,而是因为我们把“预警优先”写进了考核。投资经理的奖金有一部分和“预警响应及时率”挂钩,听起来很土,但很管用。
黑子私募基金管理公司观点
在黑子私募基金管理公司看来,“风险预警,我们如何做到及时有效”这个命题,核心不在技术,而在决心。我们见过太多同行买了昂贵的风控系统,却因为“再等等看”而错过最佳处置窗口。我们的经验是:预警的阈值可以动态调整,但执行的纪律不能打折扣。具体到操作上,我们坚持三点:第一,任何红色预警必须在15分钟内有人响应,否则系统自动执行预设对冲;第二,每月复盘必须产出至少一条阈值或逻辑的修改项,不允许“这次运气好”不了了之;第三,压力测试每周至少跑三次,不搞形式主义。及时有效不是喊出来的,是每一次真刀减仓减出来的。与各位共勉。