Strategia kupowania podczas paniki rynkowej
Analiza danych dotyczących sentymentu rynkowego. Sprawdzenie, czy kupowanie w okresach strachu generuje wyższe stopy zwrotu niż rynkowe średnie.
Najczęściej cytowaną zasadą Warren Buffetta jest: bądź przestraszony, gdy inni są chciwi, i bądź chciwy, gdy inni są przestraszeni. Zasada ta funkcjonuje jako powszechnie przyjęta mądrość. Jest to również twierdzenie, które można poddać weryfikacji: jeśli nastroje rynkowe można zmierzyć, można zestawić i porównać stopy zwrotu następujące po najbardziej przestraszonych i najbardziej chciwych momentach. Niniejsza strona przeprowadza taki test, wykorzystując wskaźnik strachu i chciwości zbudowany na podstawie sentymentu setek tysięcy artykułów informacyjnych.
Budowa wskaźnika strachu na podstawie wiadomości
Każdy artykuł w naszym strumieniu wiadomości posiada przypisany tag sentymentu dla danej spółki (pozytywny, negatywny lub neutralny), nadawany w momencie publikacji. Codzienne liczenie tych tagów w całym rynku pozwala przekształcić wiadomości w codzienny odczyt nastrojów. Sieciowy sentyment netto dla danego dnia to liczba tagów pozytywnych minus liczba tagów negatywnych, podzielona przez ich sumę: odczyt bliski górnej granicy oznacza optymistny, chciwy rynek, natomiast odczyt bliski dolnej granicy jest najbliższym odpowiednikiem strachu w tych danych.
Przed przedstawieniem jakichkolwiek stóp zwrotu należy uwzględnić dwa ograniczenia. Tagi sentymentu istnieją tylko od 2024 roku, więc mierzalne okno czasowe wynosi około dwóch i pół roku, a nie pełny cykl rynkowy. Ponadto tagi wykazują tendencję do bycia optymistnymi.
Dokładny kod SQL dla każdej liczby
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 yearW ostatnim roku artykuły o negatywnym wydźwięku stanowiły około 19.1% wszystkich otagowanych materiałów, a wzorzec ten utrzymuje się w całym badanym okresie. Dzień pełen strachu w tej próbie to dzień o najniższym poziomie optymizmu, a nie dzień otwaricznej paniki. To jest materiał wyjściowy. Testem jest to, co stało się na rynku w następnej kolejności.
Test: co nastąpiło po strachu i chciwości
Dla każdego dnia z odczytem nastrojów zmierzono stopę zwrotu indeksu S&P 500 w ciągu kolejnych 5, 20 i 60 dni handlowych. Dni te podzielono na dziesiątą najbardziej przestraszoną dziesiątą część, dziesiątą najbardziej chciwą dziesiątą część oraz wszystkie pozostałe, a następnie wyliczono średnie stopy zwrotu wewnątrz każdej grupy.
Dokładny kod SQL dla każdej liczby
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)W ciągu dwóch miesięcy, które nastąpiły po tych dniach, dni pełne strachu wystąpiły znacznie wcześniej niż dni pełne chciwości. S&P 500 osiągnął średnio 6.35% w ciągu 60 dni handlowych po odczycie ekstremalnego strachu, w porównaniu do 2.85% po odczycie ekstremalnej chciwości, podczas gdy dla zwykłych dni wynosiła ona 4.03%. Ranking jest zgodny z maksymą: rynek pełen strachu oferował lepszy punkt wejścia, a rynek pełen chciwości był gorszy.
W krótkim terminie obraz ten ulega rozmyciu. W ciągu kolejnych pięciu dni grupy strachu i chciwości różnią się od siebie o ułamek procenta, a w ciągu dwudziestu dni grupa chciwości zyskuje niewielką przewagę. Rozdźwięk pojawia się dopiero w punkcie dwóch miesięcy. Każda grupa ekstremalna obejmuje tylko 45 dni, a średnią kształtuje krótka seria zdarzeń.
Dlaczego jest to wskazówka, a nie werdykt
Trzy czynniki sprawiają, że wynik ten nie jest dowodem ostatecznym.
Okno czasowe to rynek wzrostowy. Każda grupa odnotowała dodatnią 60-dniową stopę zwrotu, a porównanie zestawia dobry wynik z lepszym, a nie zysk ze stratą. Zasada mająca chronić przed chciwością w pobliżu szczytu nie ma tutaj szczytu, względem którego mogłaby zostać przetestowana.
Dni pełne strachu mają również tendencję do występowania po tym, jak rynek już spadł, gdy kumulują się negatywne doniesienia. Odbicie z takich punktów pasuje do prostej powrotu do średniej tak samo dobrze, jak do jakiejkolwiek prognozy zawartej w samym sentymencie. Rozróżnienie tych dwóch zjawisk wymaga czegoś więcej niż tylko zbioru dat.
Próba jest również mało znacząca. Dwa i pół roku, przy 45 dniach w każdej ekstremum, to wąska podstawa dla twierdzenia dotyczącego każdego rynku w każdej epoce. Pojedynczy odcinek od 2024 do 2026 roku to tylko jeden wariant, a nie cała populacja.
To, co potwierdza to ćwiczenie, jest mniejsze i bardziej użyteczne niż sama maksyma: twierdzenie to jest mierzalne. Fraza, która zazwyczaj funkcjonuje jako cytat, może zostać zamieniona na liczbę, zweryfikowana względem danych rynkowych i ponownie przeliczona wraz ze wzrostem rejestru sentymentu. Kierunek, na ten moment, jest zgodny z opinią Buffetta.
FAQ
Czy kupowanie, gdy inni się boją, faktycznie działa?
W tej próbie z lat 2024-2026 po najbardziej przestraszonych dniach nastąpiła wyższa średnia 60-dniowa stopa zwrotu S&P 500 (6.35%) niż po najbardziej chciwych dniach (2.85%). W krótszych oknach czasowych różnica niemal znika, a próba jest krótka; stanowi to wsparcie kierunkowe, a nie dowód.
Jak zbudowany jest wskaźnik strachu i chciwości?
Na podstawie tagów sentymentu przypisanych do każdego artykułu w naszym strumieniu wiadomości: liczba pozytywnych artykułów danego dnia minus liczba artykułów negatywnych, podzielona przez ich sumę. Niski odczyt oznacza rynek o negatywnym wydźwięku, wysoki odczyt – rynek optymistyczny.
Dlaczego test zaczyna się w 2024 roku?
Tagi sentymentu w strumieniu wiadomości zaczynają się w 2024 roku, co ogranicza mierzalne okno czasowe do około dwóch i pół roku.
Czy jest to porada inwestycyjna?
Nie. Jest to pomiar danych historycznych z określonymi ograniczeniami: krótkim oknem czasowym, tagami o skrzywieniu optymistycznym, rynkiem wzrostowym oraz możliwym powrotem do średniej, a nie strategia lub prognoza.
Każda liczba tutaj pochodzi z zapytania zapisanego poniżej. Rozwiń dowolny panel, aby zweryfikować liczby sentymentu i stopy zwrotu, lub przeprowadź ten sam test samodzielnie na terminalu Strasmore. Aby dowiedzieć się więcej o rynkowej niepewności, sprawdź implikowaną zmienność; aby zobaczyć rzeczywiste zdarzenie wywołujące strach w rejestrze, sprawdź krach COVID w marcu 2020.