【战胜市场】(财新专栏作家 乐平)每一次风险事故都是一次宝贵的实践。光大证券的“乌龙”提供了一个很好的实践案例,其中的教训值得汲取。 一般讲,好的风控体系有三方面:坚实的内控体系(这是基础)、风险的适当分散、风险的对冲。这次事件暴露出的主要是内控体系和风险对冲的问题,我们以下先回顾一下事件,然后从这两方面分析一下乌龙事件给我们的教训。
事件还原:马赛克拼图和公告的对比
在光大8.18下午正式公告之前,我们用破碎的信息拼成了一个事件的图案。就像用马赛克拼一个图,虽然有遗漏,但大概的图形还是可以看出。
从套利动机看,因为股市低迷,一篮子股票的总价低于由这一篮子股票构成的指数基金,所以形成了低买高卖的套利机会:买入一篮子股票,卖出指数基金(通过ETF特有实物申购赎回机制,把一篮子股票申购为基金份额,然后卖出基金分额)进行套利。光大当时做的就是这种套利。当然,如果价格反向倒挂,要买入/申购指数基金,卖出/赎回一篮子股票,然后指数基金为了跟踪指数,也必须在交易所大额买入,但那样的话,在交易所下巨额买单的就是基金公司,不是光大证券了。
从乌龙发生的环节看,一个新的交易策略和系统在使用之前,往往要经过两个重要流程:一个是新产品的审批流程(new produce approval--NPA process),另一个是系统的用户验收测试流程(User Acceptance Test—UAT process)。前者主要是公司战略层面愿不愿意做,能不能做一个新业务,各个部门能否支持新产品;而后者是更具体的系统层面的设计和功能达到用户的使用需要。新产品的系统一般要反复大量做UAT测试,从交易->风控合规限额->清算结算->估值->记账->生成当日盈亏报告->生成当日风险报告等等,一套流程要顺畅走下来。即使最后转移到实战盘(从UAT到Production),也一般先用小额的交易来在真实的交易环境中来测试,保证体系的通畅。此次乌龙事件就是发生在这个环节。
当天的所见,让人印象深刻。权重股在8.16号上午11:03AM突然旱地拔葱,当时我看到上证综指的变化从30左右,直接跳到60-70左右,而正常情况下是按小数点后两位数变化的。然后看到银行股一柱擎天的交易图,第一反应是Wind系统出问题了或者电脑显示器出问题了才拉出90度的白线。但然后突破上涨限的提示小窗口连续蹦出来,而且都是权重股,当时头脑有点短路了:昨晚外盘还大跌了200多点,起码不是利好,现在这是触动了那根神经了,难道又出了个4万亿……
在正式公告前,媒体披露的交易是:上证50ETF套利,3000万股输入成3000万手,1手=100股,放大了100倍。在正式公告出来后,这个信息,被证明是个“传说”。但这个传说和50亿持仓,及7023个光大新增的股指期货空头合约,这三者之间的数据咬合是比较紧凑的。
估算如下:当时上证50ETF单位净值是1.65元,9月交割的沪深300股指期货的当天均价是2327,乘数300,假设上证50对沪深300期货的beta为1:
1.65×3千万×100=49亿
1×49亿÷(2327×300)=7019
媒体传言的故事似乎都接近完美地对得上。
8.18号下午的正式公告出来,真实情况和我们用传言拼成的马赛克图案有两个重要不同。 其一:不是人工把“股”输成“手”从而放大100倍,而是系统出问题发神经,连续自动生成并执行买单;其二:真实成交70亿,当天申购ETF基金并卖出了19亿,不是成交并持有50亿。虽然对动态的过程有出入,但静态的结果是对的:最后股票持仓约50亿,并用约7000个IF1309空头合约作了对冲。
如果没有正式公告中说系统发神经连续自动生成买单,我更倾向于相信“股”误输入成“手”的说法。因为一个系统转移到生产环境中时,往往会用小额做个测试,这时的风控限额往往还没有设置,容易出事。并且中国市场里的“股”“手”“张”的单位,往往容易把人搞乱。从事故发生的合理性和可能性上,这都比后来正式披露的情况更容易理解。经过反复UAT测试的系统在真实的交易环境中突然发疯,连续生成买单并下单,太戏剧化了,这超出正常想象,是个“红天鹅”!