Funktioniert „Sell in May and Go Away“?
„Sell in May and Go Away“ im Test über zwei Jahrzehnte S&P-500-Saisons: Wie groß die Sommerlücke ist und was der saisonale Wechsel praktisch kostet.
„Sell in May and go away“ ist die bekannteste Kalenderregel am Aktienmarkt: Ende April verkaufen, im Sommer Liquidität halten und Ende Oktober zurückkaufen. Gemessen an den Kursen eines S&P-500-Trackers vom letzten Aprilschluss 2005 bis zum letzten Aprilschluss 2026 erzielt die Periode von November bis April im Durchschnitt tatsächlich eine höhere Rendite als die Periode von Mai bis Oktober. Der Unterschied ist real, aber kleiner, als das Sprichwort nahelegt. Auch die Sommerperiode erzielt im Durchschnitt einen Gewinn. Genau daran scheitert die Regel als Handelsplan.
Was die Regel besagt und wie Sie sie testen
Die Redewendung geht auf eine alte Londoner Gewohnheit zurück: Nach den Frühjahrsrennen verließ man die Stadt und kehrte im Herbst zurück. In ihrer modernen, überprüfbaren Form ist sie eine Umschaltregel mit zwei Zeitpunkten. Sie halten einen breit gefassten Aktienindex vom letzten Handelstag im Oktober bis zum letzten Handelstag im April. In den übrigen sechs Monaten halten Sie keine Position.
Für den Test benötigen Sie zwei Angaben, die der Börsenspruch nicht liefert: eine Kursreihe und ein festgelegtes Zeitfenster. Jede nachfolgende Zahl basiert auf SPY, dem ältesten ETF auf den S&P 500, bewertet anhand von Minuten-Balken aus den regulären Handelszeiten in der Tabelle global_markets.delayed_stocks_minute_aggs, vom Schlusskurs am letzten Handelstag im April 2005 bis zum Schlusskurs am letzten Handelstag im April 2026. Die Monatsrendite entspricht hier dem letzten Kurs aus den regulären Handelszeiten im Verhältnis zum Kurs des Vormonats und berücksichtigt ausschließlich Kursveränderungen. Dividenden werden weiter unten in einem eigenen Abschnitt behandelt. Wie Monatsrenditen gemessen werden erläutert, warum diese Unterscheidung das Ergebnis verändert.
Funktioniert „Sell in May and go away“? Die Bilanz von 2005 bis 2026
Das exakte SQL hinter jeder Zahl
WITH monthly AS (
SELECT toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) AS month_start,
argMax(close, window_start) AS month_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2005-04-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-04-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY month_start
)
SELECT toYear(apr_m.month_start) AS year,
round(100 * (toFloat64(oct_m.month_close) / toFloat64(apr_m.month_close) - 1), 2) AS may_oct_pct,
round(100 * (toFloat64(apr_next.month_close) / toFloat64(oct_m.month_close) - 1), 2) AS nov_apr_pct
FROM monthly AS apr_m
INNER JOIN monthly AS oct_m ON oct_m.month_start = addMonths(apr_m.month_start, 6)
INNER JOIN monthly AS apr_next ON apr_next.month_start = addMonths(apr_m.month_start, 12)
WHERE toMonth(apr_m.month_start) = 4
ORDER BY yearJeder Punkt ordnet einen Sommer dem darauffolgenden Winter zu. Das Diagramm umfasst 21 vollständige Paare. Es beginnt mit dem Sommer 2005 und endet mit dem Winter, der im April 2026 endete.
Die beiden Linien weichen in den meisten einzelnen Jahren voneinander ab und stimmen im schlechtesten Jahr überein. Zwischen Ende April und Ende Oktober 2008 verzeichnete die Sommerhälfte -29.81%, den stärksten Rückgang in der gesamten Reihe. Der darauffolgende Winter verzeichnete -10.03%. Wer die Position im April verkaufte, entging einem starken Rückgang und stieg anschließend für die letzte Abwärtsbewegung wieder ein. Kalenderregel und Kursverlust passten nur während der Hälfte der Strecke zusammen.
Hat sich die Sommerlücke seit 2015 abgeschwächt?
Es geht bei der Faustregel um Durchschnittswerte. Entscheidend ist daher der Zeitraum, auf dem diese Durchschnittswerte beruhen. Die Aufteilung im Jahr 2015 ergibt zwei annähernd gleich lange Zeiträume, die nach derselben Methode berechnet wurden.
Das exakte SQL hinter jeder Zahl
WITH monthly AS (
SELECT toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) AS month_start,
argMax(close, window_start) AS month_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2005-04-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-04-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY month_start
),
pairs AS (
SELECT toYear(apr_m.month_start) AS season_year,
toFloat64(oct_m.month_close) / toFloat64(apr_m.month_close) - 1 AS may_oct,
toFloat64(apr_next.month_close) / toFloat64(oct_m.month_close) - 1 AS nov_apr
FROM monthly AS apr_m
INNER JOIN monthly AS oct_m ON oct_m.month_start = addMonths(apr_m.month_start, 6)
INNER JOIN monthly AS apr_next ON apr_next.month_start = addMonths(apr_m.month_start, 12)
WHERE toMonth(apr_m.month_start) = 4
),
tagged AS (
SELECT may_oct,
nov_apr,
arrayJoin(['All seasons 2005-2025',
if(season_year <= 2014, 'First half 2005-2014', 'Second half 2015-2025')]) AS era
FROM pairs
)
SELECT era,
count() AS season_count,
round(100 * avg(may_oct), 2) AS avg_may_oct_pct,
round(100 * avg(nov_apr), 2) AS avg_nov_apr_pct,
round(100 * (avg(nov_apr) - avg(may_oct)), 2) AS winter_minus_summer_pct,
countIf(may_oct > 0) AS summers_positive
FROM tagged
GROUP BY era
ORDER BY eraÜber alle 21 Saisons erzielte der Zeitraum von Mai bis Oktober durchschnittlich 3.88%, während der Zeitraum von November bis April auf 6.06% kam. Daraus ergibt sich ein Abstand von 2.18 Prozentpunkten. Dieser Abstand ist die gesamte Grundlage der Regel. Ein Blick auf die Sommerspalte zeigt: 16 dieser Sommer endeten höher, als sie begonnen hatten. Wer im Durchschnitt aussetzte, verpasste daher eher einen Kursgewinn als einen Verlust.
Die beiden Zeiträume unterscheiden sich. Im früheren Block betrug der Abstand 4.84 Punkte, im späteren -0.24. In populären Darstellungen wird häufig eine Lücke genannt, ohne die zugrunde liegenden Jahre anzugeben. Genau diese Jahre sind aber entscheidend. Jede saisonale Statistik ist eine Aussage über einen bestimmten Abschnitt der Vergangenheit. Welcher Abschnitt betrachtet wird, hängt von der Person ab, die die Statistik anführt.
Ist es wirklich ein August- und September-Effekt?
Sechs Monate sind ein grobes Maß. Die Aufteilung des Kalenderjahres in einzelne Monate zeigt, ob das Sommerfenster durchgehend schwach ist oder ob ein Teil den gesamten Effekt verursacht.
Das exakte SQL hinter jeder Zahl
WITH monthly AS (
SELECT toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) AS month_start,
argMax(close, window_start) AS month_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2005-04-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-04-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY month_start
),
month_returns AS (
SELECT m1.month_start AS month_start,
100 * (toFloat64(m1.month_close) / toFloat64(m0.month_close) - 1) AS ret_pct
FROM monthly AS m1
INNER JOIN monthly AS m0 ON m0.month_start = addMonths(m1.month_start, -1)
)
SELECT formatDateTime(month_start, '%b') AS label,
count() AS readings,
round(avg(ret_pct), 2) AS avg_return_pct,
round(quantileDeterministic(0.5)(ret_pct, cityHash64(month_start)), 2) AS median_return_pct,
countIf(ret_pct > 0) AS positive_readings
FROM month_returns
GROUP BY label
ORDER BY min(toMonth(month_start))Die Schwäche konzentriert sich auf den September. Er erzielte im Durchschnitt -0.75% und schloss in 12 von 21 Jahren höher, bei einem Median von 0.38%. Der August erzielte im Durchschnitt 0.28%. Der Juli, der in der Mitte des Zeitraums liegt, den ein Verkäufer auslässt, erzielte im Durchschnitt 2.63%. Der Oktober, der letzte Monat vor dem Wiedereinstieg gemäß der Regel, erzielte im Durchschnitt 0.97%.
Der Effekt in diesem Zeitfenster ist eng begrenzt: eine schwache Phase im Spätsommer, während die angrenzenden Monate dem übrigen Kalenderjahr weitgehend ähneln. Ein Ausstieg Ende April, um den September zu vermeiden, lässt auch Mai, Juni, Juli und August aus.
What the switch actually costs
The seasonal gap is a gross number. A rule has to survive its own frictions.
Das exakte SQL hinter jeder Zahl
WITH monthly AS (
SELECT toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) AS month_start,
argMax(close, window_start) AS month_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2005-04-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-04-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY month_start
),
pairs AS (
SELECT toYear(apr_m.month_start) + 1 AS year,
toFloat64(oct_m.month_close) / toFloat64(apr_m.month_close) AS summer_ratio,
toFloat64(apr_next.month_close) / toFloat64(oct_m.month_close) AS winter_ratio
FROM monthly AS apr_m
INNER JOIN monthly AS oct_m ON oct_m.month_start = addMonths(apr_m.month_start, 6)
INNER JOIN monthly AS apr_next ON apr_next.month_start = addMonths(apr_m.month_start, 12)
WHERE toMonth(apr_m.month_start) = 4
)
SELECT year,
round(exp(sum(log(summer_ratio * winter_ratio)) OVER (ORDER BY year)), 2) AS buy_and_hold_growth,
round(exp(sum(log(winter_ratio)) OVER (ORDER BY year)), 2) AS winter_only_growth
FROM pairs
ORDER BY yearA dollar held through every season from the end of April 2005 grew to $6.21 by the end of April 2026. The same dollar in the market only from November through April, idle the rest of the time, grew to $3.14. Both lines are price only with nothing deducted, which flatters the switching rule. Here is what the chart leaves out.
- Two trades every year, in every one of the 21 seasons. The ticket is free at most brokers now. The bid ask spread paid on each round trip is not.
- Tax. In a taxable account the April sale realizes whatever gain built up since November. A November to April holding period runs under a year by construction, which places the gain at short-term rates for a US taxpayer.
- Idle cash. The winter-only line credits the sidelined money with zero. A real holder would park it, and where to park idle cash covers the instruments people use for that.
- Dividends, which the next panel prices out.
Das exakte SQL hinter jeder Zahl
SELECT toYear(ex_dividend_date) AS year,
round(sumIf(cash_amount, toMonth(ex_dividend_date) >= 5 AND toMonth(ex_dividend_date) <= 10), 3) AS may_oct_dividends_usd,
round(sumIf(cash_amount, toMonth(ex_dividend_date) < 5 OR toMonth(ex_dividend_date) > 10), 3) AS nov_apr_dividends_usd
FROM global_markets.stocks_dividends
WHERE ticker = 'SPY'
AND cash_amount > 0
AND ex_dividend_date >= toDate('2005-01-01')
AND ex_dividend_date <= toDate('2025-12-31')
GROUP BY year
ORDER BY yearSPY's ex-dividend dates land in March, June, September and December, so two of the four fall inside the six months a seller sits out. In 2025, $3.592 per share of distributions carried a May to October ex-date, against $3.689 in the other six months. The two columns track each other across the whole chart. Sitting out half the calendar forgoes roughly half the fund's income every year, on top of whatever the price does in those months. The ex-dividend date is the cutoff that decides who gets paid.
One more cost carries no line item. Index returns arrive in clusters, and missing the best days puts numbers on what a handful of absent sessions does to a long-run balance. Six months out of every year is a lot of absent sessions. That is the same arithmetic behind dollar cost averaging as a discipline about time in the market rather than timing.
Warum eine bekannte Kalenderregel Skepsis verdient
Zwölf Monate lassen 4.095 nichtleere Möglichkeiten zu, eine Teilmenge für ein Investment auszuwählen. Durchsucht man diesen Raum anhand einer einzigen Kursentwicklung, wird zwangsläufig etwas auffällig aussehen. Das ist eine Eigenschaft der Suche.
„Sell in May“ hat gegenüber einer erst vergangene Woche aus historischen Daten abgeleiteten Regel einen ehrlichen Vorteil: Die Regel war lange vor Beginn dieses Beobachtungszeitraums bekannt. Daher dienen die auf dieser Seite betrachteten Jahre als Test außerhalb der Stichprobe und nicht als Ergebnis einer Anpassung an die Daten. Der Test ergibt einen moderaten Abstand, der sich auf einen Monat konzentriert. Er gehört zu einer Umschichtungsregel, die über denselben Zeitraum hinter einer Buy-and-Hold-Strategie zurückbleibt. Look-ahead-Bias zeigt, auf welche Weise ein Backtest seine Antwort unbemerkt im Voraus aus den Daten lernt. Kalenderregeln sind dafür das klassische Beispiel: Die Monate werden ausgewählt, nachdem die Renditen bereits bekannt sind.
Häufig gestellte Fragen
Funktioniert „Sell in May and go away“ noch?
Bei SPY-Kursen von April 2005 bis April 2026 erzielte der Zeitraum von November bis April durchschnittlich 6.06% gegenüber 3.88% von Mai bis Oktober. Der saisonale Abstand bleibt damit über die gesamte Stichprobe bestehen. Auch die Sommerhälfte erzielte im Durchschnitt einen Gewinn. 16 der 21 Sommerperioden endeten höher als sie begonnen hatten.
Welche Monate sind tatsächlich schwach?
In diesem Zeitraum konzentrierte sich die Schwäche auf den September. Er erzielte durchschnittlich -0.75% und endete in 12 von 21 Jahren höher. Der Juli, ein weiterer Monat, in dem die Regel nicht investiert ist, erzielte im selben Zeitraum durchschnittlich 2.63%.
Ist der Verkauf im Mai besser als Kaufen und Halten?
Nicht in dieser Stichprobe. Ein Dollar, der seit Ende April 2005 durchgehend investiert war, wuchs bis April 2026 auf $6.21. Beim saisonalen Wechselmodell, das nur im Winter investiert ist, waren es $3.14. In diesem Vergleich sind weder Transaktionskosten noch Steuern oder Dividenden berücksichtigt.
Was passiert mit Dividenden, wenn Sie im Mai verkaufen?
Die Ex-Dividend-Dates eines Fonds pausieren im Sommer nicht. Zwei der vier vierteljährlichen Ex-Dates von SPY liegen im Zeitraum von Mai bis Oktober. Wer an einem Ex-Date nicht im Fonds investiert ist, erhält diese Ausschüttung nicht.
Ist ein saisonales Muster dasselbe wie eine Prognose?
Nein. Ein historischer Durchschnitt über 21 Saisons beschreibt, was in einem festgelegten Zeitraum passiert ist. Die einzelnen Jahre streuen stark um diesen Durchschnitt, wie das erste Diagramm zeigt. Auch die Wahl des Zeitraums ist eine Annahme.
Hinter jedem Panel steht eine gespeicherte Abfrage mit der zugehörigen SQL-Abfrage. Ändern Sie den ticker, verschieben Sie den Zeitraum und prüfen Sie am Strasmore-Terminal, ob der saisonale Abstand bestehen bleibt.