Strasmore Research
学习 Matt Connor作者: Matt Connor

有效市场假说 三种形式 弱式检验

有效市场假说认为价格已包含已知信息。了解其三种形式,以及基于五年美国股票数据对弱式进行的检验。

有效市场假说认为,证券价格已经包含了关于它的可用信息,这使得任何剩余的模式都太小、太短暂,在扣除成本后无法通过交易获利。尤金·法玛在1970年的一篇综述论文中将这一观点组织成三种形式:弱式、半强式和强式。每种形式都指出了已包含在价格中的不同信息集合,并排除了不同的获利方式。本页阐述了这三种形式所禁止的内容,然后以五年间家喻户晓的股票每日价格数据,对其中最弱的弱式进行了检验。

市场效率的三种形式是什么?

这三种形式是嵌套的。弱式所主张的一切,半强式也同样主张,并且更多。

  • 弱式:过去的价格和成交量已经包含在价格中。在这种形式下,仅由价格历史构建的图表形态、趋势规则和动量过滤器不具备可靠的预测能力。
  • 半强式:所有公开信息都已包含在价格中,包括公司文件、业绩指引、分析师报告和经济数据发布。在这种形式下,在公开文件发布后阅读它不具备任何优势,因为当其他人都在阅读同一份文件时,价格已经调整完毕。
  • 强式:所有信息都包含在价格中,包括未公开的内幕信息。几乎没有人支持这种形式。内幕交易法的存在前提就是,非公开信息具有真实价值。

该假说陈述的是关于可靠性,而非关于完美性。没有人声称价格总是正确的。其主张是,错误很难提前识别,并且在扣除交易成本后很难从中获利。

弱式:昨天的走势能预测今天吗?

对弱式最直接的检验是今日回报与昨日回报之间的相关性。一个强正相关值标志着持续的趋势。一个强负相关值则标志着可靠的反弹。任何一种情况都是可交易的。下图展示了从2021年7月到2026年6月这五年间,十二只家喻户晓的股票每日回报的一阶滞后自相关性。

查询十二只知名个股日收益率的一阶自相关:2021年7月至2026年6月
每个数字背后的完整 SQL
WITH daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
           argMax(toFloat64(close), window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY','AAPL','MSFT','KO','JNJ','XOM','JPM','WMT','NVDA','TSLA','PG','HD')
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2021-07-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, dt
),
returns AS (
    SELECT ticker, dt,
           close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY dt) - 1 AS ret
    FROM daily
),
paired AS (
    SELECT ticker, ret,
           lagInFrame(ret) OVER (PARTITION BY ticker ORDER BY dt) AS prev_ret
    FROM returns
    WHERE ret IS NOT NULL AND ret > -0.5 AND ret < 0.5
)
SELECT ticker,
       count() AS trading_days,
       round(corr(ret, prev_ret), 3) AS lag1_autocorrelation,
       round(abs(corr(ret, prev_ret)), 3) AS abs_autocorrelation
FROM paired
WHERE prev_ret IS NOT NULL
GROUP BY ticker
ORDER BY abs_autocorrelation DESC
Run this yourself

绝对值最大的读数属于WMT,为0.057;最小的属于KO,为-0.005。该集合中的每只股票在大约1252个交易日内,其数值都落在零附近的几个百分点之内。这种规模的相关性仅能解释次日回报变动的不到百分之一。这十二只股票的正负号交替出现,没有任何经得起检验的模式,这正是弱式所描述的情况。

大幅单日波动之后会发生什么?

相关性是所有交易日的平均值,而平均值可能会掩盖极端情况下的行为。将同一样本中的每一天按前一日的涨跌幅进行分组,然后测量次日的表现,这可以检验极端交易日是否与普通交易日表现不同。

