Algorithmic Trading Tips 11.

SELL IN MAY AND GO AWAY?

SO ERKENNEN SIE SAISONALE MUSTER AN DEN KAPITALMÄRKTEN.

Alle Jahre wieder wird die alte Börsenweisheit „Sell in May and go away“ in den Finanzmedien ausgiebig diskutiert. Aber stimmt diese Börsenweisheit überhaupt und kann diese simple Saison-Strategie überhaupt funktionieren, wenn sie doch jeder kennt? Mit Tradesignal können Trader, Portfoliomanager und Analysten diese und andere saisonale Kursanomalien schnell und sicher auf Herz und Nieren prüfen und in ihre Anlageentscheidungen mit einbeziehen.

SOMMERSCHWÄCHE EMPIRISCH BELEGT.

Wenngleich schon im Jahr 1964 in der Financial Times vom „Sell in may“-Effekt die Rede war, dauerte es Jahrzehnte bis auch die akademische Welt mit der Erforschung dieses Phänomens begann, wonach Aktien in den Sommermonaten gemieden werden sollten. Die wohl umfassendste Untersuchung zu diesem Thema wurde im Jahr 2002 veröffentlicht. Die Studie können Sie hier downloaden. Das Forscherduo Sven Bouman und Ben Jacobsen nahm hierbei insgesamt 37 internationale Aktienindizes unterschiedlicher Industrie- und Schwellenländer unter die Lupe und berechnete die jeweiligen Performance- und Risikokennzahlen für den Zeitraum November bis April (Winterperiode) und den Zeitraum Mai bis Oktober (Sommerperiode), um diese anschließend miteinander zu vergleichen.

Die Ergebnisse fielen eindeutig aus: Bei 36 der 37 untersuchten Aktienmärkte konnte ein signifikanter „Sell in May“-Effekt eindeutig nachgewiesen werden, d.h. die Performance eines Buy-and-Hold-Anlegers fiel schlechter aus als die des Anlegers, der keine Aktien in den Monaten Mai bis einschließlich Oktober hielt und erst im November wieder einstieg, um wiederum bis Ende April investiert zu bleiben. Auch unter Risikoaspekten entpuppte sich die Winterperiode als bessere Wahl gegenüber der Sommerperiode. So fiel die Standardabweichung bei Anwendung der Sell-in-MayStrategie im Vergleich zur passiven Buy-and-Hold-Variante ausnahmslos niedriger aus.

 

SEASONAL INDIKATOR IM PRAXISTEST.

Die Erkenntnisse liefern also überzeugende Argumente für die Beachtung des altehrwürdigen Börsen-Bonmots. Um sicherzustellen, inwieweit das saisonale Muster auch heute noch greift, sollte jeder Trader eigene Analysen anstellen. Eine Möglichkeit ist hierbei die Anwendung eines Indikators, welcher die bequeme Visualisierung eben solcher saisonalen Muster im Handumdrehen ermöglicht.

Abbildung 1 zeigt das saisonale Muster des Dow Jones Industrial Average auf Basis der letzten 10, 20, 30 und 40 Börsenjahre. Das Ergebnis bestätigt die Ausbildung eines wichtigen Hochs im Zeitraum Ende April und Mitte Mai sowie die anschließende Seitwärts- bzw. Abwärtsbewegung der Aktienmärkte in den Sommermonaten. Gleichzeitig ist die Ausbildung eines saisonalen Tiefs typischerweise auf Anfang Oktober zu taxieren. Interessant ist dabei aber auch die Tatsache, dass dieses Muster im Zeitverlauf keine großen Abweichungen erfahren hat.

ABB. 1: SAISONALES MUSTER BEIM DOW JONES INDUSTRIAL AVERAGE.

Das alte Sprichwort „Sell in May and go away“ spiegelt sich in der Realität wider. Zwischen Mai und September schnitt der Aktienmarkt deutlich schwächer ab als zwischen Oktober und April.

 

