量化交易中文教材

第 36 章 衍生品事故及其教训

前面 35 章讲的都是"怎样给衍生品定价、怎样对冲"。本章讲的是另一件同样重要的事:衍生品是怎样让机构亏掉几十亿美元的,以及怎样避免。

1980 年代中期以来,衍生品市场出现过一些惊人的亏损。最大的一批来自基于美国住房抵押贷款的产品(第 8 章)。但更值得注意的是,大量巨亏源于单个员工:

  • 1995 年,Nick Leeson 使有 200 年历史的英国巴林银行(Barings)倒闭;
  • 1994 年,Robert Citron 的交易使加州橙县(Orange County)亏损约 20 亿美元;
  • Joseph Jett 使 Kidder Peabody 亏损 3.5 亿美元;
  • 2002 年曝光,John Rusnak 使爱尔兰联合银行(Allied Irish Bank)亏损 7 亿美元;
  • 2006 年,Brian Hunter 使对冲基金 Amaranth 亏损 60 亿美元;
  • 2008 年,Jérôme Kerviel 交易股指期货使法国兴业银行(Société Générale)亏损超过 70 亿美元;
  • UBS、Shell、住友(Sumitomo)的巨亏也各由一人造成。

原书强调,这些损失不应被看作对整个衍生品行业的控诉:衍生品市场规模达数十万亿美元,总体非常成功,这些事件只占交易总量(无论数量还是价值)的极小部分。但它们的教训值得认真总结。

对量化交易者来说,这一章或许是全书最"实用"的一章。量化策略的失败很少是因为不会推导公式,而几乎总是因为本章列出的某一条:风险限额形同虚设、把运气当能力、回测或估值系统有 bug、低估流动性、和所有人挤在同一个交易里、用短钱做长事。本章在讲完原书的全部教训之后,会逐条把它们翻译成量化系统中的具体控制机制,并用模拟展示其中几条。

学习目标

  1. 了解原书列出的金融机构与非金融企业的重大衍生品亏损案例,归纳它们的共同模式。
  2. 掌握对所有衍生品用户适用的五条教训:设定风险限额、认真执行限额、不要以为能战胜市场、重视分散化、做情景分析与压力测试。
  3. 掌握对金融机构的十二条教训,尤其是前中后台分离、不盲信模型、保守确认初始利润、流动性风险、拥挤交易和短期融资风险。
  4. 掌握对非金融企业的三条教训:只做理解且能自行估值的交易、防止对冲者变成投机者、谨慎把财务部门变成利润中心。
  5. 能把这些教训翻译成量化交易系统中的风控规则、回测检验和组织安排,并用模拟量化"运气 vs 能力""亏损加仓""杠杆 + 流动性冲击"等问题。

读前导读

这一章在解决什么问题。 这是全书数学最少的一章,但对从业者可能最有用。它回答的问题是:既然定价和对冲的理论都已经成熟,为什么还会有机构因为衍生品亏掉几十亿美元?答案几乎都不在公式里,而在组织、激励、流动性和人。

对 CPA/CFA 读者来说,本章的大部分内容会让你联想到熟悉的框架:CPA 审计和内部控制中的职责分离、COSO 内控要素;CFA 道德与职业准则中的**适当性(suitability)**和对客户的忠诚义务;CFA 风险管理中的 VaR 局限、压力测试和流动性风险;IFRS 13/IFRS 9 中第三层次公允价值与"首日利得"的处理。本章的价值在于把这些分散的知识用真实案例串起来,并在量化实战部分翻译成可以写进代码的风控规则。

需要先想起来的数学。 本章只用到三样很基础的工具:

  • 独立事件与补事件。 "至少一人发生"的概率 \(=1-\)"一个都不发生"的概率;若 \(n\) 个人相互独立、每人发生的概率为 \(p\),则为 \(1-(1-p)^n\)。例:\(p=1/16\)、\(n=16\),结果约 0.644。这也是多重检验问题的根源:试的次数越多,纯靠运气"显著"的结果越多。见 第 00 册第 07 章 概率中的分析工具。
  • 组合方差。 CFA 一级的 \(\sigma_p^2=\sum_i\sum_jw_iw_j\sigma_i\sigma_j\rho_{ij}\)。本章的分散化公式就是它在"等权、等波动、等相关"下的化简。矩阵写法见 第 00 册第 06 章 线性代数速成 中的协方差矩阵部分。
  • 杠杆的算术。 杠杆倍数 \(L\) = 总头寸 / 自有资本。资产价格下跌 \(x\),资本损失 \(Lx\);当 \(x=1/L\) 时资本归零。25 倍杠杆下,资产只要跌 4% 就足以亏光资本。

怎么读这一章。 36.1 节的两张表可以速读,重点读"共同模式"六条,它们是全章的骨架。36.2 节五条教训每条都必读,其中"不要以为能战胜市场"和"分散化"两段有简单计算,建议亲手算一遍。36.3 节的十二条教训中,"不盲信模型""保守确认初始利润""流动性风险""所有人采用同一策略""短期融资"五条与量化工作最相关。36.4 节较短,可与第 33 章宝洁案例对照阅读。量化实战的对照表值得作为团队风控清单收藏。


36.1 事故全景

金融机构的大额亏损

原书 Business Snapshot 36.1 汇总如下:

机构 时间 亏损 经过
爱尔兰联合银行 2002 年曝光 约 7 亿美元 外汇交易员 John Rusnak 多年投机,用虚构的期权交易掩盖亏损
Amaranth 2006 60 亿美元 押注天然气价格方向
巴林银行 1995 近 10 亿美元,银行倒闭 新加坡交易员 Nick Leeson 用期货和期权大赌日经 225 指数方向
安然的交易对手 2000 年代初 超过 10 亿美元(和解金) 安然用"创造性"合约向股东隐瞒真实状况,被指协助的金融机构为和解股东诉讼付款
Kidder Peabody 1990 年代 3.5 亿美元 交易员 Joseph Jett 交易美国政府债券;起因是公司计算机系统计算利润的方式有错误
长期资本管理公司(LTCM) 1998 约 40 亿美元 俄罗斯债务违约及随之而来的"安全投资转移";纽约联储组织 14 家银行注资,有序清算
米特兰银行(Midland Bank) 1990 年代初 5 亿美元 主要因押错利率方向,后被汇丰收购
法国兴业银行 2008 年 1 月 超过 70 亿美元 Jérôme Kerviel 投机股指方向
次贷损失 2007 起 数百亿美元 投资者对美国次贷结构化产品失去信心,引发"信贷紧缩",UBS、美林、花旗等巨亏
UBS 2011 23 亿美元 Kweku Adoboli 未经授权投机股指

