Warren Buffett strategie: de data over angst
Onderzoek naar de stelling dat u moet kopen wanneer anderen bang zijn, gebaseerd op een fear gauge uit nieuws sentiment en historische rendementen.
De meest geciteerde vuistregel van Warren Buffett is om bang te zijn wanneer anderen hebzuchtig zijn, en hebzuchtig wanneer anderen bang zijn. Dit wordt beschouwd als algemeen bekende wijsheid. In principe is het ook een toetsbare stelling: als de stemming in de markt gemeten kan worden, kunnen de rendementen die volgden op de meest angstige en de meest hebzuchtige momenten op een rij worden gezet en vergeleken. Deze pagina voert die test uit, met behulp van een fear-and-greed gauge die is opgebouwd uit het sentiment van honderdduizenden nieuwsartikelen.
Een fear gauge bouwen op basis van het nieuws
Elk artikel op onze nieuwstape krijgt bij publicatie een sentimenttag per bedrijf: positief, negatief of neutraal. Door deze tags dagelijks over de gehele markt te tellen, wordt het nieuws een dagelijkse lezing van de stemming. Het netto sentiment van een dag is hier het aantal positieve tags minus het aantal negatieve tags, gedeeld door het totaal van beide: een waarde nabij de bovenkant van het bereik duidt op een optimistische, hebzuchtige tape, terwijl een waarde nabij de onderkant het dichtst bij angst komt wat deze data betreft.
Twee beperkingen moeten vooraf worden vermeld, nog voordat er naar rendementen wordt gekeken. De sentimenttags bestaan pas vanaf 2024, waardoor het meetbare venster ongeveer tweeënhalf jaar is, en niet een volledige marktcyclus. Daarnaast zijn de tags neigend naar optimisme.
De exacte SQL achter elk getal
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 yearNegatieve artikelen vormden in het meest recente jaar ongeveer 19.1% van het totaal aantal getagde artikelen, en dit patroon houdt stand gedurende het gehele venster. Een angstige dag in deze steekproef is de minst optimistische tape die beschikbaar is, niet een dag van pure paniek. Dat is de grondstof. De test is wat de markt daarna deed.
De test: wat volgde op angst en hebzucht
Voor elke dag met een stemming is het rendement van de S&P 500 gemeten over de volgende 5, 20 en 60 handelsdagen. De dagen zijn vervolgens verdeeld in het meest angstige tiende deel, het meest hebzuchtige tiende deel en alles daartussenin, waarbij de forward returns per groep zijn gemiddeld.
De exacte SQL achter elk getal
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)In de twee maanden die volgden, kwamen de angstige dagen ruim vóór de hebzuchtige dagen. De S&P 500 behaalde een gemiddeld rendement van 6.35% over de 60 handelsdagen na een extreme-fear lezing, tegenover 2.85% na een extreme-greed lezing, waarbij gewone dagen tussenin op 4.03% zaten. De rangorde komt overeen met de maxim: de angstige tape was de betere instap, en de hebzuchtige tape de slechtere.
Van dichtbij vervaagt het beeld. Over de volgende vijf dagen liggen de angstige en hebzuchtige groepen binnen een fractie van een procent van elkaar, en over twintig dagen loopt de hebzuchtige groep licht voor. De scheiding ontstaat pas bij de grens van twee maanden. Elke extreme groep bevat slechts 45 dagen, en een kleine reeks episodes bepaalt het gemiddelde.
Waarom dit een aanwijzing is, geen vonnis
Drie factoren verhinderen dat het resultaat als bewijs geldt.
Het venster betreft een stijgende markt. Elke groep rapporteerde een positief 60-dagen rendement, en de vergelijking stelt een goed resultaat tegenover een beter resultaat, niet een winst tegenover een verlies. Een regel die bedoeld is om te beschermen tegen hebzucht nabij een top, heeft hier geen top om tegen te testen.
De angstige dagen hebben ook de neiging om pas op te treden nadat de markt al is gedaald, wanneer negatieve berichtgeving zich concentreert. Een bounce vanaf die punten past net zo goed bij eenvoudige mean reversion als bij enige vooruitziendheid in het sentiment zelf. Het onderscheiden van beide fenomenen vereist meer dan een verspreiding van datums.
En de steekproef is dun. Tweeënhalf jaar, met 45 dagen in elk extreem, is een smalle basis voor een stelling over elke markt in elk tijdperk. Een enkele periode van 2024 tot en met 2026 is één trekking, niet de gehele populatie.
Wat deze oefening wel bevestigt, is kleiner en nuttiger dan de maxim zelf: de stelling is meetbaar. Een zin die meestal als citaat wordt gebruikt, kan worden omgezet in een getal, gecontroleerd tegen de tape en opnieuw worden uitgevoerd naarmate de sentimenthistorie groeit. De richting is vooralsnog die van Buffett.
FAQ
Werkt het kopen wanneer anderen bang zijn daadwerkelijk?
In deze steekproef van 2024-2026 volgden op de meest angstige dagen een hoger gemiddeld 60-dagen rendement van de S&P 500 (6.35%) dan op de meest hebzuchtige dagen (2.85%). Over kortere vensters sluit het gat bijna, en de steekproef is kort; dit dient als directionele ondersteuning in plaats van als bewijs.
Hoe wordt de fear-and-greed gauge opgebouwd?
Vanuit de sentimenttags per artikel in onze nieuwsfeed: het aantal positieve artikelen van een dag minus het aantal negatieve artikelen, gedeeld door het totaal. Een lage waarde is een negatieve tape, een hoge waarde een optimistische tape.
Waarom begint de test in 2024?
De sentimenttags in de nieuwsfeed beginnen in 2024, wat het meetbare venster op ongeveer tweeënhalf jaar stelt.
Is dit beleggingsadvies?
Nee. Het is een meting van historische data met expliciete beperkingen: een kort venster, naar optimisme neigende tags, een stijgende markt en mogelijke mean reversion; het is geen strategie of prognose.
Elk getal hier komt uit de onderliggende query. Klap elk paneel uit om de sentimentaantallen en de forward returns te controleren, of voer de test zelf uit op de Strasmore terminal. Voor een gerelateerde manier om marktspanning te lezen, zie implied volatility; voor een echt angstmoment in de historie, zie de COVID-crash van maart 2020.