基于 Michael Lewis,Flash Boys: A Wall Street Revolt (2014)
Michael Lewis 的 Flash Boys (2014) 讲述了美国股票市场——所谓的自由市场资本主义和公平竞争的典范——如何被高频交易(HFT)公司系统性地操纵,这些公司利用微秒级速度优势从普通投资者、养老基金和共同基金中攫取数十亿美元。
本书以 Brad Katsuyama 为核心人物,他是一位加拿大交易员,在加拿大皇家银行(RBC)工作,他发现自己的股票订单出现了奇怪的现象。每次他试图买入股票时,股票似乎就在他的订单到达之前从他身边移走。他最终发现的是一个庞大的、隐藏的速度型掠夺性交易基础设施,它从根本上改变了市场的运作方式——而且不是向好的方向改变。
Flash Boys 不是一本主要关于投资的书——而是一部关于市场结构的调查作品。但对于任何买卖股票的投资者来说,它包含了必要知识:
核心发现是:美国股票市场分散在13个公共交易所和数十个暗池中,创造了一个环境,让拥有更快连接的公司能够看到您的订单到达一个交易所,然后在您的订单到达其他交易所之前冲到那些交易所与您进行交易。这不是假设——它每天发生数百万次,几乎在美国股票市场的每一笔交易中都在发生。
| 人物 | 角色 |
|---|---|
| Brad Katsuyama | 发现高频交易问题的 RBC 交易员 |
| Ronan Ryan | 绘制物理基础设施的电信专家 |
| Rob Park | 构建理解高频交易工具的程序员 |
| Sergey Aleynikov | 因代码盗窃被起诉的高盛程序员 |
| Haim Bodek | 曝光隐藏订单类型的前高频交易员 |
| Rich Gates | 拒绝接受操纵系统的资产管理人 |
本书以 Spread Networks 的故事开头,这家公司花费3亿美元在芝加哥(期货交易所在地)和新泽西(股票交易所数据中心所在地)之间铺设了一条尽可能直的光纤电缆。目的:将两个金融中心之间的往返通信时间缩短3毫秒。
3毫秒。3亿美元。这项投资是合理的,因为高频交易公司愿意为比竞争对手快3毫秒的优势支付巨额费用。
金融市场的速度演变:
1990年代: 人类交易员在交易所大厅
执行速度:分钟
2000年代: 电子交易,托管服务开始
执行速度:秒 → 毫秒
2005-2010: 高频交易军备竞赛加剧
执行速度:毫秒 → 微秒
2010-2014: 微波塔、中空光纤
执行速度:微秒 → 纳秒
比竞争对手慢1毫秒的成本:
估计每年损失1亿美元的贸易利润
这场军备竞赛消耗了巨大资源,
但对更广泛的经济或投资者产生了 ZERO 价值。
交易所开始提供"托管服务"——允许交易公司将其计算机物理放置在交易所的数据中心内。您的服务器离交易所的撮合引擎越近,您就能越快地接收市场数据并发送订单。交易所对靠近撮合引擎的机柜收取高价——有时距离以英尺为单位。
在 Spread Networks 的光纤电缆之后,下一个前沿是微波传输。微波信号以接近光速的速度在空气中传播,这比通过光纤电缆的光速更快(光在玻璃中会减速)。公司在芝加哥和新泽西之间建立了微波塔链,将通信时间再缩短几微秒。
Lewis 确定了高频交易公司使用的三种主要策略:
策略1:电子抢先交易
当投资者发送一个大订单在多个交易所买入股票时,高频交易公司检测到订单到达第一个交易所,然后在投资者订单到达之前冲到其他交易所买入股票。然后高频交易公司以略高的价格将这些股票卖给投资者。
电子抢先交易示例:
投资者想以50.00美元买入10,000股 XYZ
XYZ 在五个交易所报价50.00美元,每个交易所2,000股
没有高频交易时:
订单同时发送到所有5个交易所
投资者以50.00美元买入10,000股
总成本:500,000美元
有高频交易时:
订单首先到达交易所A(快了几微秒)
高频交易公司看到交易所A的买单
高频交易公司冲到交易所B、C、D、E,以50.00美元买入8,000股
高频交易公司以50.02美元将这些8,000股卖回给投资者
投资者买入:
2,000股 at 50.00美元(交易所A)
8,000股 at 50.02美元(来自其他交易所的高频交易)
总成本:500,160美元
高频交易利润:160美元(仅这一笔交易)
每天数百万笔交易 = 每年数十亿美元
策略2:回扣套利
交易所向提供流动性的公司(发布限价订单)支付回扣,向消耗流动性的公司(发送市价订单)收取费用。高频交易公司利用不同交易所回扣结构的差异,以极快的速度发布和取消订单以获取回扣,而不承担有意义的风险。
策略3:慢市场套利
当股票在一个交易所的价格发生变化时,其他交易所在反映新价格之前有一个短暂的时刻。高频交易公司通过在较慢的交易所以旧(陈旧)价格买入并在较快的交易所以新价格卖出(或反之)来利用这种延迟。
慢市场套利示例:
时间0:XYZ 在所有交易所交易价格为50.00美元
时间+1微秒:大买单到达交易所A
XYZ 价格在交易所A上涨至50.05美元
时间+1至+100微秒:
其他交易所仍显示50.00美元(陈旧价格)
高频交易公司看到交易所A的新价格
高频交易公司在交易所B、C、D、E以50.00美元买入
高频交易公司在交易所A以50.05美元卖出(或等待其他交易所更新)
无风险利润:每份0.05美元 × 数千股 = 可观金额
机会持续时间:不到100微秒
这持续不断地发生,全天,每天。
到2014年,高频交易公司约占美国股票市场交易量的50%。主要公司包括 Citadel Securities、Virtu Financial、Jump Trading、Tower Research Capital 等。Virtu Financial 巧妙地披露,在1,238个交易日中只有一天亏损——这在统计学上几乎不可能,反映了其结构性优势而非任何传统形式的技能。
暗池是经纪交易商(通常是大银行)经营的私人交易场所,买卖订单在那里撮合而不公开显示订单簿。它们最初是为了允许大型机构投资者交易大额股票而不向更广泛的市场透露其意图而创建的。
Lewis 揭示,到2010年代初,暗池已经与其原始目的相反。它们不是保护机构投资者,而是变成了高频交易公司的狩猎场:
暗池问题:
原始意图:
机构投资者想卖出100万股
在暗池中发布订单,对市场隐藏
另一家机构的买单在暗池中撮合
以公平价格执行交易,无市场影响
实际发生的事情:
机构投资者在银行的暗池中发布卖单
银行的暗池里充斥着高频交易公司(他们为获得访问权向银行付费)
高频交易公司检测到机构卖单
高频交易公司抢先交易,与该机构进行对手交易
该机构得到了比在公共交易所交易更差的价格
银行通过向高频交易公司出售访问权获利
高频交易公司通过与机构进行对手交易获利
机构每笔交易都亏损
运营暗池的银行存在巨大利益冲突:
暗池几乎不报告任何有意义的运营数据。投资者无法确定:
Lewis 将高频交易环境中的抢先交易描述为与传统抢先交易(经纪人在客户订单之前交易)根本不同。在高频交易版本中:
这是否构成法律意义上的抢先交易存在争议。Lewis 认为经济效果是相同的:高频交易公司通过在与它知道即将到来的订单进行对手交易中获利。
高频交易公司有时会向交易所涌入大量订单然后立即取消——一种称为"报价填充"的做法。这实现了多个目的:
高频交易公司放置它们打算在执行前取消的大订单,创造供应或需求的虚假印象。一家公司可能放置一个大卖单来压低价格,在较低价格买入,然后取消卖单——所有这些都在几毫秒内完成。
每日高频交易税对投资者:
保守估计的延迟套利成本:
每笔交易:每份0.01-0.02美元被高频交易提取
平均每日美国股票成交量:约70亿股
每日高频交易提取:7000万-1.4亿美元
年度高频交易提取:170亿-350亿美元
这是出现在任何交易确认单上都看不到的隐藏税。
投资者只看到他们的成交价格,而不是没有高频交易干扰他们应该得到的价格。
谁支付这笔税?
- 共同基金投资者(通过基金更差的执行)
- 养老基金受益人
- 401(k) 持有人
- 放置市价订单的个人投资者
- 任何交易股票的人
整个高频交易问题的监管背景是2007年SEC实施的 Reg NMS(国家市场系统)。Reg NMS 旨在确保投资者在所有交易所获得最佳可用价格。实际上,它将市场分散到13个交易所和数十个暗池,创造了高频交易公司利用的确切复杂性。
在 Reg NMS 之前,大多数交易发生在 NYSE 或 NASDAQ。Reg NMS 之后,买入10,000股的订单可能需要同时路由到10个不同场所。订单到达不同场所所需的时间创造了高频交易公司利用的延迟缺口。
市场碎片化:
公共交易所(13个):
NYSE, NASDAQ, BATS (现在是 Cboe BZX), BATS Y, Direct Edge A,
Direct Edge X, NYSE Arca, NYSE MKT, NASDAQ BX, NASDAQ PSX,
IEX, CHX, 等
暗池(40+个):
Credit Suisse CrossFinder, Goldman Sigma X, Morgan Stanley MS Pool,
Barclays LX, UBS ATS, 等数十个
内部化商:
在路由到交易所之前执行订单的经纪交易商
(例如 Citadel Securities, Virtu Financial)
投资者的订单必须穿越这个迷宫以找到最佳价格。
在每一步,高频交易公司都处于拦截和获利的位置。
现代市场结构的复杂性本身就是对投资者的税。市场体系越复杂,复杂参与者利用简单参与者的机会就越多。简单化会惠及投资者,但会减少交易所、高频交易公司和经纪交易商的利润。
Lewis 追踪典型零售投资者订单的旅程:
零售股票订单的旅程:
第1步:您在经纪应用程序中点击"以市价买入100股 AAPL"
第2步:您的经纪人不将订单发送到交易所。
相反,它将订单出售给"内部化商"(做市商
如 Citadel Securities 或 Virtu Financial)。经纪商收到
付款——通常每份0.001-0.004美元——用于此订单流。
第3步:内部化商以比最佳交易所价格略好
的价格执行交易(好一小部分美分)。
这种"价格改善"在法律上证明了这种安排的合理性。
第4步:内部化商通过以下方式获利:
a) 以比在交易所能实现的更宽价差进行交易
b) 使用您订单中的信息为它们自己的交易提供信息
c) 收获嵌入在订单流模式中的"alpha"
结果:
您获得的价格在技术上比交易所价格"更好"
大约每份0.001美元。但完整的情况更复杂:
内部化商从您的订单中捕获每份0.01+美元的经济价值。
您作为"价格改善"只收到其中的一小部分。
机构股票订单的旅程:
第1步:共同基金经理决定买入500,000股 XYZ
第2步:基金的交易台将订单分成更小的部分
(算法将其切成100-500股的小块)以最小化市场影响
第3步:每个小块根据算法的逻辑路由到各个交易所和暗池
第4步:在第一个交易所,高频交易公司检测到该小块:
- 它们识别出算法模式
- 它们预测更多买单即将到来
- 它们在该算法的订单到达之前冲到其他场所买入股票
第5步:当基金的算法执行了500,000股时,
价格已经对其不利变动每份0.02-0.10美元
第6步:高频交易干扰的总成本:
500,000股 × 每份0.05美元平均滑点 = 25,000美元仅这一笔交易
一个每年执行数千笔此类交易的大型基金:
25,000美元 × 1,000笔交易 = 每年2500万美元的隐藏成本
这些成本最终由基金投资者承担。
Lewis 曝光订单流支付(PFOF)模型作为根本性的利益冲突。像 Robinhood、TD Ameritrade 等经纪商每年从做市商那里收到数十亿美元,以换取将客户订单路由到它们。经纪商的激励是将订单路由到它收到最高付款的地方,而不是客户获得最佳执行的地方。
可见交易成本:
佣金:每笔交易0-10美元(许多经纪人现在为0)
监管费用:几分钱的一小部分
总可见:每笔交易约0-10美元
不可见交易成本:
买卖价差:每份0.01-0.05美元
市场影响:每份0.01-0.10美元(对于较大订单)
高频交易提取:每份0.01-0.02美元
逆向选择:可变的
执行失败的機会成本:可变的
1,000股订单的不可见总成本:30-170美元
不可见成本是可见成本的10-100倍。
"免佣金"交易并不是免费的——成本被隐藏了。
您下的每个订单都会向市场泄露信息。市价单揭示您想立即交易并愿意接受当前价格。限价单揭示您的价格预期。大订单揭示方向信念。高频交易公司实时聚合这些信息并进行交易。
交易所订单簿上显示的流动性很多不是真实的——它是由高频交易公司发布的,如果市场条件发生变化,它们会在订单执行前取消。Lewis 描述了一些情况,当某人试图对其进行交易时,显示的50,000股流动性瞬间蒸发至2,000股。
在发现高频交易公司如何利用速度优势后,Katsuyama 首先在 RBC 构建了一个名为"Thor"的工具,同时向所有交易所发送订单,时间安排使它们同时到达。这消除了高频交易公司利用的延迟优势。Thor 是有效的,但它只对 RBC 客户可用。
Katsuyama 离开 RBC 创立了投资者交易所(IEX)——一个通过中和速度优势为所有参与者公平设计的股票交易所。
IEX 的关键创新是对所有传入订单施加350微秒延迟("减速带")。这个延迟足够长,可以防止高频交易公司利用交易所之间的延迟差异,但又足够短以至于对人类交易员来说无法察觉。
IEX 减速带如何运作:
传统交易所:
高频交易订单在50微秒内到达交易所
投资者订单在200微秒内到达交易所
高频交易有150微秒优势 → 可以抢先交易
IEX 交易所:
高频交易订单在50微秒内到达交易所
+ 350微秒减速带 = 有效到达时间在400微秒
投资者订单在200微秒内到达交易所
+ 350微秒减速带 = 有效到达时间在550微秒
高频交易仍然先到达,但减速带中和了
它们用于掠夺性策略的延迟优势,因为
IEX 自己的定价由也有
350微秒延迟的系统决定——所以高频交易公司不能对其他交易所的旧报价采取行动。
物理实现:
38英里光纤电缆盘绕在一个盒子里
光在光纤中以每秒约124英里的速度传播
38英里 / 124英里/毫秒 = 约0.35毫秒 = 350微秒
| 特征 | 传统交易所 | IEX |
|---|---|---|
| 速度优势 | 通过托管服务获得奖励 | 通过减速带中和 |
| 订单类型 | 100+种对高频交易有益的复杂订单类型 | 简单、透明的订单类型 |
| 回扣 | 制造-接收模式创造扭曲激励 | 无回扣(固定费用) |
| 暗池访问 | 包含高频交易公司 | 无高频交易掠夺性活动 |
| 收入模型 | 销售速度、数据和复杂性 | 简单交易费用 |
IEX 面临着来自高频交易公司、既定交易所和从现有系统中获利的经纪交易商的巨大反对。尽管如此,它吸引了机构投资者的大量交易量,并最终于2016年获得作为注册国家证券交易所的批准。
对于大多数进行长期投资的个人投资者来说,高频交易成本在长期回报的背景下相对较小。如果您买入一只计划持有5年的股票,而您的总回报是50%,在买入和卖出时每份0.02美元的高频交易损失可以忽略不计。
对于频繁交易、在波动性股票上使用市价单或通过高周转率积极管理的基金投资的投资者,高频交易成本会显著累积。每年换手一次的基金在每笔交易中都会产生高频交易成本,这些成本从您的回报中扣除。
个人投资者的市场微观结构教训:
1. "免佣金"交易并不是免费的
您的经纪人将您的订单流出售给做市商
做市商从您的交易中获利
您通过更差的执行承担隐藏成本
2. 市价单是最昂贵的订单类型
它们保证执行但不保证价格
它们揭示您的紧迫性,这会被利用
尽可能使用限价单
3. 您看到的价格并不总是您得到的价格
显示的报价可能在您的订单到达之前消失
股票波动性越大,滑点风险越大
4. 暗池可能不符合您的利益
您的经纪人可能将您的订单路由到他们自己的暗池
暗池可能充斥着掠夺性高频交易公司
5. 大订单比较小订单更昂贵(每份)
市场影响随订单规模增加
将订单分成小块有帮助但不是万无一失的
6. 在市场开盘和收盘时交易更昂贵
波动性和高频交易活动在这些时候达到峰值
中午交易通常有更低的执行成本
策略1:使用限价单
不要: "以市价买入500股 XYZ"
使用: "以限价50.10美元买入500股 XYZ"
这设定了您将支付的最大价格。
它防止以人为的高价成交。
风险:如果价格变动,您的订单可能不成交。
策略2:减少交易频率
每笔交易都会产生高频交易成本。
长期投资者每年交易一次,支付一次高频交易成本。
积极交易者每年交易250次,支付250次高频交易成本。
抵御高频交易的最佳方式是减少交易。
策略3:避免波动时刻
市场开盘(上午9:30-10:00):价差大,波动性高
市场收盘(下午3:30-4:00):活动繁忙,动态复杂
新闻事件:价差扩大,高频交易活动飙升
最佳交易时间:中午,价差最紧
策略4:使用执行质量好的经纪人
比较执行质量报告(规则606报告)
寻找:每份价格改善,成交率
考虑路由到 IEX 或其他公平场所的经纪人
策略5:投资指数基金
指数基金用机构工具交易大额股票
它们比个人谈判更好的执行
它们的低周转率将总高频交易成本降至最低
Vanguard 尤其以执行质量著称
策略6:使用冰山/备用订单(对于较大订单)
只显示您总订单的一部分
随着显示部分成交,更多自动显示
这减少了对高频交易算法的信息泄露
对于基金经理和机构交易员:
Flash Boys 的根本教训是市场结构很重要。游戏规则——交易所如何运作,订单如何路由,谁拥有速度优势——决定结果。个人投资者无法改变市场结构,但他们可以调整自己的行为以最小化其成本。
函数 execute_trade_defensively(order):
// 第1步:确定订单特征
shares = order.quantity
urgency = order.urgency // 低、中、高
stock_volatility = get_volatility(order.symbol)
current_spread = get_bid_ask_spread(order.symbol)
// 第2步:选择订单类型
如果 urgency == "低":
order_type = "限价"
// 将限价设置在买卖价差的中间
如果 order.side == "买入":
limit_price = (bid + ask) / 2
否则:
limit_price = (bid + ask) / 2
// 接受较慢成交以获得更好价格
time_in_force = "当日" // 如果收盘前未成交则取消
否则如果 urgency == "中":
order_type = "限价"
如果 order.side == "买入":
limit_price = ask - 0.01 // 就在卖价下方
否则:
limit_price = bid + 0.01 // 就在买价上方
time_in_force = "当日"
否则: // 高紧迫性
order_type = "限价"
如果 order.side == "买入":
limit_price = ask + (0.02 * stock_volatility_factor)
否则:
limit_price = bid - (0.02 * stock_volatility_factor)
time_in_force = "IOC" // 立即或取消
// 第3步:确定时间
current_time = get_market_time()
如果 current_time < 上午10:00:
等待到上午10:00 // 避免波动开盘期
否则如果 current_time > 下午3:30:
等待到下一个交易日 上午10:00 // 避免收盘
// 第4步:处理大订单
如果 shares > daily_volume(order.symbol) * 0.01:
// 订单超过日成交量的1% — 分成小块
返回 execute_algorithmic(order, slices=10, interval="random")
// 第5步:执行
返回 submit_order(
symbol = order.symbol,
side = order.side,
quantity = shares,
type = order_type,
limit = limit_price,
time_in_force = time_in_force,
route = "IEX" 如果可用 否则 "智能路由"
)
函数 monitor_execution_quality(trades, benchmark = "中间价"):
结果 = {
total_trades: 0,
price_improvement_count: 0,
price_disimprovement_count: 0,
total_slippage: 0,
total_improvement: 0
}
对于 trades 中的每笔交易:
midpoint_at_entry = (trade.bid_at_entry + trade.ask_at_entry) / 2
如果 trade.side == "买入":
slippage = trade.fill_price - midpoint_at_entry
否则:
slippage = midpoint_at_entry - trade.fill_price
结果.total_trades += 1
如果 slippage > 0:
结果.price_disimprovement_count += 1
结果.total_slippage += slippage * trade.quantity
否则:
结果.price_improvement_count += 1
结果.total_improvement += ABS(slippage) * trade.quantity
// 汇总统计
结果.improvement_rate = 结果.price_improvement_count / 结果.total_trades
结果.net_cost = 结果.total_slippage - 结果.total_improvement
结果.avg_slippage_per_share = 结果.net_cost / sum(t.quantity for t in trades)
日志("执行质量报告:")
日志(" 分析的交易数:{结果.total_trades}")
日志(" 价格改善率:{结果.improvement_rate:.1%}")
日志(" 净执行成本:${结果.net_cost:.2f}")
日志(" 每份平均滑点:${结果.avg_slippage_per_share:.4f}")
如果 结果.avg_slippage_per_share > 0.02:
警报("执行质量较差——考虑更换经纪人或路由")
返回结果
函数 estimate_annual_trading_costs(portfolio, turnover_rate):
// 可见成本
commission_per_trade = portfolio.broker_commission
trades_per_year = portfolio.positions * 2 * turnover_rate
// (2倍是因为每次换手涉及一次卖出和一次买入)
visible_costs = commission_per_trade * trades_per_year
// 不可见成本
avg_spread = average_spread(portfolio.holdings)
spread_cost = avg_spread / 2 // 每次交易支付一半价差
avg_market_impact = estimate_impact(
portfolio.avg_position_size,
portfolio.avg_daily_volume
)
hft_extraction = 0.01 // 每份约0.01美元,保守估计
invisible_cost_per_share = spread_cost + avg_market_impact + hft_extraction
total_shares_traded = sum(
position.shares * turnover_rate * 2
对于 portfolio.holdings 中的 position
)
invisible_costs = invisible_cost_per_share * total_shares_traded
// 税成本(通常最大组成部分)
如果 turnover_rate > 1:
tax_rate = 短期税率 // 普通收入
否则:
tax_rate = 长期税率 // 较低的资本利得税率
estimated_gains = portfolio.total_value * portfolio.expected_return * turnover_rate
tax_costs = estimated_gains * tax_rate
total_costs = visible_costs + invisible_costs + tax_costs
cost_as_pct = total_costs / portfolio.total_value
日志("年度交易成本估算:")
日志(" 可见(佣金):${visible_costs:.0f}")
日志(" 不可见(价差+影响+高频交易):${invisible_costs:.0f}")
日志(" 税拖累:${tax_costs:.0f}")
日志(" 总计:${total_costs:.0f} (占投资组合的{cost_as_pct:.2%})")
日志("")
日志(" 对长期回报的影响:")
日志(" 当前费率下的10年成本:${total_costs * 10:.0f}")
日志(" 复合拖累:{cost_as_pct:.2%} 每年")
返回 total_costs
"美国股票市场,全球资本主义的标志性市场,被操纵了。"
"普通投资者不知道,当他或她下一个订单时,高频交易公司已经支付了首先看到它的权利,正在抢先交易。"
"速度的价值是由交易所凭空创造的——它们从前非营利公用事业转变为营利企业,现在有了销售它的激励。"
"股票市场不再是一个投资者直接与寻求资本的公司匹配的地方。它是一个投机者与其他投机者匹配的地方,原始投资者的利益是次要的。"
"暗池的创建是为了给机构投资者一个安全的地方进行交易而不被抢先交易。它们变成了相反——机构投资者经常被抢先交易的地方。"
"抢银行最好的方式是拥有一家。抢投资者最好的方式是拥有一个交易所。"
"速度优势不是像优越情报或更好信息那样的自然优势。它是一种购买的优势,纯粹而简单。"
"Brad Katsuyama 问了一个应该在他之前很多人都想到的问题:如果市场应该是公平的,为什么每次您尝试交易时,它都会立即对您不利?"
"问题不在于市场是复杂的。问题在于复杂性是有利可图的——除了投资者之外,对每个人都有利。"
"50%的股票市场交易现在由高频交易公司进行,这些公司持有头寸的平均时间不是年,不是月,不是天,不是小时,不是分钟——而是秒的分数。"
"IEX 交易所建立在一个简单想法之上:股票市场应该为投资者服务,而不是与他们为敌。"
"个人投资者减少高频交易对其投资组合影响的最重要一件事就是减少交易。"
Flash Boys 曝光了掠夺性高频交易的隐藏基础设施,并迫使人们对市场公平性进行公开反思。对于个人投资者,实际教训是明确的:使用限价单,减少交易频率,投资于低周转率指数基金或集中价值投资组合,并了解"免佣金"交易带有隐藏成本。抵御操纵市场结构的最佳方式是尽可能少地与其互动——而这恰好也是长期投资回报的最佳策略。
(文件结束——共880行)