非金融机构的大额亏损

原书 Business Snapshot 36.2:

机构 时间 亏损 经过
Allied Lyons 1991 1.5 亿美元 食品饮料公司财务部卖出美元/英镑汇率看涨期权
Gibson Greetings 1994 约 2,000 万美元 贺卡制造商财务部与信孚银行交易高度奇异的利率衍生品,后起诉并庭外和解
Hammersmith and Fulham 1988 约 6 亿美元 英国地方政府在英镑利率互换和期权上亏损,合约后被英国法院判为无效,令对手银行十分不满
Metallgesellschaft 1990 年代初 13 亿美元 德国公司签订长期石油和汽油供应合约,用滚动的短期期货对冲,被迫终止时亏损
橙县 1994 约 20 亿美元 财务主管 Robert Citron 用衍生品投机利率不会上升
宝洁(P&G) 1994 约 9,000 万美元 财务部与信孚银行交易高度奇异的利率衍生品(5/30 互换,见第 33.7 节),后起诉并庭外和解
Shell 1990 年代 10 亿美元 日本子公司一名员工未经授权交易货币期货
住友 1990 年代 约 20 亿美元 一名交易员在铜的现货、期货、期权市场亏损

共同模式

把这些案例放在一起看,可以归纳出几种反复出现的模式:

  1. 授权漂移:被授权做对冲或低风险套利的人,变成了对市场方向下重注的投机者(巴林、兴业、UBS、Shell、橙县)。
  2. 控制失效:一个人同时控制交易和记录,或者系统不能完整显示头寸(巴林、兴业、爱尔兰联合银行)。
  3. 系统和模型错误:利润是算错的,或者估值模型与市场不同(Kidder Peabody)。
  4. 看不懂的复杂产品:买方无法独立估值,只能听卖方报价(P&G、Gibson Greetings、Hammersmith and Fulham)。
  5. 杠杆 + 流动性 + 拥挤:理论上正确的交易,在流动性枯竭、所有人同时平仓时变成灾难(LTCM、次贷)。
  6. 期限错配与融资风险:长期承诺用短期工具对冲或融资,中途被迫终止(Metallgesellschaft,以及危机中的雷曼、北岩)。

金融直觉:Metallgesellschaft(MG)的问题值得多说几句,因为它的对冲在经济上"大致正确",却仍然出事。MG 卖给客户长达 10 年的固定价格供油合约(相当于 MG 空头长期远期),再用近月期货滚动做多来对冲(stack-and-roll)。油价下跌时,长期合约在经济上是赚钱的,但这些利润要到未来几年交货时才实现;近月期货的亏损却要每天以保证金现金支付。于是出现了巨大的现金流错配:账面上对冲有效,现金上却要立刻垫付数亿美元保证金。再加上油价当时处于 contango,每次展期都要"高买低卖"地付出展期成本。最终母公司在资金压力下平仓,把未实现的远期利润和已实现的期货亏损割裂开来。教训是:对冲不仅要看价值是否抵消,还要看现金流时点是否匹配,这正是第 3 章"基差风险"和本章"短期融资满足长期需求"的结合。

下面三节按原书的顺序,把教训分为对所有用户、对金融机构、对非金融企业三类。


36.2 对所有衍生品用户的教训

设定风险限额

所有公司都应当清晰、明确地规定可以承担的金融风险限额,并建立确保遵守的程序。理想情况下,由董事会设定总体限额,再逐级分解到负责具体风险的个人。每日报告应当显示市场变量发生特定变动时的损益,并与实际损益核对,以确保报告背后的估值程序是准确的。

使用衍生品时尤其要密切监控。第 1 章讲过,衍生品可以用于对冲、投机和套利。没有密切监控,就无法知道交易员是否已经从对冲者或套利者变成了投机者。巴林、兴业、UBS 都是经典例子:交易员的授权是低风险的套利或对冲,却在主管不知情时变成了对市场方向的巨额押注,而银行的系统不足以掌握其全部头寸。

要点不是"不能承担风险"。交易员或基金经理可以对相关市场变量的方向建仓,但规模应当受到限制,系统应当准确报告风险。

认真对待风险限额

如果交易员超过了限额,但赚了钱,怎么办?管理层倾向于对盈利的超限视而不见。这很短视:它会形成一种不重视限额的文化,为灾难铺路。在一些案例中,公司正是因为以前承担同类风险赚过钱而变得自满。

经典例子是橙县。Robert Citron 在 1991–1993 年的交易非常赚钱,县政府开始依赖他的交易收入来支持预算,于是忽视了其中的风险。结果 1994 年的亏损远远超过此前的全部利润。

原书的原则很明确:超限无论盈亏,惩罚都应相同。否则,亏损的交易员会不断加注,指望最终盈利后一切都被原谅。

不要以为能战胜市场

交易员的能力或许有高低,但没有人永远正确。方向判断能做到 60% 正确就已经很好。业绩出众的交易员(如 1990 年代初的 Citron)多半是运气好,而不是技能高。

原书的例子:某机构雇用 16 名交易员,其中一人一年四个季度全部盈利。该给他高奖金吗?该提高他的限额吗?

奖金几乎必然会给。但限额不应提高。理由是:如果交易完全随机,一个人连续四个季度盈利的概率是 \(0.5^4=1/16\)。16 个人里,靠运气平均就会有一个人每个季度都"做对"。至少有一人连续四季盈利的概率是

\[1-\left(1-\frac{1}{16}\right)^{16}=0.644\]

所以看到"有一个人四季全胜"这件事本身,几乎不提供任何关于技能的信息。不应假设好运会持续。

推导拆解:0.644 的算法分三步。(1) 单个无技能交易员每季盈亏各半,四季独立,四季全胜的概率 \(=0.5^4=1/16\)。(2) 某个交易员没有四季全胜的概率 \(=1-1/16=15/16\);16 人相互独立,全都没有四季全胜的概率 \(=(15/16)^{16}\approx0.356\)。(3) 至少一人四季全胜的概率 \(=1-0.356=0.644\)。