HANDELSSTRATEGIE-CODE IN EQUILLA.

Ob man diese Informationen als Filter für andere Handelssignale oder zur Adjustierung der Positionsgröße an den saisonalen Trend verwenden möchte – die Umsetzung der Sell in May-Strategie in einen Programmcode und die anschließende Auswertung ist bei Tradesignal ebenfalls ein Kinderspiel. Hierzu muss lediglich der nachfolgende Code kopiert, als neue Handelsstrategie eingefügt und zur späteren Verwendung abgespeichert werden. Wie das genau funktioniert, zeigen wir Ihnen wie immer in der Video-Ausgabe der Trading Tips.

Die nachfolgenden Programmzeilen enthalten die Anweisungen für den Long-Einstieg jeweils Anfang Oktober und den Ausstieg Anfang Mai. Selbstverständlich lassen sich weitere Komponenten wie zum Beispiel ein Trendfilter oder ein Initial Stop implementieren – für den vorliegenden Zweck wurde darauf bewusst verzichtet.

Schauen wir uns nun an, wie sich die Kapitalkurve dieses primitiven Saisonal-Ansatzes in der Vergangenheit beim DAX entwickelt hätte. Abbildung 2 bestätigt eindrucksvoll, dass das Fernbleiben vom Aktienmarkt über die Sommermonate per Saldo eine gute Entscheidung darstellte. Anhand der unteren Kapitalkurve erkennt man, dass diese einfache Handelsregel ein passives Buy-and-Hold-Investment im DAX in den letzten 20 Jahren hinsichtlich der Performance, aber auch auf Basis der Volatilität geschlagen hat.

Meta:

Synopsis(​​ "Use this dashboard in a Watch List or in a Market Scanner. It displays conditions of 4 indicators (RSI, MACD, Slow Stochastics, Bollinger Bands) simultaneously. If the​​ indicator is in a buy condition, the cell is colored green. If it is in a sell condition the cell is colored red. The conditions are as shown below under the 'conditions' section."​​ ),

SubChart(​​ False​​ ),

ShortCode(​​ "SBDB"​​ );

 ​​ ​​ ​​ ​​ ​​​​ 

Input:​​ 

P_RSI(14),P_MACD_fast(12),P_MACD_slow(26),P_MACD_trigger(9),P_BB(20),P_SS(3),

 ​​ ​​ ​​​​ greenColor(​​ ColorDarkGreen​​ ),redColor(​​ DarkRed​​ ),​​ FlatColor(​​ transparent​​ ),lookback(1),realtime(true),

Period(​​ NumericSimple​​ );

 

Variables:

Draw_all(true),

color,

result,

farbe,

summe,

rsivalue,

triggervalue,

bblower,

bbupper,

slow_k,

diff,

displace;

if​​ realtime​​ then​​ displace=0​​ else​​ displace=1;

summe=0;

 

rsiValue​​ =​​ RSIClassic(​​ close,​​ P_RSI );

color​​ =​​ Iff( rsiValue[displace]​​ >​​ 70,​​ redColor,​​ Iff( rsiValue[displace]​​ <​​ 30,​​ greenColor,​​ FlatColor ) );

summe​​ =​​ Iff( rsiValue[displace]​​ >​​ 70,​​ summe-1,​​ Iff( rsiValue[displace]​​ <​​ 30,​​ summe+1,​​ summe ) );

if​​ Draw_all​​ then Draw( rsiValue[displace],​​ "RSIC",​​ Default,​​ Default,​​ Default,​​ color );

 

result​​ =​​ MACD(​​ Close,​​ P_MACD_Fast,​​ P_MACD_Slow );

triggerValue​​ =​​ XAverage( result,​​ P_MACD_trigger );

color​​ =​​ Iff(( result[displace]​​ >​​ 0​​ ),​​ greenColor,​​ Iff( result[displace]​​ <​​ 0​​ ,​​ redColor,​​ FlatColor ) );

