Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor · · Updated 2026-07-25

When Market Dey Fear, You Fit Buy? Data Don Talk

Warren Buffett talk say make you dey greedy when others dey fearful. We build fear gauge from real news sentiment, then test whether fearful days really beat the market returns.

Warren Buffett most-quoted rule of thumb na to dey fear when other people dey greedy, and to dey greedy when other people dey fearful. E dey travel as settled wisdom. E still be, for principle, one claim wey you fit test: if market-wide mood fit dey measured, the returns wey follow the most fearful and the most greedy moments fit dey lined up and compared. This page dey run that test, using fear-and-greed gauge wey dem build from the sentiment of hundreds of thousands of news articles.

Building fear gauge from the news

Every article for our news tape carry per-company sentiment tag, positive or negative or neutral, dem attach am when the article publish. To count those tags across the whole market each day dey turn the news into daily mood reading. One day net sentiment here na the positive count minus the negative count, over the total of the two: reading wey dey near the top of im range na upbeat, greedy tape, and reading wey dey near the bottom na the closest thing this data hold to fear.

Two limits belong up front, before any return. The sentiment tags dey exist only from 2024 onward, so the measurable window na about two and a half years, not full market cycle. And the tags lean upbeat.

QueryNews sentiment coverage by year: how many tagged insights dey, and the share wey downbeat
The exact SQL behind every number
SELECT toString(toYear(published_utc)) AS year, count() AS tagged_insights,
       round(100.0 * countIf(JSONExtractString(ins,'sentiment')='negative') / count(), 1) AS negative_pct
FROM global_markets.stocks_news ARRAY JOIN insights AS ins
WHERE JSONExtractString(ins,'sentiment') != ''
GROUP BY year ORDER BY year

Downbeat articles run near 19.1% of the tagged total for the most recent year, and the pattern hold across the window. Fearful day for this sample na the least-upbeat tape wey dey available, not day of outright panic. That one na the raw material. The test na wetin the market do next.

The test: wetin follow fear and greed

For every day wey get mood reading, dem measure the S&P 500 return over the next 5, 20, and 60 trading days. Dem then split the days into the most fearful tenth, the most greedy tenth, and everything in between, and dem average the forward returns within each group.

QueryAverage S&P 500 forward return after fearful, greedy, and ordinary days (2024-2026)
The exact SQL behind every number
WITH sent AS (
    SELECT toDate(published_utc) AS d,
           (countIf(s='positive') - countIf(s='negative')) / (countIf(s='positive') + countIf(s='negative')) AS net
    FROM (SELECT published_utc, JSONExtractString(ins,'sentiment') AS s
          FROM global_markets.stocks_news ARRAY JOIN insights AS ins
          WHERE JSONExtractString(ins,'sentiment') != '')
    GROUP BY d HAVING countIf(s='positive') + countIf(s='negative') >= 20
),
spyd AS (
    SELECT toDate(toTimeZone(window_start,'America/New_York')) AS d,
           argMax(toFloat64(close), toTimeZone(window_start,'America/New_York')) AS c
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker='SPY' AND window_start >= '2024-01-01'
      AND (toHour(toTimeZone(window_start,'America/New_York'))*60 + toMinute(toTimeZone(window_start,'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY d
),
spy AS (
    SELECT d, c, leadInFrame(c,5) OVER w AS c5, leadInFrame(c,20) OVER w AS c20, leadInFrame(c,60) OVER w AS c60
    FROM spyd WINDOW w AS (ORDER BY d ASC ROWS BETWEEN CURRENT ROW AND 60 FOLLOWING)
),
j AS (
    SELECT s.net AS net, (spy.c5/spy.c-1)*100 AS f5, (spy.c20/spy.c-1)*100 AS f20, (spy.c60/spy.c-1)*100 AS f60
    FROM sent s INNER JOIN spy ON s.d = spy.d WHERE spy.c60 > 0
),
qt AS (SELECT quantile(0.1)(net) AS p10, quantile(0.9)(net) AS p90 FROM j)
SELECT multiIf(net <= (SELECT p10 FROM qt), 'Extreme fear (least upbeat)',
               net >= (SELECT p90 FROM qt), 'Extreme greed (most upbeat)',
               'In between') AS market_mood,
       count() AS days,
       round(avg(f5),2)  AS fwd_5d_pct,
       round(avg(f20),2) AS fwd_20d_pct,
       round(avg(f60),2) AS fwd_60d_pct
FROM j GROUP BY market_mood
ORDER BY multiIf(market_mood='Extreme fear (least upbeat)',0, market_mood='In between',1, 2)

Over the two months wey follow, the fearful days come in well ahead of the greedy ones. The S&P 500 average 6.35% over the 60 trading days after one extreme-fear reading, against 2.85% after one extreme-greed reading, with ordinary days in between at 4.03%. The ranking match the maxim: the fearful tape na the better entry, and the greedy tape na the worse one.

Up close the picture blur. Over the next five days the fearful and greedy groups sit within fraction of one percent of each other, and over twenty days the greedy group edge slightly ahead. The separation open only at the two-month mark. Each extreme group hold just 45 days, and small run of episodes carry the average.

Why this na clue, not verdict

Three things hold the result short of proof.

The window na rising market. Every group post positive 60-day return, and the comparison set good outcome against better one, not gain against loss. Rule wey mean to protect against greed near top no get top to test against here.

The fearful days also tend to arrive after the market don already fall, when downbeat coverage cluster. Bounce from those points fit simple mean reversion as neatly as e fit any foresight for the sentiment itself. To sort the two apart need more than scatter of dates.

And the sample thin. Two and a half years, with 45 days for each extreme, na narrow base for claim about every market for every era. Single stretch of 2024 through 2026 na one draw, not the population.

Wetin the exercise settle dey smaller and more useful than the maxim itself: the claim dey measurable. Line wey usually dey travel as quotable phrase fit turn into number, audited against the tape, and re-run as the sentiment record grow. The direction, for now, na Buffett own.

FAQ

Does buying when others dey fearful actually work?

For this 2024-2026 sample the most fearful days follow with higher average 60-day S&P 500 return (6.35%) than the most greedy days (2.85%). Over shorter windows the gap nearly close, and the sample short; this stand as directional support rather than proof.

How dem build the fear-and-greed gauge?

From the per-article sentiment tags for our news feed: each day positive articles minus im negative ones, over their total. Low reading na downbeat tape, high reading na upbeat one.

Why the test start for 2024?

The sentiment tags for the news feed begin for 2024, wey set the measurable window at about two and a half years.

Na investment advice this?

No. E na measurement of past data with stated limits, short window, upbeat-skewed tags, rising market, and possible mean reversion, not strategy or forecast.


Every figure here come from the stored query beneath am. Expand any panel to audit the sentiment counts and the forward returns, or run the same test yourself for the Strasmore terminal. For related way to read market anxiety, see implied volatility; for real fear event for the record, see the COVID crash of March 2020.

#market data#investing#news sentiment#warren buffett