金融直觉:这和 CFA 里讲的"数据挖掘偏差(data-mining bias)"是一回事。如果你测试 100 个毫无预测力的策略,按 5% 显著性水平,平均会有 5 个"显著"。对量化团队来说,16 名交易员就是 16 个策略,选出"表现最好的那一个"再看它的 t 统计量,p 值已经失真。正确做法是像量化实战表格中说的那样,记录所有尝试过的策略数量,并做多重检验校正(如 Bonferroni 把显著性水平除以测试次数)。

不要低估分散化的好处

即使确信某个交易员有特殊才能,为了利用他的才能,愿意放弃多少分散化?分散化的好处是巨大的,重押单一市场变量未必是最优策略。

例:20 只股票,每只期望收益 10%,收益标准差 30%,两两相关系数 0.2。等权投资时,组合期望收益仍为 10%,标准差为

\[\sigma_p=30\%\times\sqrt{\frac{1}{20}+\frac{19}{20}\times0.2}=14.7\%\]

风险降低一半以上,即单位风险的期望收益翻了一倍。一般地,\(n\) 只等权、等波动 \(\sigma\)、等相关 \(\rho\) 的资产组合的波动率为

\[\sigma_p=\sigma\sqrt{\frac1n+\left(1-\frac1n\right)\rho}\]

\(n\to\infty\) 时趋于 \(\sigma\sqrt\rho\),这是分散化的极限,由共同因子决定。投资者必须非常擅长选股,才能持续地通过只买一只股票获得更好的风险–收益权衡。

推导拆解:从 CFA 的组合方差公式出发。等权重 \(w=1/n\),组合方差有 \(n\) 个方差项和 \(n(n-1)\) 个协方差项: \(\sigma_p^2=n\cdot\frac{1}{n^2}\sigma^2+n(n-1)\cdot\frac{1}{n^2}\rho\sigma^2=\sigma^2\left[\frac1n+\left(1-\frac1n\right)\rho\right]\)。 开方即得原文公式。代入 \(n=20\)、\(\rho=0.2\):括号内 \(=0.05+0.95\times0.2=0.24\),\(\sqrt{0.24}=0.490\),\(30\%\times0.490=14.7\%\)。\(n\to\infty\) 时 \(1/n\to0\)(\(\to\) 读作"趋于"),只剩 \(\rho\sigma^2\),即无法分散的系统性部分。本例中极限为 \(30\%\times\sqrt{0.2}=13.4\%\),20 只股票已经拿到了绝大部分分散化收益。

做情景分析和压力测试

VaR 等风险度量应当始终配合情景分析和压力测试(第 22 章),以理解可能出什么问题。人类倾向于"锚定"在一两个情景上:1993–1994 年,P&G 和 Gibson Greetings 可能确信利率会保持低位,决策时忽略了利率上升 100bp 的可能性。

情景生成要有创意,并借助有经验的管理者的判断。方法之一是看 10 年或 20 年的数据,选最极端的事件作为情景。关键变量的数据不足时,可以用数据更多的相似变量的历史日百分比变化作代理。例如某国债券的数据很少,可以用相似国家债券的历史数据构造情景。


36.3 对金融机构的教训

密切监控交易员

交易室倾向于把业绩优异的交易员视为"不可触碰",不对他们做同等的审查。据报道,Kidder Peabody 的明星国债交易员 Joseph Jett 常常"太忙"而不回答风险经理关于头寸的问题。所有交易员——尤其是利润高的——都应当完全问责。要弄清高利润是否来自过高的风险,也要检查计算机系统和定价模型是否正确、是否被操纵。

前台、中台、后台分离

  • 前台:执行交易、建立头寸的交易员;
  • 中台:监控风险的风险经理;
  • 后台:负责记录和会计。

一些最严重的灾难正是因为这些职能没有分离。Nick Leeson 同时控制巴林新加坡分支的前台和后台,因此能长期向伦敦的上级隐瞒亏损。Jérôme Kerviel 在成为交易员之前在兴业银行后台工作过,他利用对系统的了解隐藏头寸。

不要盲目信任模型

部分巨亏源于模型和计算机系统。例如 Kidder Peabody 被自己的系统误导:系统计算利润的方式有错误,交易员 Jett 的"利润"其实并不存在。

原书给出两条非常有用的经验法则:

  • 若一个简单策略报告出大额利润,很可能利润计算背后的模型有错。
  • 若机构在某类交易的报价上显得特别有竞争力,很可能它用的模型与其他市场参与者不同,应当仔细分析。 对交易室负责人来说,某类业务做得太多与做得太少同样值得担心。

第二条是"赢家的诅咒":如果你在某类产品上总是成交,说明你的价格总是对客户最有利,也就是你的模型总在同一个方向上偏离市场。

保守确认初始利润

向非金融企业出售高度奇异的工具时,估值高度依赖模型(例如长期内嵌利率期权的产品高度依赖利率模型)。这时每日盯市称为按模型估值(marking to model),因为没有可以作为基准的类似交易的市价。

若机构以比(模型)价值高 1,000 万美元的价格卖给客户,这 1,000 万美元就是初始利润(inception profit)。各机构的做法不同:有的立即确认,有的在交易期内慢慢确认。立即确认很危险:它鼓励交易员使用激进的模型、拿到奖金、在模型和交易价值受到仔细审视之前离职。慢慢确认更好,它使交易员有动力在交易前考察多种模型和假设的影响。

金融直觉:CPA 读者对这个问题应该不陌生。IFRS 9(及此前的 IAS 39)对"首日利得(day-one gain)"有明确限制:若金融工具的公允价值主要依赖不可观察输入(IFRS 13 的第三层次),交易价格与模型价值之间的差额不得在首日确认,而要递延,随着输入变得可观察或在存续期内按合理方式确认。美国 GAAP 也有类似要求。会计准则的这条规定,本质上就是本节教训的制度化:模型价值不可验证时,不能把它当成已经赚到的钱。

不要向客户销售不合适的产品

这是短视的做法。最典型的是 1994 年春之前信孚银行(Bankers Trust,BT)的行为:许多客户被说服购买高风险、完全不合适的产品,典型的就是第 33 章的 5/30 互换——大概率省下几个基点,小概率损失巨大。这类产品在 1992–1993 年表现良好,1994 年利率急升时爆雷。随后的负面宣传重创了 BT:多年建立的企业客户信任和衍生品创新声誉,因为少数过度激进的销售人员而大部分丧失;BT 被迫支付巨额庭外和解金,1999 年被德意志银行收购。