summe​​ =​​ Iff((result[displace]​​ >​​ 0​​ ),​​ summe+1,​​ Iff(result[displace]​​ <​​ 0​​ ,​​ summe-1,​​ summe​​ ) );

if​​ Draw_all​​ then Draw( result[displace],​​ "MACD",​​ Default,​​ Default,​​ Default,​​ color );

 

bblower​​ =​​ BollingerBand(​​ close,​​ P_BB, -2​​ );

bbupper​​ =​​ BollingerBand(​​ close,​​ P_BB,​​ 2​​ );

color​​ =​​ Iff(​​ close​​ <​​ bblower[displace],​​ greenColor,​​ Iff(​​ close​​ >​​ bbupper[displace],​​ redColor,​​ FlatColor ) );

summe​​ =​​ Iff(​​ close​​ <​​ bblower[displace],​​ summe+1,​​ Iff(​​ close​​ >​​ bbupper[displace],​​ summe-1,​​ summe ) );

if​​ Draw_all​​ then Draw( bblower[displace],​​ "BB_low",​​ Default,​​ Default,​​ Default,​​ color );

if​​ Draw_all​​ then Draw(​​ bbupper[displace],​​ "BB_upper",​​ Default,​​ Default,​​ Default,​​ color );

 

 

slow_k​​ =​​ SlowK( P_SS );

color​​ =​​ Iff( slow_k[displace]​​ <​​ 20,​​ greenColor,​​ Iff( slow_k[displace]​​ >​​ 80,​​ redColor,​​ FlatColor ) );

summe​​ =​​ Iff( slow_k[displace]​​ <​​ 20,​​ summe+1,​​ Iff(​​ slow_k[displace]​​ >​​ 80,​​ summe-1,​​ summe ) );

if​​ Draw_all​​ then Draw( slow_k[displace],​​ "Stoch K",​​ Default,​​ Default,​​ Default,​​ color );

 

 

if​​ summe​​ >3​​ then​​ farbe=ColorForestgreen;

if​​ summe​​ >2​​ and​​ summe​​ <=3​​ then​​ farbe=green;

if​​ summe​​ >0​​ and​​ summe​​ <=2​​ then​​ farbe=ColorGreen;

if​​ summe​​ =0​​ then​​ farbe=white;

if​​ summe​​ <0​​ and​​ summe​​ >=-2​​ then​​ farbe=ColorFireBrick;

if​​ summe​​ <-2​​ then​​ farbe=ColorMaroon;​​ 

 

​​ if​​ Draw_all​​ then Draw( summe,​​ "Sum",​​ Default,​​ Default,​​ Default,​​ farbe );

 

diff=summe-summe[lookback];

 

if​​ diff​​ >3​​ then​​ farbe=ColorForestgreen;

if​​ diff​​ >2​​ and​​ diff​​ <=3​​ then​​ farbe=green;

if​​ diff​​ >0​​ and​​ diff​​ <=2​​ then​​ farbe=ColorGreen;

if​​ diff​​ =0​​ then​​ farbe=white;

if​​ diff​​ <0​​ and​​ diff​​ >=-2​​ then​​ farbe=ColorFireBrick;

if​​ diff​​ <-2​​ then​​ farbe=ColorMaroon;​​ 

 

if​​ Draw_all​​ then Draw(​​ diff,​​ "Difference",​​ Default,​​ Default,​​ Default,​​ farbe );

 

CODE 1: SELL IN MAY-HANDELSSTRATEGIE.

Der Code enthält die Anweisung zum Long-Einstieg Anfang Mai, der Exit erfolgt Anfang Oktober.

 