查询各类行情后的次日表现:按前日涨跌划分的次日结果,同十二只个股
每个数字背后的完整 SQL
WITH daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
           argMax(toFloat64(close), window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY','AAPL','MSFT','KO','JNJ','XOM','JPM','WMT','NVDA','TSLA','PG','HD')
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2021-07-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, dt
),
returns AS (
    SELECT ticker, dt,
           close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY dt) - 1 AS ret
    FROM daily
),
paired AS (
    SELECT ticker, ret * 100 AS ret_pct,
           lagInFrame(ret) OVER (PARTITION BY ticker ORDER BY dt) * 100 AS prev_pct
    FROM returns
    WHERE ret IS NOT NULL AND ret > -0.5 AND ret < 0.5
)
SELECT multiIf(prev_pct <= -3, '1. down 3% or more',
               prev_pct <= -1, '2. down 1 to 3%',
               prev_pct < 1,  '3. flat, within 1%',
               prev_pct < 3,  '4. up 1 to 3%',
               '5. up 3% or more') AS prior_day_move,
       count() AS observations,
       round(median(ret_pct), 3) AS next_day_median_pct,
       round(100 * countIf(ret_pct > 0) / count(), 1) AS next_day_up_share_pct
FROM paired
WHERE prev_pct IS NOT NULL
GROUP BY prior_day_move
ORDER BY prior_day_move
Run this yourself

最低的分组,即前一日涨跌幅为1. down 3% or more之后的交易日,在664个观测值中,次日上涨的概率为52.9%。最高的分组,即前一日涨跌幅为5. up 3% or more之后的交易日,次日上涨的概率为53.9%。中间普通的分组,即3. flat, within 1%,次日上涨的概率为53.1%。所有五个分组的概率都接近抛硬币的50%,并且每个分组中次日回报的中位数都只有零点几个百分点:在最大跌幅之后为0.175%,在最大涨幅之后为0.186%。

一个在下跌3%后买入的规则,与一个在上涨3%后买入的规则,所面临的次日回报分布几乎相同。各分组之间的差距小于典型的零售订单买卖价差加上佣金,这正是弱式的实际表现形式:模式必须大于交易它的成本,才能构成真正的优势。

半强式:选股记录说明了什么

最常被引用来支持半强式的证据并非相关性。而是长期以来的发现:在多年期的时间窗口内,大多数主动管理型投资组合的表现落后于一个简单的指数。一个简单的算术版本体现在一组大型、被广泛覆盖的美国公司股票中,这些股票每年与标普500指数追踪基金进行比较。

查询指数与其成分股对比:2021至2025历年,34只大盘股篮子
每个数字背后的完整 SQL
WITH daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
           argMax(toFloat64(close), window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY','AAPL','MSFT','NVDA','AMZN','GOOGL','META','TSLA','JPM','XOM','JNJ','WMT','PG','KO','PEP','HD','MRK','LLY','COST','CVX','ORCL','CSCO','INTC','VZ','MCD','NKE','DIS','CAT','HON','TXN','AMD','NFLX','MO','LMT','UNH')
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2021-01-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2025-12-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, dt
),
per_year AS (
    SELECT ticker, toYear(dt) AS yr,
           argMin(close_px, dt) AS first_px,
           argMax(close_px, dt) AS last_px
    FROM daily
    GROUP BY ticker, yr
),
perf AS (
    SELECT yr, ticker, (last_px / first_px - 1) * 100 AS ret_pct FROM per_year
),
bench AS (
    SELECT yr, ret_pct AS index_pct FROM perf WHERE ticker = 'SPY'
)
SELECT toString(perf.yr) AS year,
       round(any(bench.index_pct), 1) AS index_return_pct,
       round(median(perf.ret_pct), 1) AS median_stock_return_pct,
       countIf(perf.ticker != 'SPY') AS stocks_measured,
       round(100 * countIf(perf.ticker != 'SPY' AND perf.ret_pct > bench.index_pct)
             / countIf(perf.ticker != 'SPY'), 1) AS pct_beating_index
FROM perf
INNER JOIN bench ON perf.yr = bench.yr
GROUP BY perf.yr
ORDER BY perf.yr
Run this yourself

在测量的5个日历年份中,有四年里,34只股票中跑赢指数的不到一半。这一比例从2024年的32.4%到2022年的58.8%不等,2022年是该窗口期内唯一一个下跌的年份,当时指数回报为-20%,而股票中位数回报为-13.3%。在2024年,指数回报为24%,而该篮子中股票的中位数回报为12.7%。