警惕容易赚的钱

安然的例子说明,过度激进的交易撮合可以让银行损失数十亿美元。和安然做生意看起来很赚钱,银行争相竞争,但"大家都在抢"并不意味着最终会盈利,安然业务带来的股东诉讼代价高昂。

一般而言,看起来容易获得高利润的交易,要仔细检查其中隐藏的风险。次贷 ABS CDO 的 AAA 档看似是绝佳机会:承诺的收益远高于通常的 AAA 工具。但很多投资者没有追问:额外的收益是否反映了评级机构没有考虑的风险?

不要忽视流动性风险

金融工程师常用活跃交易工具的价格为不活跃工具定价,例如:

  1. 用活跃的政府债(新券,on-the-run)计算零息曲线,为交易较少的旧券(off-the-run)定价;
  2. 用活跃期权的隐含波动率为不活跃期权定价;
  3. 从活跃的利率上限和互换期权中隐含出利率行为的信息,为不活跃的非标准利率衍生品定价。

这些做法不无道理。但假设不活跃的工具总能以接近理论价的价格成交,是危险的。市场受冲击时常出现**"安全投资转移"(flight to quality)**,流动性变得非常重要,非流动工具往往只能以远低于理论价的价格出售。2007–2009 年次贷冲击后就是如此。

LTCM(原书 Business Snapshot 2.2)。LTCM 采用收敛套利(convergence arbitrage):找出两种理论上应该同价的证券(或组合),买入便宜的、卖出贵的,等待价格最终收敛。1998 年夏,俄罗斯违约引发安全投资转移。LTCM 通常做多非流动工具、做空对应的流动工具(例如多旧券、空新券),这两者的价差在违约后急剧扩大。LTCM 的杠杆很高,出现巨亏,难以满足追加保证金的要求。

金融直觉:收敛套利"理论上正确"为什么还会死?因为"最终收敛"和"中途不爆仓"是两回事。新旧国债的收益率价差可能只有几个基点,要赚到像样的回报必须加很高的杠杆。LTCM 资产负债表杠杆约 25 倍,资产端只要不利变动 4%,资本就会亏光。价差扩大时,盯市亏损要立即追加保证金,而此时正是流动性最差、所有人都想卖旧券的时候。所以这类策略的真实风险不是"价差最终不收敛",而是"价差在收敛之前先扩大到让你撑不住"。这与 Keynes 的名言一致:市场保持非理性的时间,可以比你保持偿付能力的时间更长。

教训:要做情景分析和压力测试,考察最坏的情况。LTCM 本可以考察历史上极端的安全投资转移时期,量化自己的流动性风险。

警惕所有人采用同一策略

当很多市场参与者采用同一策略时,会造成大幅波动、市场不稳定和参与者的巨额亏损。原书给出三个例子。

1987 年 10 月股灾与组合保险(第 19a 章)。股灾前,越来越多的组合经理通过合成看跌期权为组合"保险":市场上涨后买入股票或股指期货,下跌后卖出。这造成了不稳定:小幅下跌引发组合保险者的抛售,抛售导致进一步下跌,又引发新一轮抛售……没有组合保险,那次股灾会轻得多。

推导拆解:为什么合成看跌期权的对冲方向是"跌了就卖"?组合保险 = 股票组合 + 看跌期权,合起来的 delta \(=1+\Delta_{put}\)。看跌期权的 delta 在 \(-1\) 到 0 之间,价格下跌时它向 \(-1\) 靠近(变得更实值),组合的整体 delta 随之下降。用股票和现金合成这份保险时,就必须让持股比例跟着 delta 走,于是价格越跌、持股越少,需要卖出。这正是第 19b 章讲的 gamma 效应:用标的资产复制一份多头期权(即制造多头 gamma 头寸)的人,要做"追涨杀跌"的动态交易;卖出期权后做 delta 对冲的交易商也一样。少数人这样做无妨,人人都这样做,卖出本身就会进一步压低价格,形成正反馈。

1998 年的 LTCM。许多对冲基金采用了类似的收敛套利策略。俄罗斯违约后,LTCM 为满足保证金要求必须平掉部分头寸,其他基金面临同样的问题、做同样的交易,使流动性价差扩大得更多,安全投资转移更剧烈。以美国国债头寸为例:多旧券、空新券,价差扩大时要卖旧券、买新券平仓;其他大基金也在这样做,使新券相对旧券的价格进一步上升,收益率价差进一步扩大。

1990 年代末的英国保险公司。大量保险合约承诺:年金适用的利率取市场利率与保证利率中较高的一个。长期利率跌破保证利率时,保险公司亏损。它们几乎同时用衍生品对冲了部分风险。作为对手的金融机构通过买入大量长期英镑债券来对冲,这推高了债券价格、压低了英镑长期利率;为了维持动态对冲,它们又要买更多债券,利率进一步下降……结果金融机构亏损,保险公司在未对冲部分上的处境也更糟。

关键教训:许多参与者采用同一策略时,可能存在巨大的风险。动态对冲和止损在单个机构层面降低风险,在全市场层面却可能放大风险。

不要过度用短期融资满足长期需求

所有金融机构都在一定程度上"借短投长",但过度依赖短期资金会带来不可接受的流动性风险。例如:每月滚动发行商业票据(CP)为长期需求融资(4 月 1 日发行的 CP 用 5 月 1 日新发的 CP 偿还,依此类推)。机构被视为健康时没有问题;一旦投资者失去信心(无论对错),就无法滚动,机构立刻陷入严重的流动性困境。

危机中许多机构的倒闭(如雷曼兄弟、北岩银行)主要源于过度依赖短期融资。巴塞尔委员会因此引入了银行必须满足的流动性比率。

市场透明很重要

2007 年之前,投资者交易高度结构化的产品,却对底层资产没有真正的了解,只知道证券的信用评级。事后看,投资者应当要求更多底层资产的信息并更仔细地评估风险——但事后聪明容易。2007 年 8 月次贷崩溃,投资者对所有结构化产品失去信心并撤出,市场崩溃,各档证券只能以远低于理论价的价格出售,安全投资转移、信用利差扩大。如果市场透明、投资者了解所买的 ABS,次贷损失仍然会发生,但安全投资转移和市场混乱会轻一些。

管理激励