Diese Aussage trifft im Übrigen auch für die US-Indizes wie S&P 500 oder Dow Jones zu. Dabei entpuppte sich der Long-Ausstieg per Ende April gerade in Bärenmarktphasen als hervorragendes Timing-Signal. Exemplarisch sei hier auf die starken Einbrüche im Sommer 1990, 2001, 2002 und 2008 verwiesen. Der Großteil der dort aufgetretenen Drawdowns konnte durch das Befolgen der Sell in May-Strategie umgangen werden.

Eines darf an dieser Stelle natürlich nicht verschwiegen werden: Kein saisonales Muster ist in Beton gemeißelt! Während das Auslassen der Sommermonate in starken Abwärtsphasen von Vorteil ist, zeigt sich in bestimmten Bullenmarktjahren die Kehrseite der Medaille. So verpassten die Anhänger des Sell in May-Effekts in den Jahren 1993, 1997 sowie 2005 und 2012 signifikante Kursgewinne.

ABB. 2: DAX MIT SELL IN MAY-HANDELSSTRATEGIE.

Die einfache Sell in May-Strategie hat in den letzten 20 Jahren einen passiven Buy-and-Hold-Ansatz beim DAX deutlich geschlagen.

 

WAS SAGT DER PERFORMANCE-BERICHT?

Kommen wir abschließend zur Analyse der Ergebnisse. Mit einem Klick auf die Performancestatistik erhalten Trader, Portfoliomanager und Analysten bei Tradesignal einen detaillierten Einblick in Dutzende Kennzahlen wie zum Beispiel:

  • Nettogewinn/-verlust
  • Trefferquote
  • Profit Faktor
  • Maximaler Drawdown

 

Für den DAX lässt sich der Sell in May-Ansatz wie folgt zusammenfassen: Seit 1991 wurden 22 Trades im Rahmen der Sell in May-Strategie durchgeführt – 19 davon schlossen mit einem positiven Ergebnis ab. Ohne Berücksichtigung von Transaktionskosten wurde insgesamt ein Nettogewinn von rund 12000 Punkten generiert, der größte Drawdown betrug rund 3100 Punkte. Abbildung 3 zeigt einen Auszug aus dem Performancereport – dieses Mal für den Dow Jones seit dem Jahr 1950.

Auch hier kommt der saisonale Effekt deutlich zum Vorschein, schließlich beträgt die Trefferquote seit dem Jahr 1950 stattliche 75 Prozent. Eine wichtige Botschaft hat die Auswertung allerdings auch parat: Die Sell in May-Strategie hat Ende der siebziger Jahre gleich vier Fehlsignale in Folge generiert – ein Beweis dafür, dass der saisonale Ansatz keineswegs jedes Jahr funktionieren muss.

ABB. 3: AUSWERTUNG FÜR DOW JONES INDUSTRIAL AVERAGE.

Die einfache Sell in May-Strategie hat seit 1950 eine Trefferquote von fast 75 Prozent erzielt.

 

FAZIT.

Die Gründe für den Sell in May- bzw. Halloween-Effekt lassen sich bis heute nicht genau ergründen, aber eines ist nicht von der Hand zu weisen: In der Vergangenheit hat sich diese sehr einfache Strategie, jeweils Anfang Mai aus- und Anfang Oktober wieder einzusteigen, mehrheitlich bewährt. Allerdings muss erwähnt werden, dass die Beurteilung dieser saisonalen Strategie sehr stark vom Anlageinstrument – sprich: von der Wahl des Aktienindex – und vom Anlagezeitraum abhängig ist.
Im Grunde genommen handelt es sich bei dieser Kursanomalie um eine Art Verlustbegrenzungsmechanismus, der aber – falls der Markt über den Sommer hinweg ansteigt – auch seinen Preis hat. Mit Tradesignal lassen sich nahezu alle Kursmuster und Handelsansätze in klare, regelbasierte Strategien übersetzen und testen, sodass Fehlentscheidungen eliminiert werden. Das Team steht Ihnen hierbei gerne unterstützend zur Seite.