这些都不能证明半强式。一组大盘股并非整个市场,一个追踪基金也并非所有基准,五年时间也是一个短样本。但它确实展示了使该假说难以被忽视的算术逻辑。一个指数是其自身成分股的加权平均值,这使得跑赢它在结构上就是少数结果,而试图跑赢所需的研究和交易成本又会侵蚀这少数结果。关于这些成分股回报分布不均的另一种视角,体现在上表中指数列与中位数列之间逐年扩大的差距。

核心悖论

桑福德·格罗斯曼和约瑟夫·斯蒂格利茨在1980年提出了最尖锐的反对意见,这是一个值得坦诚陈述的反对意见。信息收集成本高昂。如果价格已经包含了所有信息,就没有人会花钱去收集信息,而正是这种收集行为将信息注入价格。一个完全有效的市场无法处于均衡状态。可能存在的是一个足够有效的市场,使得研究带来的利润大致能覆盖研究成本。

这种较弱的版本是大多数从业者所接受的,并且它比绝对版本更符合上述数据。它描述了一个市场,其中优势确实存在,但规模很小,并且会随着追逐它们的资金的速度而被竞争掉。

有记录的市场异象与假说并存,而非将其推翻。低波动率异象是研究最充分的异象之一:历史上,波动较小的股票以远低于标准风险-回报模型所预测的风险水平,取得了与波动较大的股票相似的回报。动量、价值和小公司效应也有类似的历史记录。每个异象都经过了数十年的测量,每个都有长期消失的时期,并且有几个在发表后效应减弱。

该假说对投资者的意义

实际意义很窄,并且它并非对任何市场的预测。在该假说的任何版本下,投资者真正能控制的输入是成本、税收、分散投资和行为,而这四项都不需要预测。费用对投资组合的复利效应,与回报对投资组合的复利效应,在算术上是相同的。

两种习惯符合这种框架,且无需任何人进行预测。定投策略是一种时间安排规则而非预测,这也是它能在难以预测的市场中存续的部分原因。而在他人恐惧时买入背后的心态,是关于投资者自身行为的一种规则,而非对价格未来走向的断言。

该假说也为评判策略主张提供了一个标准。任何在纸面上看起来有利可图的模式,在成为真正的优势之前,都必须扣除交易成本、税收以及回测中固有的幸存者偏差。大多数模式都无法通过这一检验。那些能通过的往往规模很小,并且随着更多资本的涌入而趋于缩小。

常见问题

有效市场假说的三种形式是什么?

弱式认为过去的价格和成交量已包含在价格中,这排除了仅凭图表历史获得优势的可能性。半强式认为所有公开信息都已包含在价格中。强式认为内幕信息也已包含在价格中,这是几乎没有人支持的形式。

有效市场假说是否意味着股票价格总是正确的?

不是。它声称错误定价很难提前识别,并且在扣除成本后很难捕捉,而非它们从不发生。泡沫和崩盘与该假说并不矛盾,只要投资者在当时无法可靠地利用它们获利。

谁提出了有效市场假说?

尤金·法玛在1970年的一篇综述论文中提出了三种形式的框架,并因此分享了2013年诺贝尔经济学奖。其数学根源可以追溯到更早,包括路易斯·巴舍利耶1900年关于价格随机性的研究,以及保罗·萨缪尔森1965年关于合理预期价格的论文。

对有效市场假说最强烈的批评是什么?

1980年的格罗斯曼-斯蒂格利茨悖论:如果价格已经包含了所有信息,就没有人会因为收集信息而获得报酬,而收集信息正是将信息注入价格的过程。行为金融学研究则增加了第二条批评路线,涉及有记录的、持续存在的投资者错误。

有人能战胜市场吗?

一些投资者和基金确实取得了长期超越其基准的业绩记录。该假说并不禁止这种结果;它认为,将技能与运气区分开来需要的数据量远超大多数业绩记录所包含的,并且主动管理中的平均每单位资金在扣除费用后仍然落后。


上方的每个图表都是一个存储的查询,并附有其SQL代码。打开一个来检查其计算过程,或者在Strasmore终端上对你关注的股票运行相同的自相关性测试。

#efficient market hypothesis#market efficiency#emh#investing theory#market data