这是 2007–2008 年危机的关键教训。银行的奖金制度偏重短期业绩。一些机构改为基于更长窗口(如 5 年)的业绩发放奖金,这可以抑制"短期好看、几年后爆雷"的交易。贷款证券化时,要使发起方与最终承担风险的一方利益一致,避免发起方虚报贷款质量;方法之一是监管要求发起方在由贷款组合创建的所有分档及其他工具中都保留一部分(风险自留)。

永远不要忽视风险管理

形势好(或看起来好)的时候,人们倾向于认为不会出错,从而忽视风险管理部门的压力测试等结果。危机前有很多风险经理不被倾听的故事。花旗集团 CEO Chuck Prince 在 2007 年 7 月(危机前夕)的一段话,是错误态度的典型:

"当音乐停止时,就流动性而言,事情会变得复杂。但只要音乐还在播放,你就得起身跳舞。我们还在跳。"

他在当年晚些时候去职,花旗在危机中的损失超过 500 亿美元。


36.4 对非金融企业的教训

确保完全理解所做的交易

企业永远不应当做自己不完全理解的交易或策略。很多非金融企业的交易员在巨亏后承认不知道发生了什么,声称被投行误导,例如橙县的 Citron。Hammersmith and Fulham 的交易员持有巨大的头寸,却出奇地不了解互换和其他利率衍生品是怎样运作的。

如果高级经理不理解下属提议的交易,就不应批准。一个简单的经验法则:如果一笔交易及其理由复杂到经理无法理解,它几乎肯定不适合公司。按这个标准,P&G 和 Gibson Greetings 的交易都会被否决。

确保理解一个金融工具的方法之一是自己给它估值:企业若没有内部估值能力,就不应交易该工具。实践中企业常依赖交易商提供估值建议,这很危险:P&G 和 Gibson Greetings 想平仓时,面对的是信孚银行专有模型给出的价格,无法核查。

确保对冲者不变成投机者

对冲是枯燥的,投机是刺激的。公司雇用交易员管理汇率、商品价格或利率风险时,可能出现这样的演变:

  1. 起初交易员勤勉地对冲,赢得高层信任;
  2. 随后自信能战胜市场,逐渐变成投机者;
  3. 起初很顺利,然后出现亏损;
  4. 为了挽回亏损而加倍下注;
  5. 继续亏损……

白话解释:第 4 步"加倍下注"之所以危险,是因为它把风险结构从"有界"改成了"尾部极厚"。每次亏损后加倍,只要最终有一次赚回就能回本,所以大多数时候结果看起来不错;但连续亏损若干次后头寸呈几何级数增长(\(1,2,4,8,\ldots\),第 \(k\) 次为 \(2^{k-1}\)),一旦资金或保证金跟不上,就会在规模最大的时候被迫止损。这和赌场里的"倍投法"一样:它不改变期望,只是用"高概率小赢"换来"低概率爆仓"。巴林的 Leeson 正是在日经指数下跌后不断加仓。量化实战第 3 部分的模拟比较了固定头寸、亏损加仓和硬性止损三种规则的损益分布。

结果很可能是灾难。应当由高层设定清晰的风险限额,并有控制确保遵守。企业的交易策略应当始于对汇率、利率、商品市场等风险敞口的分析,再决定如何把风险降到可以接受的水平。如果一个交易策略不是非常直接地源自公司的敞口,就说明有问题。

谨慎把财务部门变成利润中心

过去 20 年有一种趋势:把企业的财务部门变为利润中心。这看起来有好处,可以激励财务主管降低融资成本、盈利地管理风险。问题是财务主管的盈利潜力有限:筹资和投资盈余现金时面对的是有效市场,通常只能靠承担额外风险来改善利润。对冲计划给了一些做出精明决策的空间,但对冲的目标是降低风险,而不是提高期望利润。第 3 章说过,大约 50% 的情况下,对冲的结果会比不对冲差。把财务部门变成利润中心的危险在于激励财务主管去投机,导致橙县、P&G、Gibson Greetings 那样的结果。

白话解释:"50% 的情况下对冲结果更差"并不说明对冲失败。对冲把损益分布压窄,而不是把它右移:价格朝有利方向走时,对冲让你少赚;朝不利方向走时,对冲让你少亏。如果价格涨跌概率大致相同,事后看就有一半时间"早知道不对冲更好"。用这种事后比较来考核财务部门,会系统性地奖励不对冲(即投机)。评价对冲应看的是风险是否降到了目标水平,比如现金流或利润的波动是否下降,而不是对冲头寸本身是否盈利。


36.5 小结

衍生品巨亏使许多财务主管变得非常谨慎,一些非金融企业宣布减少甚至停止使用衍生品。这很可惜,因为衍生品是非常高效的风险管理工具。这些故事印证了第 1 章的观点:衍生品既可以对冲也可以投机,既可以降低风险也可以承担风险。多数损失源于不当使用:被(明示或默示)授权对冲公司风险的员工,转而去投机。

核心教训是内部控制的重要性。高层应当发布清晰、明确的衍生品使用政策,规定员工可以在多大程度上对市场变量建仓,并建立控制确保执行。不密切监控风险就授权个人交易衍生品,是灾难的配方。

原书的延伸阅读:Dunbar 关于 LTCM 的著作;Jorion 关于 LTCM 和橙县的研究;Persaud 关于流动性黑洞的文集;Sorkin《大而不倒》;Tett《愚人的黄金》。本章原书无习题。


量化实战

从教训到量化系统的控制机制

下表把原书的每条教训翻译成量化交易团队中可以落地的机制。左列是原书的教训,右列是本书给出的对应做法。

