第 23 章 指数与组合市场
对应 Harris《Trading and Exchanges》Part VII 导言与第 23 章 “Index and Portfolio Markets”。指数交易被作者称为 20 世纪最重要的金融创新之一。这一章回答三个问题:指数如何计算、指数基金如何管理;为什么指数化在逻辑上必然战胜平均的主动管理(“主动管理的算术”);为什么指数产品的交易成本远低于逐只交易成分股,指数市场又为何领先现货市场发现价格。它把第 21a、21b 章(交易成本)和第 22a、22b 章(绩效评估)的结论落到了市场结构上。
学习目标
读完本章,你应当能够:
- 区分价格加权、市值加权、等权、几何加权指数与全收益指数,并会在拆股、成分替换时调整指数除数。
- 说明指数基金如何复制价格加权与市值加权指数、跟踪误差从哪里来,以及“增强收益”手段与跟踪误差之间的权衡。
- 用会计恒等式论证:扣除成本前主动管理的平均收益等于市场,扣除成本后必然跑输;解释为什么赢家不持续、输家持续。
- 说出指数产品交易成本低的三个原因,以及指数期货为何领先现货指数。
- 描述程序交易、打包(组合)交易的运作方式,解释 NYSE 的 ESP 为什么失败。
- 比较开放式指数基金、ETF、指数期货、指数期权的特点与适用场景,理解指数重构(如 Russell 年度重构)带来的价格冲击。
读前导读
这一章在解决什么问题。 你在 CFA 一级的权益部分学过指数的编制方法(价格加权、市值加权、等权),在组合管理部分学过主动与被动的取舍、跟踪误差和信息比率。这一章把这些知识放到“市场结构”里重新看一遍:指数除数为什么要调整、指数基金为什么几乎不用交易、为什么主动管理整体上一定跑输、为什么交易指数风险比逐只交易成分股便宜得多、为什么股指期货往往先动而现货后动。全章的核心只有一条会计恒等式(主动管理的算术)和一条微观结构逻辑(逆向选择小的地方价差就窄,回忆第 13 章)。数学很轻,主要难点是把“加权平均”和“零和”这两件事想清楚。
需要先想起来的数学。
- 求和记号与加权平均:\(\sum_i w_iR_i\) 读作“把每个 \(R_i\) 乘上权重 \(w_i\) 再全部加起来”。当 \(\sum_i w_i=1\) 时它就是加权平均。例:两只股票权重 0.6、0.4,收益 10%、-5%,组合收益 \(0.6\times10\%+0.4\times(-5\%)=4\%\)。本章的指数公式、主动管理的算术都是这个结构。见 第 00 册第 07 章 概率中的分析工具。
- 比例不变量与“反解”:除数调整的思路是“事件前后指数值相等”,即 \(\frac{S_{\text{前}}}{D_{\text{旧}}}=\frac{S_{\text{后}}}{D_{\text{新}}}\),解出 \(D_{\text{新}}\)。这和你做股票拆分后调整历史每股收益是同一个道理。
- 标准差的年化:日度收益差的标准差乘以 \(\sqrt{252}\) 得年化跟踪误差,前提是各日独立、方差可加(\(n\) 天方差 \(=n\times\) 单日方差,开方即 \(\sqrt n\))。例:日度跟踪误差 0.1%,年化约 \(0.1\%\times15.87\approx1.59\%\)。
- 矩阵乘向量:代码里的
r @ w是“\(T\times N\) 的收益矩阵乘 \(N\) 维权重向量”,结果是每天的组合收益,本质仍是逐行求加权和。见 第 00 册第 06 章 线性代数速成。
怎么读这一章。 必读 23.2(除数调整)、23.4(主动管理的算术)和 23.5(指数市场为什么便宜、为什么领先)。23.3 的指数基金复制方法和 23.6 的产品表,有 CFA 基础的读者可以快速浏览。原书专栏(MMI、ESP、Russell 重构)建议都读,它们是“流动性向一个标准集中”“价格发现场所决定报价能力”的最好例子。量化实战部分建议先看输出和逐段解读,再回头读代码。
23.0 Part VII 导言:市场结构
本书最后几章考察市场结构的经济学,涉及许多活跃的监管争论:第 23 章讨论指数市场为何如此组织,以及未知情交易者如何从交易指数中获益;第 24 章讨论专家(specialist)制度;第 25–27 章讨论市场与交易商如何竞争订单流(内部化与订单优先安排、市场的集中与分割、电子屏幕交易与场内交易);第 28 章讨论极端波动与熔断;第 29 章讨论内幕交易。
23.1 指数交易为什么重要
指数市场交易指数产品:指数期货、指数期权,以及代表指数基金所有权的证券。指数基金是用来复制某个价格指数表现的组合,多数跟踪股票指数,部分跟踪债券指数和行业指数。原书写作时,股票指数产品的名义成交额已超过标的证券的总成交额。
指数产品为什么受欢迎?
- 许多人宁愿投资指数产品,也不愿冒投给主动经理而亏损的风险(第 22a、22b 章);
- 只想投机指数风险的投机者用指数产品建立头寸;
- 只想投机公司特定风险的投机者用指数产品对冲个股头寸中的指数风险。
指数策略的普及改变了市场:指数市场远比其所依据的现货市场流动;指数产品价格变化通常领先现货指数变化,因此有人说指数市场是“尾巴摇狗”(the tail that wags the dog)。
23.2 价格指数
价格指数刻画一组品种的价值,这组品种叫指数成分(index components)。指数可以覆盖整个市场、市场子集或多个市场;只包含一小部分证券的叫窄基指数(narrow indexes),如大/小盘、价值/成长、行业、地域指数。多数指数是交易所、经纪商或数据商的专有产品,常把指数授权给基于它开发产品的公司。
所有价格指数本质上都是成分价格的某种平均,区别在于平均方法:
- 价格加权指数(price-weighted):与成分价格之和成正比,高价成分影响最大。最著名的是道琼斯工业平均指数(DJIA)和日经 225。
- 价值加权指数(value-weighted),又称市值加权(capitalization-weighted):与成分总市值成正比,市值最大的证券影响最大。多数指数属于此类,最著名的是标普 500。
其中 \(N_{i,t}\) 为流通股数,\(D_t\) 为指数除数(divisor)。除数最初由编制者选定,使指数从某个任意初值开始;此后只在必要时调整,以保证增删成分时(价格加权指数还包括拆股时)指数值不跳变。例如高价股替换低价股时,价格加权指数的除数要增大;高市值股替换低市值股时,市值加权指数的除数也要增大。市值加权指数在拆股时不必调整(拆股不改变市值)。调整规则很简单:事件前后用同一指数值反解新除数,
推导拆解:设事件前分子之和为 \(S_{\text{前}}\),事件后为 \(S_{\text{后}}\)。要求指数值不跳变:
- 写出条件:\(\dfrac{S_{\text{前}}}{D_{\text{old}}}=\dfrac{S_{\text{后}}}{D_{\text{new}}}\)(左边是事件前一刻的指数,右边是事件后一刻的指数,两者都在同一组收盘价下计算)。
- 两边交叉相乘:\(S_{\text{前}}\,D_{\text{new}}=S_{\text{后}}\,D_{\text{old}}\)。
- 解出 \(D_{\text{new}}=D_{\text{old}}\times S_{\text{后}}/S_{\text{前}}\),就是上式。 例:价格加权指数含 A=100、B=50,除数 1.5,指数 100。A 一拆二变 50,\(S\) 从 150 变 100,新除数 \(1.5\times100/150=1\),指数仍为 \(100/1=100\)。 一个推论:价格加权指数里,股票一拆分,它在分子中的“话语权”就永久缩小了一半。这就是价格加权指数权重“随意”的根源。
金融直觉:除数就像会计里的“股本调整”。股票拆分不改变股东权益,但每股数据要追溯调整,否则历史 EPS 会出现假的断崖。指数编制者调整除数,做的正是同一件事:把纯会计事件从指数序列里剔除,只让真实的价格变化影响指数。
其他类型:
- 等权指数(equal-weighted):衡量在每个成分上投入等额资金的收益,指数值是这一假想策略的累积收益;最著名的是 CRSP 等权市场指数,主要用于学术研究。
- 几何加权指数(geometrically weighted):平均对数收益而非价格,如 Value Line 几何指数。
白话解释:几何加权指数的单期变化是各成分价格比的几何平均,\(I_t/I_{t-1}=\big(\prod_i P_{i,t}/P_{i,t-1}\big)^{1/n}\)(\(\prod\) 是连乘号,类似 \(\sum\) 但做乘法)。取对数后就是“平均对数收益”:\(\ln(I_t/I_{t-1})=\frac1n\sum_i\ln(P_{i,t}/P_{i,t-1})\)。几何平均总不大于算术平均,例如一只股票涨 100%、另一只跌 50%,算术平均收益是 +25%,几何平均是 \(\sqrt{2\times0.5}-1=0\%\)。所以几何指数不对应任何可以实际持有的组合,长期看会系统性低于等权指数,不适合做可投资的基准。
股息调整指数(dividend-adjusted)在成分派息时上调,又称全收益指数(total return indexes),衡量无交易成本地投资指数所得的总收益(资本利得 + 收入)。评估组合绩效通常用全收益指数作基准。DJIA 和标普 500 本身不是全收益指数,但对应的全收益版本广泛可得。
原书专栏“主要市场指数”:道琼斯公司多年拒绝把 DJIA 授权给期货期权交易所,于是美国证券交易所(AMEX)编制了 Major Market Index(MMI)——20 只蓝筹股的价格加权指数,多数也是道指成分,与 DJIA 高度相关;AMEX 交易 MMI 期权,并授权芝加哥商业交易所(CME)交易 MMI 期货。1997 年道琼斯终于把 DJIA 授权给 CBOT 和 CBOE,道指期货和期权非常成功,“杀死”了 MMI:CME 于 1999 年停止交易 MMI 合约,AMEX 的 MMI 期权到 2001 年底已无显著未平仓量。这是订单流外部性(第 01 章)的又一个例子:同类产品中,流动性会集中到一个“标准”上。
23.3 指数基金
指数基金的目标是复制某个指数的表现。**跟踪误差(tracking error)**是组合收益与对应全收益指数收益之差,指数基金经理力求最小化它。
- 复制市值加权指数很简单:若基金规模是全部成分总市值的 0.01%,就买入每个成分已发行股份的 0.01%。基金价值与成分总市值成正比,后者又与指数成正比,三者的百分比变化相同。只有成分名单变化时才需要再平衡。
- 复制价格加权指数同样简单:每个成分持有相同股数,组合价值与成分价格之和成正比。成分变化和拆股时须再平衡。
- 复制全收益指数,派息时须把股息再投资。
白话解释:为什么市值加权组合“自动再平衡”?设你持有每只股票已发行股份的同一比例 \(c\)。组合中股票 \(i\) 的价值是 \(cN_iP_i\),其权重 \(\frac{cN_iP_i}{\sum_k cN_kP_k}=\frac{N_iP_i}{\sum_k N_kP_k}\) 恰好等于它在指数中的市值权重。价格怎么变,两边的权重就跟着一起变,不需要任何交易。等权指数则不同:涨得多的股票权重会超过 \(1/n\),必须卖出赢家、买入输家拉回等权,这就是第 22a 章提到的“卖涨买跌”的再平衡及其交易成本。
指数基金通常略跑输目标指数,原因是各种摩擦:股息再投资、应对申购赎回、成分变化时的再平衡所产生的交易成本,以及管理费。
改进收益的方法:交易时提供而非需求流动性;成分股交易昂贵时用非成分股替代;只在应对申赎和股息再投资时再平衡;只持有成分的一个子集(抽样复制)以减少交易的证券数量。这些办法倾向于提高收益,但一般会增大跟踪误差,所以许多基金不激进采用。
原书专栏“各自管理着全球约 3% 的股票”:截至 2000 年 12 月,巴克莱全球投资者(Barclays Global Investors,BGI)是全球最大的指数基金管理人,在美国和国际股票指数基金中管理 5,710 亿美元(全部资产 8,020 亿美元);同期全球上市股票总市值约 31 万亿美元,仅算指数基金,BGI 就管理了略低于 2% 的全球上市股票。全球最大的股票管理人是德意志资产管理,约 1 万亿美元。
现状补充:BGI 在 2009 年被贝莱德(BlackRock)收购,其 iShares ETF 业务成为贝莱德的核心。指数化投资此后大幅增长,美国被动股票基金的规模在 2020 年代已与主动基金相当。
原书专栏“Russell 年度重构的价格冲击”(Madhavan, “The Russell Reconstitution Effect”, Financial Analysts Journal):Russell 1000、2000、3000 分别是按市值排名前 1,000、第 1,001–3,000、前 3,000 的美国上市公司。Frank Russell 公司每年 6 月最后一个交易日收盘时**重构(reconstitute)**指数,依据 5 月最后一个交易日的市值。复制这些指数的基金必须在同一时间附近买入新增股、卖出剔除股,因此对这些股票造成显著价格冲击。1996–2001 年,Russell 3000 新增股平均在 6 月跑赢剔除股 15%,在 7 月跑输 5%。 冲击很大,因为这些股票很小;7 月的反转说明部分冲击是暂时的(第 20 章的暂时性波动);6 月剩余的差异可能源于投资者更看重纳入指数的股票(也许更流动),或源于小盘股的动量效应,部分也可能在 8 月以后反转。标普调整成分时也有类似效应。
现状补充:Frank Russell 公司的指数业务后来归入伦敦证券交易所集团旗下的 FTSE Russell(2014 年)。指数纳入/剔除效应是事件驱动策略的经典来源,但随着套利资金增加,公告日到生效日之间的超额收益在美国市场已明显收窄。
23.4 支持指数化的论证
主动组合经理是试图通过巧妙交易跑赢市场的投机者,可能是知情交易者、价值交易者或技术交易者。换手率(turnover):给定期间内买入(或卖出,或两者平均)总额与组合总值之比。主动经理换手率常超过每年 100%,收费通常 1%–3%;被动经理换手率通常每年 0–10%,收费通常低于 15 个基点。
主动管理的算术。 不考虑交易成本时,所有组合的价值加权平均收益等于市值加权市场指数的收益——全部投资者合起来持有的就是市场组合。交易成本确保平均组合收益总低于市场收益;主动经理交易频繁,因此平均跑输市场。作者强调:这是基于简单会计原则的逻辑结论,永远成立。(这一论证常被称为 Sharpe 的“主动管理的算术”。)写成式子:设第 \(j\) 个投资者的规模为 \(A_j\),收益为 \(R_j\),被动投资者持有市场组合,则
推导拆解:这条式子只用了“加权平均可以分组计算”。
- 全体投资者(主动 + 被动)合起来持有的就是市场上全部股票,所以按资金规模加权的全体平均收益 \(=R_m\)(这是定义,不是假设)。
- 把全体拆成两组:被动组规模占比 \(p\),持有市场组合,扣费前收益恰为 \(R_m\);主动组占比 \(1-p\),平均收益记为 \(\bar R_a\)。分组加权:\(pR_m+(1-p)\bar R_a=R_m\)。
- 移项得 \((1-p)\bar R_a=(1-p)R_m\),只要 \(p<1\) 就有 \(\bar R_a=R_m\)。这就是“扣费前主动平均等于市场”。
- 扣费后:主动组平均收益 \(=R_m-\) 主动组平均成本;被动组 \(=R_m-\) 被动成本。主动换手率与费率更高,于是主动扣费后平均低于被动扣费后。 注意两点:这里的平均是按资金加权,不是按基金个数简单平均;“市场”要与主动经理实际可投资的范围一致(例如都是美国大盘股)。这两个前提若不满足,数据上会出现偏差,但逻辑本身不受影响。
实证自然不令人意外:作为整体,主动基金跑输市场。任一季度只有约四分之一的共同基金跑赢市场;把交易成本加回去,约一半跑赢——如果没有成本、基金是随机样本,本来就该是一半。基金跑输,是因为交易成本。
赢家集合每季都在变——基金一般不能持续跑赢(第 22b 章:运气比技能更重要);极端输家集合变化不大——它们因交易太多而亏损,持续地输比持续地赢容易得多。
有些经理无疑能在扣费后跑赢,但很难识别。所以许多未知情投资者选择买入持有,以避免挑选经理的困难和投给无技能经理的成本。指数基金实施的正是买入持有策略:管理中的小摩擦使它略跑输指数,但它们经常击败四分之三的主动经理——这同样是零和博弈的推论,而不只是经验事实。投资者通常选宽基指数基金:分散化好,市场指数收益广泛公布,容易核查经理是否在做该做的事。
原书专栏“看待糟糕主动管理的视角”:主动经理亏损不是因为他们持续买入随后下跌的、卖出随后上涨的——若真如此,只要反着操作就能大赚。糟糕的研究不会产生系统性错误的信号,只会产生随机噪声。主动经理亏损不是因为持续买输家卖赢家,而是因为持续买卖。
白话解释:为什么“赢家不持续、输家持续”?把一只基金一年的超额收益拆成两块:超额 \(=\) 技能 \(+\) 运气 \(-\) 成本。运气是均值为 0、每年重新抽签的噪声,波动远大于技能,所以今年的赢家多半只是抽到了好签,明年重新抽签就回到人群中间。成本却是每年都确定地扣除,高换手、高费率的基金年年被扣得最多,于是总落在底部。用回归的语言说:超额收益对上一期超额收益回归,高分组的斜率接近 0(主要是噪声),低分组却稳定为负(成本是可预测的部分)。
23.5 指数市场的流动性与价格形成
指数市场让交易者能比逐只交易成分股更便宜地交易指数风险,原因有三:
- 指数交易商很少面临与知情者交易的风险:多数指数交易者是未知情投资者,很少有人对整个市场的方向有有价值的洞见,所以逆向选择成分小,交易商不必报宽价差(第 13 章)。
- 指数市场非常活跃:大家交易同样的指数产品,买方容易找到卖方;交易商能快速周转存货,存货风险小,可以报窄价差。
- 只需安排、清算、结算一笔交易:交易底层成分须安排许多笔,贵得多。
需要组建或拆解指数组合时,交易者一般以程序交易(program trades)的形式交易成分股——同时提交许多订单。NYSE 和 SEC 的统计口径把涉及 15 笔或以上协调交易、总值 100 万美元或以上的交易归为程序交易,当时约占 NYSE 成交量的 27%。需要组建或清算指数组合的指数套利者约占程序交易量的 9%(约占 NYSE 总成交量的 2.4%),其余 91% 来自其他组合交易策略,其中许多也基于指数。程序交易者一般用专门的订单清单软件管理订单。原书专栏“程序交易蜂鸣器”:NYSE 过去在大厅用点阵打印机打印电子路由(SuperDot)订单,程序交易到来时各柜台的打印机同时“嗡嗡”作响,场内交易者一听便知。
价格发现。 指数市场价格通常领先现货指数。原因是分工:指数交易者只关心指数风险的价格,而成分股交易者须为证券的全部风险定价,指数风险对他们远不如个股特定风险重要。所以指数市场发现指数风险价格的速度比众多成分各自的市场快得多,个股交易者也会看指数市场判断大盘走向。
金融直觉:把第 1 条原因放回第 13 章的价差分解:价差 \(\approx\) 订单处理成本 \(+\) 存货成本 \(+\) 逆向选择成本。个股上,对手可能刚看过未公开的盈利预告;指数上,没人能对 500 家公司同时拥有私有信息,个股的私有信息在加总时大多相互抵消,只剩宏观信息,而宏观信息大多是公开的。这和 CAPM 的逻辑同构:个股的特质风险在组合里被分散掉,个股层面的私有信息在指数里也被“分散”掉了。逆向选择成本几乎为零,价差自然就窄。
至于“期货领先现货”,还有一个机械原因:现货指数是成分股最近一笔成交价的加权,冷门成分可能几分钟没有成交,指数里用的是“旧价格”;期货则每一刻都在按最新信息成交。所以即使信息同时到达,现货指数在数字上也会滞后。这对第 20 章讲的“指数收益的序列相关”也是一个解释。
23.5.1 打包交易、篮子交易与组合交易
**打包交易商(package dealers)**对整个组合给出确定的买价或卖价,这个市场也叫确定买/卖价市场、篮子市场或组合交易市场(package / basket / portfolio trading)。运作方式:
- 交易者向一家或多家打包交易商描述组合特征——是否为指数组合;若不是,提供汇总统计:数量、公司规模、贝塔、价格水平、平均成交量、波动率、主要上市交易所、指数成分等;
- 交易商据此报出确定价格,通常相对组合的收盘价值报价,例如以收盘价值减每股 15 美分买入,或加每股 20 美分卖出;
- 交易者通常与报价最好者成交。为防止市场操纵,交易者在收盘后才透露证券清单。
打包报价一般优于单个证券的报价,因为知情交易者交易组合的可能性小于交易单个证券,交易商被知情者伤害的可能性更小。没有程序交易系统的交易者尤其受益:他们付钱让打包交易商承担交易问题,而交易商通常是更好的交易者,还可能把组合配售给其他客户,以很低成本完成撮合。
白话解释:交易商只看汇总统计、不看具体名单就敢报价,靠的是“大数定律”:几百只股票的组合,其风险主要由贝塔(市场敞口)、行业和规模暴露决定,个股特质部分相互抵消。交易商可以先用股指期货对冲掉贝塔,剩下的只是较小的残差风险和执行成本。收盘后才给名单,是为了防止交易商(或其他看到名单的人)在收盘前抢先交易这些股票,把收盘价推向对客户不利的方向——这正是第 11 章订单预期者的做法。
原书专栏“NYSE 的 ESP”:1987 年股灾后,NYSE 为标普 500 组合建立了机构规模的有组织打包市场——交易所股票组合(Exchange Stock Portfolio, ESP),包含全部标普 500 股票,规模约 600 万美元,由五家大投行担任竞争性做市商,须报出确定买卖价。ESP 于 1989 年 10 月开始交易,但并不成功:只有在某交易商调整报价太慢、被另一交易商“摘单”(pick off)时才有成交,25 个月中共 269 笔成交,代表客户的寥寥无几。原因在于标普 500 指数风险的价格主要在 CME 场内的标普 500 期货交易坑中发现,ESP 交易商远离交易坑、也就远离最新最可靠的指数信息,永远报不出期货那样窄的价差;而且他们须对 600 万美元持续报确定价格,而期货场内交易者没有这种义务。一个有趣的细节:为便利 ESP,NYSE 改造了系统允许十进制报价——比其普通股改为十进制报价早了 11 年。
现状补充:今天的组合交易(portfolio trading / program trading)主要通过券商的“风险报价”(principal bid / risk bid)和代理执行完成,交易商的定价同样依赖组合的贝塔、流动性、波动率等汇总特征;在债券市场,组合交易近年也迅速发展。
23.6 指数产品
指数风险以多种形式交易。原书表 23-1 列出了当时(2001 年 4 月 20 日)美国主要的宽基指数产品。该表在原书中是多列排版,精读笔记的抽取对应关系有部分不确定,下表按上下文整理,规模数字需要核对时请对照原书:
| 类型 | 产品 | 例子 | 主要市场 | 规模/未平仓量(约) |
|---|---|---|---|---|
| 证券 | 开放式指数共同基金 | Vanguard 500 Index Fund;Fidelity Spartan 500 Index Fund | 直接向基金申购赎回 | 960 亿;100 亿美元 |
| 证券 | 交易所交易基金(ETF) | SPDR(“Spiders”,SPY);Nasdaq-100 Trust(“Cubes”);Diamonds(DJIA) | AMEX | 270 亿;280 亿;20 亿美元 |
| 衍生品 | 现金结算指数期货 | S&P 500 期货;Nasdaq-100 期货;Dow 30 期货 | CME;CME;CBOT | 2,900 亿;110 亿;30 亿美元 |
| 衍生品 | 现金结算指数期权 | SPX;OEX;DJX | CBOE | 以百万张计(对应关系待核) |
| 衍生品 | 期货期权 | S&P 500 指数期货期权 | CME | 约 17 万张 |
各类产品的特点:
- 开放式指数共同基金:最常见。按收盘净资产值(NAV)直接向基金申购赎回。缺点:不能日内交易;须持有现金应对申赎;申赎不能轧平时须交易底层证券。
- 交易所交易基金(ETF):通常是持有指数组合的信托,份额像股票一样在交易所和 ECN 交易;大额交易者可以向信托交付指数组合创设(create)新份额,或交回份额换取按比例的指数组合以赎回(redeem)(实物申赎)。流行原因:随时可交易;无须应对小投资者的申赎;申赎时不买卖证券,给投资者带来的应税负担少于开放式基金;无须管理大量股东账户。
- 指数期货:最重要的衍生指数产品,尤其受对冲者和投机者欢迎,因为不需要缴纳大额保证金(相对名义金额)。作为长期持有指数风险的工具,主要缺点是到期须展期(roll over),展期交易产生成本。
- 现金结算指数期权:主要由投机者、对冲者和赌博者使用。
现状补充:SPY 的上市地后来迁至 NYSE Arca;Nasdaq-100 Trust 于 2004 年转到 Nasdaq 上市,现名 Invesco QQQ(代码 QQQ)。ETF 已成为最主要的指数化工具之一,规模远超原书时代。中国市场的对应产品包括沪深 300、中证 500 等指数的 ETF(采用申购赎回清单机制)、中金所 2010 年 4 月推出的沪深 300 股指期货及其后的中证 500、上证 50、中证 1000 股指期货,以及上交所 2015 年推出的 50ETF 期权等。
23.7 小结
自 1970 年代初以来,随着投资者更好地理解零和博弈的含义,对指数市场的兴趣大增。平均而言,主动经理无法跑赢市场,交易成本和高管理费确保他们平均跑输。不想主动投机的投资者发现指数基金很有吸引力。指数订单流从底层证券市场转移到指数产品市场,大大降低了实施指数策略的成本:指数市场集中了订单流,而且很少有交易者对宽基指数的价值知情。低成本也使指数产品对投机者很有吸引力——用来投机指数风险,或对冲个股头寸中的指数风险。
量化实战:指数编制、复制误差与主动管理的算术
下面的代码做三件事:(1) 用三只股票的小例子演示价格加权指数在拆股时、市值加权指数在成分替换时如何调整除数;(2) 模拟 500 只股票的市值加权指数,比较完全复制与只持有前 \(k\) 大成分(抽样复制)的跟踪误差;(3) 构造 1,000 个主动经理,令他们相对市场的偏离恰好相互抵消(全体合计持有市场组合),验证“扣费前平均等于市场、扣费后必然跑输”。
import numpy as np, pandas as pd
# ---------- 1) 价格加权与市值加权指数:除数调整 ----------
px = pd.DataFrame({"A": [100.0, 104, 52.5, 53], "B": [50.0, 49, 50, 51], "C": [20.0, 21, 21, 22]})
sh = pd.DataFrame({"A": [1e6, 1e6, 2e6, 2e6], "B": [4e6] * 4, "C": [10e6] * 4}) # 第 2 期 A 一拆二
def price_weighted(px, events):
div, out = px.iloc[0].sum() / 100, [] # 初值 100
for t in range(len(px)):
if t in events: # 拆分当日:用拆分前后成分价格之和保持指数不变
old_sum, new_sum = events[t]
div = div * new_sum / old_sum
out.append(px.iloc[t].sum() / div)
return out
# 第 2 期 A 以 105 收盘后一拆二,新价 52.5:拆分不应改变指数
pre_split_sum = 105 + 50 + 21; post_split_sum = 52.5 + 50 + 21
pw = price_weighted(px, {2: (pre_split_sum, post_split_sum)})
pw_naive = (px.sum(axis=1) / (px.iloc[0].sum() / 100)).tolist()
cap = (px * sh).sum(axis=1)
vw = (cap / cap.iloc[0] * 100).tolist() # 拆分不改变市值,无须调整除数
print("期: 0 1 2 3")
print("价格加权(调整除数):", " ".join(f"{x:6.2f}" for x in pw))
print("价格加权(不调整) :", " ".join(f"{x:6.2f}" for x in pw_naive), " <- 拆分造成虚假下跌")
print("市值加权 :", " ".join(f"{x:6.2f}" for x in vw))
# 成分替换:市值加权指数中用市值更大的 D 替换 C
cap_before = cap.iloc[3]; D_cap = 3e8
div_vw = cap.iloc[0] / 100
new_div = div_vw * (cap_before - px.C.iloc[3] * sh.C.iloc[3] + D_cap) / cap_before
print(f"替换成分:旧除数 {div_vw:,.0f} -> 新除数 {new_div:,.0f},指数值保持 {cap_before/div_vw:.2f} 不变")
# ---------- 2) 完全复制 vs 抽样复制的跟踪误差 ----------
rng = np.random.default_rng(23)
N, T = 500, 252 * 3
mcap = np.sort(rng.lognormal(0, 1.5, N))[::-1]; w = mcap / mcap.sum()
beta = rng.normal(1, 0.3, N)
f = rng.normal(0.0003, 0.01, T)
r = np.outer(f, beta) + rng.normal(0, 0.02, (T, N))
idx = r @ w
def te(weights):
port = r @ weights
d = port - idx
return d.std() * np.sqrt(252), d.mean() * 252
for k in [500, 200, 100, 50]:
wk = np.zeros(N); wk[:k] = w[:k] / w[:k].sum() # 只持市值最大的 k 只,按市值比例放大
s, m = te(wk)
print(f"持有前 {k:>3} 只(覆盖市值 {w[:k].sum():.1%}):年化跟踪误差 {s:.2%}")
# ---------- 3) 主动管理的算术 ----------
M, years = 1000, 20
d = rng.normal(0, 1, (M, N)) # 每个主动经理相对市场的超配/低配
d -= d.mean(axis=1, keepdims=True) # 每行之和为 0:各经理都满仓
d *= 0.13 / np.linalg.norm(d, axis=1, keepdims=True) # 主动偏离规模:年化跟踪误差约 0.30*0.13≈4%
d -= d.mean(axis=0, keepdims=True) # 全体经理的偏离相互抵消:合计持有 = 市场组合
W = w + d # 每个经理的权重(等规模)
stock_r = rng.normal(0.08, 0.15, (years, 1)) + rng.normal(0, 0.30, (years, N))
mkt = stock_r @ w
gross = stock_r @ W.T # (years, M)
cost = 0.010 + 0.005 # 管理费 1% + 交易成本 0.5%
print(f"\n{years} 年平均:市场 {mkt.mean():.2%};全体主动经理扣费前平均 {gross.mean():.2%};扣费后 {gross.mean() - cost:.2%}")
print(f"单年跑赢市场的经理比例:扣费前 {(gross > mkt[:, None]).mean():.1%},扣费后 {(gross - cost > mkt[:, None]).mean():.1%}")
cum = (1 + gross - cost).prod(0) / (1 + mkt).prod()
print(f"{years} 年累计跑赢市场的经理比例(扣费后):{(cum > 1).mean():.1%};全体经理合计持仓与市场组合的最大偏差 {np.abs(W.mean(0) - w).max():.1e}")
输出:
期: 0 1 2 3
价格加权(调整除数): 100.00 102.35 103.53 105.63
价格加权(不调整) : 100.00 102.35 72.65 74.12 <- 拆分造成虚假下跌
市值加权 : 100.00 102.00 103.00 106.00
替换成分:旧除数 5,000,000 -> 新除数 5,754,717,指数值保持 106.00 不变
持有前 500 只(覆盖市值 100.0%):年化跟踪误差 0.00%
持有前 200 只(覆盖市值 89.5%):年化跟踪误差 0.52%
持有前 100 只(覆盖市值 74.4%):年化跟踪误差 1.49%
持有前 50 只(覆盖市值 58.5%):年化跟踪误差 2.95%
20 年平均:市场 4.61%;全体主动经理扣费前平均 4.61%;扣费后 3.11%
单年跑赢市场的经理比例:扣费前 49.8%,扣费后 35.2%
20 年累计跑赢市场的经理比例(扣费后):4.9%;全体经理合计持仓与市场组合的最大偏差 5.6e-17
逐段解读:
- 除数调整:A 股在第 2 期一拆二,价格从 105 变成 52.5。如果不调整除数,价格加权指数会从 103.5 掉到 72.7——一个纯粹的会计事件被记成了 30% 的“暴跌”。调整后指数连续。市值加权指数在拆股时不受影响。成分替换时,新除数由“替换前后市值之和之比”决定,指数值保持不变。自建指数或回测基准时,这些细节处理错了,会在回测里制造虚假的收益或亏损。
- 抽样复制的跟踪误差:只持有前 200 大成分(覆盖 89.5% 市值),年化跟踪误差约 0.5%;只持前 50 只,跟踪误差升到约 3%。交易成本更低、操作更简单,但换来的是不可分散的偏离——这正是原书所说“增强收益的手段一般会增大跟踪误差”。实践中常用优化复制:在控制行业、风格暴露的前提下选样本,跟踪误差远小于简单的“取前 k 大”。
- 主动管理的算术:1,000 个主动经理合计持有的恰是市场组合(最大偏差在机器精度量级),于是扣费前平均收益与市场完全相等(4.61%),单年跑赢市场的比例约 50%。扣除 1.5% 的费用和交易成本后,单年跑赢的比例降到约 35%,20 年累计跑赢的只剩约 5%。这与原书“一季度约四分之一跑赢,加回成本约一半”的实证完全对应,而且不需要任何关于经理技能的假设——只用到会计恒等式。
对量化交易的启示:
- 基准与因子构建:价格加权、市值加权、等权指数的差别,直接影响因子研究中基准的选择——等权组合隐含小盘暴露和“卖涨买跌”的再平衡收益(第 22a 章思考题 1)。
- 指数事件策略:Russell 重构、标普成分调整是经典的事件驱动机会,也是订单预期者(第 11 章)的舞台(原书思考题 7)。研究时要区分永久冲击与暂时冲击(6 月的超额与 7 月的反转),并考虑越来越多的资金在做同样的交易。对指数基金而言,这同一事件则是一个再平衡执行优化问题:在收盘集中成交以最小化跟踪误差,还是提前分散执行以降低冲击。
- 期现关系与 ETF 套利:指数期货领先现货,是期现套利和超短期领先—滞后信号的基础;ETF 的实物申赎机制是 ETF 做市和折溢价套利的基础;期货展期成本决定了用期货长期持有指数敞口的复制成本。
- 组合交易执行:打包交易商按组合的贝塔、流动性、波动率定价,这就是组合层面的冲击成本模型;用风险报价还是代理执行,取决于组合的信息含量和交易者自身的执行能力。
- 主动管理的算术提醒回测要扣除完整成本:任何策略在扣除成本前都只是在分配市场收益,扣除成本后的平均一定为负;只有比对手更好(第 22b 章的比较优势)的策略才能长期留在正的那一侧。
本章小结
指数是成分价格的加权平均:价格加权(DJIA、日经)与价格之和成正比,拆股和换成分都要调整除数;市值加权(标普 500)与总市值成正比,复制只需按市值比例持有,拆股无须调整;还有等权、几何加权指数,以及作为绩效基准的全收益指数。指数基金以最小化跟踪误差为目标,摩擦使其略跑输指数,各种增强手段会增大跟踪误差;指数重构带来显著且部分暂时的冲击。主动管理的算术说明,扣费前主动经理的平均收益等于市场,扣费后必然跑输,所以指数基金经常击败四分之三的主动经理。指数市场流动性好,因为逆向选择小、交易活跃、只需一笔交易;价格发现首先发生在指数市场。程序交易与打包交易是交易成分组合的两种方式,ESP 的失败说明价格发现的场所决定了谁能报出最窄的价差。指数产品包括开放式指数基金、ETF、指数期货和指数期权,各有优劣。
| 概念/公式 | 要点 |
|---|---|
| 价格加权指数 | \(I=\sum P_i/D\);高价股影响大;拆股、换成分调整除数 |
| 市值加权指数 | \(I=\sum N_iP_i/D\);大市值影响大;拆股不调整 |
| 除数调整 | \(D_{\text{new}}=D_{\text{old}}\times\) 事件后之和 / 事件前之和 |
| 全收益指数 | 股息再投资;用作绩效基准 |
| 跟踪误差 | 组合收益 − 全收益指数收益;抽样复制、替代、少再平衡会增大它 |
| Russell 重构 | 新增股 6 月跑赢剔除股 15%,7 月回吐 5% |
| 主动管理的算术 | 扣费前平均 = 市场;扣费后平均 < 市场;会计恒等式 |
| 赢家与输家 | 约 1/4 基金单季跑赢,加回成本约 1/2;输家持续、赢家不持续 |
| 指数市场低成本三原因 | 逆向选择小、交易活跃、只需一笔交易 |
| 价格发现 | 指数期货领先现货(“尾巴摇狗”) |
| 程序交易 | 15 笔以上、100 万美元以上;约占 NYSE 成交量 27% |
| 打包交易 | 按收盘价值加减报价;收盘后才公布清单;组合中知情交易少 |
| 指数产品 | 开放式基金、ETF(实物申赎)、指数期货(需展期)、指数期权 |
练习
基础
- 价格指数与全收益指数是什么关系?(原书思考题 1) 答案要点:全收益指数在价格指数基础上把股息再投资;两者之差约等于累计股息收益率;评估绩效应用全收益指数。
- 价格加权指数含三只股票,价格 40、60、100,除数 2。若价格为 100 的股票一拆四,新除数是多少? 答案:事件前之和 200,事件后 \(40+60+25=125\),新除数 \(2\times125/200=1.25\),指数保持 100。
- 为什么复制市值加权指数几乎不需要再平衡,而等权指数需要频繁再平衡?
- 列出指数产品交易成本低的三个原因。
- 比较开放式指数基金、ETF 和指数期货作为长期持有指数敞口工具的优缺点。
进阶
- 原书思考题 6:指数基金可以采用哪些策略提高收益?各自的代价是什么? 提示:提供流动性、替代昂贵成分、减少再平衡、抽样复制、证券出借、在重构前后灵活择时;代价是跟踪误差和执行风险。
- 原书思考题 7:订单预期者和价格操纵者如何从 Russell 重构中获利?指数基金可以如何防御? 提示:预期者在重构前买入新增股、卖出剔除股,再在重构日卖给(买自)指数基金;指数基金可提前分散交易、用打包交易商、或接受少量跟踪误差换取更低冲击。
- 原书思考题 2:如果买入持有经理持有全部股票的 90%,流动性会怎样?价格会变得更没有信息含量吗?哪些主动交易者会受益? 提示:剩余主动资金较少时,错误定价可能更多,留下的主动交易者的潜在利润增加,这又会吸引资金回到主动管理——一个均衡问题。
- 修改本章代码第 3 部分,把主动经理的跟踪误差从约 4% 调到 10%,再看单年和 20 年跑赢市场的比例。跟踪误差越大,扣费后跑赢的比例是升还是降?这对“选主动经理”意味着什么? 提示:跟踪误差越大,成本相对噪声越小,跑赢比例越接近 50%——但这只是运气更大,并不意味着技能更多(第 22b 章)。
- 原书思考题 5:指数基金一般只略跑输市场。追求平均市场收益是对平庸的不道德追求吗?
原书推荐习题:思考题 7(Russell 重构中的订单预期与操纵,适合做事件研究);思考题 2(买入持有者占比极高时的流动性与信息效率);思考题 6(指数基金提高收益的策略);思考题 1(价格指数与全收益指数)。
原书对照
- Part VII 导言:PDF 第 496 页(原书页码约为 PDF 页码减 13,即第 483 页)。
- 原书第 23 章 Index and Portfolio Markets,PDF 第 497–506 页(原书第 484–493 页):
- 章首导言:PDF p.497;
- 23.1 价格指数(专栏 Major Market Index):p.497–499;
- 23.2 指数基金(专栏 BGI、Russell 重构):p.499–500;
- 23.3 支持指数化的论证(专栏“看待糟糕主动管理的视角”):p.500–502;
- 23.4 指数市场的流动性与价格形成(程序交易蜂鸣器;打包交易;NYSE 的 ESP):p.502–504;
- 23.5 指数产品(表 23-1):p.504–505;
- 23.6 总结、23.7 要点回顾:p.505–506;23.8 思考题:p.506。