efficient market hypothesis meaning
Efficient market hypothesis say prices carry known info. See di three forms, and how weak form measure for five years of US stock data.
Efficient market hypothesis na di claim say one security im price don already carry di information wey dey available about am, wey leave any remaining pattern too small and too short-lived to trade profitably after costs. Eugene Fama organize di idea into three forms for one 1970 review paper: weak, semi-strong, and strong. Each form name different body of information wey don already dey inside di price, and each one rule out different way of making money. Dis page state wetin di three forms forbid, then measure di weakest among dem against five years of daily prices for household names.
Wetin be di three forms of market efficiency?
Di forms dey nest inside each oda. Everything wey weak form claim, semi-strong form claim am as well, plus more.
- Weak form: past prices and past volume don already dey inside di price. Chart shapes, trend rules, and momentum filters wey dem build only out of price history carry no dependable edge under dis version.
- Semi-strong form: every piece of public information don already dey inside di price, including filings, guidance, analyst notes, and economic releases. Reading public document after dem don publish am carry no edge under dis version, because di price adjust while everybody else dey read di same document.
- Strong form: all information dey inside di price, private material included. Almost nobody defend dis version. Insider trading law dey exist on di premise say non-public information worth real money.
Di hypothesis na statement about dependability, not about perfection. Nobody dey claim say prices always correct. Di claim na say di errors hard to identify in advance and hard to harvest once trading costs come out.
Weak form: yesterday move fit predict today?
Di cleanest test of weak form na di correlation between one day return and di next. Strongly positive figure go mark trends wey persist. Strongly negative figure go mark reliable snap-backs. Any of dem go be tradable. Di panel below measure lag-one autocorrelation of daily returns for twelve household names over di five years from July 2021 through June 2026.
The exact SQL behind every number
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 DESCDi largest reading in absolute terms belong to WMT at 0.057, and di smallest belong to KO at -0.005. Every name inside di set land within few hundredths of zero across roughly 1252 trading days each. Correlation of dat size account for well under one percent of di variation for di next day return. Signs alternate across di twelve names with no pattern wey survive inspection, wey be di weak form dey do exactly wetin e say e go do.
Wetin follow big single-day move?
Correlation na average over every session, and average fit hide behaviour for di edges. Sorting each day inside di same sample by di previous day move, then measuring wetin di next day do, dey check whether extreme sessions behave different from ordinary ones.
The exact SQL behind every number
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_moveDi bottom bucket, sessions wey come after move of 1. down 3% or more, dem follow am by rising day 52.9% of di time across 664 observations. Di top bucket, wey follow move of 5. up 3% or more, dem follow am by rising day 53.9% of di time. Di ordinary middle bucket, 3. flat, within 1%, come in at 53.1%. All five buckets sit within few points of coin flip, and di median next-day return for every bucket na fraction of one percent: 0.175% after di sharpest declines, 0.186% after di sharpest advances.
Rule wey buy after 3% drop and rule wey buy after 3% jump go don meet almost di same distribution of next days. Di gap between di buckets smaller than typical bid-ask spread plus commission for retail-sized order, wey be di practical form wey weak form take: di pattern must be bigger than di cost of trading am before e become edge at all.
Semi-strong form: wetin di picking record show
Di evidence wey dem most often cite for semi-strong form no be correlation. E be di long-running finding say majority of active portfolios dey lag plain index over multi-year windows. Simple version of dat arithmetic dey inside basket of large, heavily covered US companies wey dem measure year by year against di S&P 500 tracker.
The exact SQL behind every number
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.yrAcross di 5 calendar years wey dem measure, less than half of di 34 names beat di index for four of dem. Di share run from 32.4% for 2024 up to 58.8% for 2022, di one down year inside di window, when di index return -20% against median name at -13.3%. For 2024 di index return 24% while di median name inside di basket return 12.7%.
None of dis prove di semi-strong form. Basket of large caps no be di whole market, one tracker no be every benchmark, and five years na short sample. Wetin e show na di arithmetic wey make di hypothesis hard to wave away. Index na weighted average of im own members, wey make beating am minority outcome by construction, and di research and trading costs of trying come out of di minority share. Related view of how uneven dose member returns be dey appear for di year-by-year spread between di index column and di median column above.
Di paradox for di center
Sanford Grossman and Joseph Stiglitz publish di sharpest objection for 1980, and e be objection wey worth stating honestly. Information expensive to gather. If prices don already hold all of am, nobody go pay to gather any, and dat gathering na di very mechanism wey put information inside prices. Perfectly efficient market no fit sit for equilibrium. Wetin fit exist na market efficient enough say di profit from research roughly cover wetin di research cost.
Dat weaker version na di one wey most practitioners dey work with, and e fit di data above better dan di absolute version. E describe market where edges dey exist, stay small, and dem compete am away at di speed of di money wey dey hunt dem.
Documented anomalies dey sit alongside di hypothesis rather dan demolish am. Di low-volatility anomaly among di best measured: calmer stocks don historically keep pace with wilder ones at fraction of di risk, pattern wey di standard risk-and-return model no accommodate. Momentum, value, and small-company effects get similar histories. Each one dem measure over decades, each one get long stretches where e vanish, and several narrow after publication.
Wetin di hypothesis mean for reader
Di practical reading narrow, and e no be forecast about any market. Under any version of di hypothesis, di inputs wey investor actually control na costs, taxes, diversification, and behaviour, and none of dose four require predicting anything. Fee dey compound against portfolio for di same arithmetic wey return dey compound for am.
Two habits fit dis framing without asking anyone to forecast. Dollar-cost averaging na scheduling rule rather dan prediction, wey be part of why e survive for market where prediction hard. And di temperament behind buying when oda people dey fearful na rule about di investor own conduct, not claim about where prices go next.
Di hypothesis also give standard for judging strategy claims. Any pattern wey look profitable for paper must clear trading costs, taxes, and di survivorship wey dem build inside di backtest before e count as edge. Most no clear dat bar. Di ones wey clear am tend to be small, and dem tend to shrink as more capital arrive.
FAQ
Wetin be di three forms of di efficient market hypothesis?
Weak form hold say past prices and volume don already dey inside di price, wey rule out edges from chart history alone. Semi-strong form hold say all public information don already dey inside di price. Strong form hold say private information dey inside di price too, and e be di version wey almost nobody defend.
Di efficient market hypothesis mean say stock prices always correct?
No. E claim say mispricings hard to identify in advance and hard to capture after costs, not say dem never occur. Bubbles and crashes dey compatible with di hypothesis as long as investor no fit don reliably exploit dem at di time.
Who come up with di efficient market hypothesis?
Eugene Fama set out di three-form framework for 1970 review paper and share di 2013 Nobel Memorial Prize for Economic Sciences. Di mathematical roots go back further, to Louis Bachelier 1900 work on price randomness and Paul Samuelson 1965 paper on properly anticipated prices.
Wetin be di strongest criticism of di efficient market hypothesis?
Di Grossman-Stiglitz paradox of 1980: if prices don already contain every piece of information, nobody go dey paid to collect information, and collection na wetin put information inside prices. Behavioural research add second line of criticism about documented, persistent investor errors.
Anybody fit beat di market?
Some investors and funds don post long records above dia benchmarks. Di hypothesis no forbid dat outcome; e argue say separating skill from luck take far more data dan most track records contain, and say di average dollar for active management still dey lag after fees.
Every panel above na stored query with im SQL attached. Open one to check di arithmetic, or run di same autocorrelation test on di names wey you follow for di Strasmore terminal.