原书教训 在量化交易中的对应机制
设定风险限额,逐级分解 组合、策略、单品种三级的敞口、杠杆、VaR/ES、因子暴露、换手率限额;限额写入交易系统,下单前自动检查
每日损益与风险报告核对 每日损益归因(因子、品种、执行成本、残差);"解释不了的损益"超阈值即报警,往往是数据或代码 bug
超限无论盈亏同罚 硬性风控:超限自动减仓或停止新开仓,盈利超限同样触发;人工豁免需中台审批并留痕
不要以为能战胜市场 策略评估做多重检验校正(如 Bonferroni、Deflated Sharpe Ratio),记录全部试过的参数组合;资金分配看样本外,而不是样本内最优
重视分散化 策略间、因子间的相关性监控;风险预算按边际风险贡献分配,而不是押注"最好的"单一策略
情景分析与压力测试 历史极端情景回放(1987、1998、2008、2020 等)与假设情景;对每个策略报告"最坏情景损失 / 资本"
前中后台分离 研究、交易、风控、清算对账使用独立的系统和权限;策略开发者不能修改风控参数和成交记录;生产代码上线需他人复核
不盲信模型 "简单策略报告巨额利润,先查 bug":前视偏差、幸存者偏差、成交价假设、复权和时区错误;回测与实盘的逐笔对账
竞争力异常的报价 做市/报价策略监控成交率与逆向选择:成交过多说明价格偏离市场
保守确认初始利润 策略的业绩提成、上线奖励基于样本外的长期实盘表现,分期兑现
不卖不合适的产品 面向客户的量化产品做压力情景披露,不以"大概率小赚"包装尾部风险
警惕容易赚的钱 夏普异常高、回撤异常小的策略,先找隐藏的尾部风险(卖期权、流动性溢价、拥挤)
流动性风险 按品种成交量限制持仓(如不超过日均成交量的一定比例);压力测试中加入冲击成本随头寸放大的假设
所有人采用同一策略 监控因子拥挤度(相似策略的持仓重叠、估值价差、做空比例);降低对常见因子的杠杆
短期融资满足长期需求 杠杆策略匹配融资期限;保证金占用压力测试;保留足够的流动性缓冲,避免在最差时点被迫平仓
管理激励 长窗口考核、递延奖金、回撤追回
不要忽视风险管理 风控负责人直接向最高层汇报,有独立的否决权

原书之外的几个补充案例

以下三个案例发生在量化或量化相关的领域,与原书的教训一一对应,供读者延伸阅读(本节为本书补充,不在原书中):

  • 2007 年 8 月的"量化地震"(quant quake):2007 年 8 月上旬,许多股票市场中性量化基金在几天内遭受罕见的大幅亏损。Khandani 和 Lo (2007) 的分析认为,原因是大量基金持有相似的因子组合,部分基金被迫去杠杆,引发了相似持仓的连锁平仓。这正是"所有人采用同一策略"与"流动性风险"的量化版本。
  • 2012 年 Knight Capital:一次交易软件部署失误,使旧代码在生产环境中被意外激活,约 45 分钟内产生大量错误订单,亏损约 4.4 亿美元,公司随后被收购。它对应"不盲信系统"和"前中后台分离":自动化系统需要上线流程控制、实时异常监控和一键熔断。
  • 2021 年 Archegos:家族办公室通过多家券商的总收益互换(第 33 章的股权互换)持有高度集中、高杠杆的股票头寸,股价下跌后无法追加保证金,多家券商强行平仓并蒙受巨额亏损。它对应"集中度""杠杆""透明度"三条教训:每家券商只看到自己那一部分头寸,没有人看到全貌。

Python 示例:用模拟量化五条教训

下面的程序分五部分:

  1. 分散化公式:不同股票数和相关系数下的组合波动率;
  2. 运气还是能力:16 名无技能交易员中有人连续 4 季盈利的概率;100 个无效策略中样本内最好的夏普比率;
  3. "对冲者变投机者":无技能交易员分别采用固定头寸、亏损加仓、硬性止损三种规则一年后的损益分布;
  4. "简单策略报告巨额利润,模型多半有错":在纯随机游走上演示前视偏差;
  5. LTCM 式的收敛套利:杠杆、安全投资转移的跳跃和被迫清盘的冲击成本。
import numpy as np
import pandas as pd
rng = np.random.default_rng(2024)

# ---------- 1. 分散化:sigma_p = sigma*sqrt(1/n + (1-1/n)*rho) ----------
sig = 0.30
tab = pd.DataFrame({f"rho={r}": [sig*np.sqrt(1/n + (1-1/n)*r) for n in [1, 5, 20, 100]]
                    for r in [0.0, 0.2, 0.5]}, index=[1, 5, 20, 100])
tab.index.name = "股票数"
print("等权组合波动率:\n", (100*tab).round(1))

# ---------- 2. 运气还是能力:16 名无技能交易员 ----------
N, k, sims = 16, 4, 200_000
wins = rng.random((sims, N, k)) < 0.5                 # 每季度盈利概率 50%
all4 = wins.all(axis=2)
print(f"\n单人连续 {k} 季盈利概率: 理论 {0.5**k:.4f},模拟 {all4.mean():.4f}")
print(f"{N} 人中至少一人连续 {k} 季盈利: 理论 {1-(1-0.5**k)**N:.3f},模拟 {all4.any(axis=1).mean():.3f}")
# 同样的问题出现在策略筛选:100 个零真实收益的策略,样本内最好的夏普比率
T_days, n_strat = 252*3, 100
rets = rng.normal(0, 0.01, (n_strat, T_days))
sr = rets.mean(axis=1)/rets.std(axis=1)*np.sqrt(252)
best = sr.argmax()
oos = rng.normal(0, 0.01, T_days)                     # 样本外:真实收益仍为 0
print(f"100 个无效策略: 样本内最佳年化夏普 {sr[best]:.2f},样本外 {oos.mean()/oos.std()*np.sqrt(252):.2f}")

# ---------- 3. 对冲者变投机者:亏损后加仓 vs 硬性止损限额 ----------
def trader(policy, n_days=250, paths=20_000, loss_limit=20.0):
    pnl = np.zeros(paths); pos = np.ones(paths); worst = np.zeros(paths)
    for _ in range(n_days):
        r = rng.normal(0, 0.01, paths)                # 无技能:期望收益为 0
        pnl += pos*r*100                              # 单位:基准头寸 1 天 1 个标准差的损益
        worst = np.minimum(worst, pnl)
        if policy == "亏损加仓":                       # 亏了就放大头寸,盼望翻本
            pos = np.where(pnl < 0, np.minimum(pos*1.5, 64.0), 1.0)
        elif policy == "硬性止损":                     # 累计亏损超限即清仓,当年不再交易
            pos = np.where(pnl < -loss_limit, 0.0, pos)
    return pnl, worst
print("\n一年后损益分布(单位:基准头寸 1 天 1 个标准差的损益)")
for pol in ["固定头寸", "亏损加仓", "硬性止损"]:
    pnl, worst = trader(pol)
    print(f"  {pol}: 均值 {pnl.mean():6.2f}  盈利概率 {np.mean(pnl>0):.2f}  "
          f"1% 分位 {np.percentile(pnl,1):8.1f}  最差路径 {worst.min():8.1f}")

# ---------- 4. "简单策略报告巨额利润,模型多半有错":前视偏差 ----------
price = 100*np.exp(np.cumsum(rng.normal(0, 0.01, 2000)))     # 纯随机游走,无可预测性
r = pd.Series(price).pct_change()
signal = np.sign(r)                                          # 今日收益的符号
buggy = (signal*r).dropna()                                  # 错误:用今天的信号赚今天的收益
correct = (signal.shift(1)*r).dropna()                       # 正确:信号只能用于下一期
for name, x in [("含前视偏差", buggy), ("正确实现", correct)]:
    print(f"\n{name}: 年化夏普 {x.mean()/x.std()*np.sqrt(252):6.2f}", end="")
print()

# ---------- 5. 收敛套利 + 杠杆 + 流动性冲击(LTCM 式) ----------
def convergence(lev, paths=20_000, days=500, D=5.0, shock_p=1/1000, fire=10.0):
    """多旧券空新券:价差(bp)以半衰期约 70 天回归 0;偶发'安全投资转移'使价差跳升。
    名义头寸 = lev × 资本,久期 D;权益跌破初始资本的 30% 时被迫清盘,
    清盘时额外承受 fire*lev/25 bp 的冲击成本(头寸越大、越拥挤,甩卖越贵)。"""
    spread = np.full(paths, 20.0); equity = np.ones(paths); alive = np.ones(paths, bool)
    per_bp = lev*D/1e4                                # 价差每变动 1bp 的损益(占初始资本)
    for _ in range(days):
        jump = (rng.random(paths) < shock_p)*rng.exponential(30, paths)
        d = -0.01*spread + 1.0*rng.standard_normal(paths) + jump
        equity = np.where(alive, equity - per_bp*d, equity)
        spread = spread + d
        dead = alive & (equity < 0.3)
        equity = np.where(dead, equity - per_bp*fire*lev/25, equity)
        alive &= ~dead
    return np.mean(~alive), equity.mean(), np.median(equity), np.percentile(equity, 1)
print("\n杠杆  清盘概率  期末权益均值  中位数  1%分位   (初始资本 = 1,持有约 2 年)")
for lev in [5, 10, 25, 50]:
    q, mean, med, p1 = convergence(lev)
    print(f"{lev:4d}  {q:8.1%}  {mean:10.2f}  {med:7.2f}  {p1:7.2f}")

关键输出:

等权组合波动率:
      rho=0.0  rho=0.2  rho=0.5
股票数                           
1       30.0     30.0     30.0
5       13.4     18.0     23.2
20       6.7     14.7     21.7
100      3.0     13.7     21.3

单人连续 4 季盈利概率: 理论 0.0625,模拟 0.0625
16 人中至少一人连续 4 季盈利: 理论 0.644,模拟 0.645
100 个无效策略: 样本内最佳年化夏普 1.48,样本外 -0.80

一年后损益分布(单位:基准头寸 1 天 1 个标准差的损益)
  固定头寸: 均值  -0.03  盈利概率 0.50  1% 分位    -36.9  最差路径    -63.2
  亏损加仓: 均值   0.77  盈利概率 0.96  1% 分位   -915.2  最差路径  -3191.6
  硬性止损: 均值   0.01  盈利概率 0.49  1% 分位    -21.6  最差路径    -23.4

含前视偏差: 年化夏普  21.26
正确实现: 年化夏普   0.38

杠杆  清盘概率  期末权益均值  中位数  1%分位   (初始资本 = 1,持有约 2 年)
   5      0.0%        1.04     1.05     0.92
  10      0.4%        1.08     1.09     0.82
  25      5.0%        1.15     1.23    -0.43
  50     12.3%        1.17     1.44    -2.03

逐条解读:

分散化。\(\rho=0.2\)、20 只股票时组合波动率 14.7%,复现原书数字。再增加到 100 只只降到 13.7%,逼近极限 \(30\%\times\sqrt{0.2}=13.4\%\):分散化消除的是个体风险,消除不了共同因子。相关性升到 0.5 时,即使 100 只股票也只能降到 21.3%。这就是为什么危机中"所有相关性趋向 1"如此致命——分散化在最需要的时候消失了。

运气与能力。16 名无技能交易员中至少一人四季全胜的概率是 64%。把同样的逻辑用于策略研发:在 100 个真实收益为零的策略中挑样本内最好的,年化夏普可以达到 1.48,而它在样本外毫无价值。量化研究员每天都在做"16 名交易员"的实验,只是被试验的是参数组合。对策:记录尝试过的所有策略数量,用多重检验校正或 Deflated Sharpe Ratio 评估,并以样本外表现决定资金分配。

亏损加仓 vs 硬性止损。这是本章最重要的一段模拟。"亏损加仓"的交易员有 96% 的概率在年底盈利——在几乎所有的年份里,他看起来都是最好的交易员,管理层会信任他、给他奖金。但他的 1% 分位损失是固定头寸交易员的 25 倍,最差路径亏损超过 3,000 个单位,足以拖垮机构。均值仍然约为零(0.77 只是抽样误差,在如此厚的尾部下样本均值极不稳定):加仓不能创造期望收益,只是把许多小的盈利换成一次毁灭性的亏损。巴林的 Leeson、兴业的 Kerviel、橙县的 Citron 的故事都是这条曲线的真实版本。硬性止损则把最差情况锁定在限额附近(−23.4,限额为 −20,差额是触发当天的损益),且期望收益不变。原书说"超限无论盈亏同罚",正是为了切断"亏损加仓"的动机。

前视偏差。在完全不可预测的随机游走上,一个错把当天信号用于当天收益的回测,年化夏普高达 21。改正后为 0.38,与零无显著差别(2000 天数据下夏普的标准误约 0.36)。这就是原书"简单策略报告巨额利润,模型多半有错"的量化版本:Kidder Peabody 的利润计算错误、回测中的前视偏差、成交价假设错误,在结果上看起来都像"天才策略"。经验法则:夏普超过 3 的日频策略,先当作 bug 处理。

杠杆、流动性与拥挤。收敛套利在理论上必然收敛,杠杆越高,期末权益的均值和中位数越漂亮(50 倍杠杆中位数 1.44,即两年赚 44%)。但被迫清盘的概率从 0 升到 12%,1% 分位从 0.92 跌到 −2.03——亏光全部资本后还倒欠两倍,这部分损失由交易对手和债权人承担,正如 LTCM 需要 14 家银行注资。模型中"清盘冲击成本随杠杆增加"刻画了拥挤交易:头寸越大、同类基金越多,被迫平仓时价格越差。注意:存活下来的路径最终确实收敛并获利——LTCM 的许多头寸在 1999 年后也确实收敛了,但它已经活不到那一天。正确但活不到兑现的交易,等于错误的交易。


本章小结

衍生品巨亏的主要来源不是复杂的数学,而是简单的控制失效:授权对冲的人去投机,一个人同时控制交易和记录,系统算错利润,买了自己无法估值的产品,用高杠杆和短期融资持有流动性差的拥挤头寸。原书的教训可以归结为一句话:内部控制的重要性。对量化交易者而言,这些教训几乎可以一一翻译成系统中的硬性规则:限额自动执行、损益每日归因核对、研究与风控权限分离、回测异常先查 bug、多重检验校正、压力测试纳入流动性和拥挤、杠杆匹配融资期限、长期激励。

类别 教训 关键数字 / 例子
所有用户 设定并逐级分解风险限额,每日核对 巴林、兴业、UBS
所有用户 超限无论盈亏同罚 橙县 1991–93 盈利、1994 亏 20 亿
所有用户 不要以为能战胜市场 \(0.5^4=1/16\);16 人中至少一人四季全胜的概率 64%
所有用户 重视分散化 \(\sigma_p=\sigma\sqrt{1/n+(1-1/n)\rho}\),20 只、\(\rho=0.2\) 时 14.7%
所有用户 情景分析与压力测试 P&G、Gibson 忽略利率升 100bp
金融机构 监控明星交易员;前中后台分离 Jett、Leeson、Kerviel
金融机构 不盲信模型;简单策略大赚先查错 Kidder Peabody
金融机构 慢确认初始利润;不卖不合适产品 信孚银行 5/30 互换
金融机构 警惕容易的钱;流动性风险 安然、AAA 级 ABS CDO、LTCM
金融机构 警惕拥挤策略 1987 组合保险、1998 LTCM、英国保险公司
金融机构 不过度短融长投;透明;激励;重视风控 雷曼、北岩;"音乐还在播放"
非金融企业 只做理解且能自行估值的交易 P&G、Gibson、Hammersmith and Fulham
非金融企业 防止对冲者变投机者;财务部门不宜作利润中心 橙县、Allied Lyons

练习

原书本章没有习题。以下练习由本书设计,前三题对应精读笔记中建议的练习。

基础

  1. 复现 20 只股票等权组合标准差 14.7% 的计算,并画出 \(\sigma_p\) 随股票数 \(n\)(1 到 200)和相关系数 \(\rho\)(0、0.1、0.2、0.5)变化的曲线。要使组合波动率降到 15% 以下,\(\rho=0.2\) 时至少需要几只股票?\(\rho=0.3\) 时能做到吗? 提示:\(\rho=0.3\) 时极限为 \(30\%\times\sqrt{0.3}=16.4\%\),做不到。

  2. \(N\) 名无技能交易员中至少一人连续 \(k\) 期盈利的概率是 \(1-(1-0.5^k)^N\)。对 \(N=16,50,200\) 和 \(k=4,8,12\) 列表;再用模拟验证。若某机构 200 名交易员中有一人连续 8 个季度盈利,你会提高他的限额吗? 提示:\(N=200\)、\(k=8\) 时概率约 54%。

  3. 用本章的分类,把 Business Snapshot 36.1 和 36.2 中的每个案例归入"授权漂移、控制失效、系统模型错误、看不懂的产品、杠杆流动性拥挤、期限错配"六种模式(可多选),并说明理由。

  4. 解释 Metallgesellschaft 的问题:用滚动的短期期货对冲长期的固定价格供应合约,为什么在油价下跌时会产生巨大的现金流压力,即使对冲在经济上是"有效"的?这与"不要过度用短期融资满足长期需求"有何共同之处? 提示:期货每日结算,亏损立即付现;供应合约的对应收益要在多年后才实现。

  5. 一家券商在某种奇异产品上的成交量突然是同行的三倍。按原书的教训,风险经理应当首先检查什么?

进阶

  1. 修改本章代码第 3 部分,把"亏损加仓"规则的放大倍数从 1.5 改为 1.2 和 2.0,头寸上限分别取 16 和 256。观察盈利概率与 1% 分位损失的权衡。再加入一个"盈利时也加仓"的规则,比较结果。

  2. 对一个收敛套利组合做历史压力测试:用模拟或公开数据构造一个"多 A 空 B"的价差,选出历史上价差扩大最快的 3 个时期(如 1998、2008、2020 年的流动性冲击期),计算在不同杠杆下的最大回撤与保证金需求,确定在给定的流动性缓冲下可以承受的最大杠杆。

  3. 在本章代码第 5 部分中加入"拥挤"的反馈:当一条路径的权益下降时,价差的漂移暂时变为正(其他基金也在平仓)。比较有无反馈时 25 倍杠杆的清盘概率。

  4. 实现一个简化的"多重检验校正":对 100 个随机策略的样本内夏普,用 Bonferroni 方法计算显著性阈值;再查阅 Bailey 与 López de Prado 的 Deflated Sharpe Ratio 公式,计算本章模拟中最佳策略的 DSR。 提示:在没有真实收益的情况下,DSR 应接近 0.5 或更低,表示无法拒绝"没有技能"。

  5. 设计一份你所在(或设想的)量化团队的"风险政策":列出限额的种类和数值、超限处理流程、前中后台的权限划分、新策略上线审批、激励兑现机制。对照本章的每条教训,指出政策中对应的条款。


原书对照

本章小节 原书章节 PDF 页码
章首导言、Business Snapshot 36.1、36.2 Chapter 36 introduction p.829–830
36.2 对所有用户的教训 36.1 Lessons for All Users of Derivatives p.829–832
36.3 对金融机构的教训 36.2 Lessons for Financial Institutions p.832–837
36.4 对非金融企业的教训 36.3 Lessons for Nonfinancial Corporations p.837–839
36.5 小结、延伸阅读 Summary, Further Reading p.839–840

注:PDF 页码 = 书页码 + 1。本书 36.1 节"事故全景"与"共同模式"、量化实战中的对照表和补充案例为本书补充内容。