Bei mir hat heute wieder mal der Boulevard-Indikator ausgeschlagen, also die Erkenntnis, dass man sich von Aktien verabschieden sollte, wenn in der Boulevardpresse zur Investition in Aktien aufgerufen wird. Ein Beispiel hierfür sei folgender Artikel vom Manager Magazin:
Der Dax notiert bei knapp 10.000 Punkten. Höchste Zeit, sich von einigen Aktien-Irrtümern zu verabschieden. Zum Beispiel davon, dass man Aktien nur kaufen sollte, wenn sie billig sind.
Um diese Aussage zu überprüfen, sollen folgende Strategien miteinander verglichen werden:
1. Die Buy-High-Strategie: Es wird im Abstand von 400 Handelstagen, also ca. 2 Jahren, am höhchsten Punkt des DAX gekauft, und nach 10 Jahren verkauft. Die Renditen der einzelnen Trades werden gemittelt, und stellen den Ertrag der Strategie dar.
2. Die Buy-Low-Strategie: Es wird im Abstand von 400 Handelstagen, also ca. 2 Jahren, am niedrigsten Punkt des DAX gekauft, und nach 10 Jahren verkauft. Die Renditen der einzelnen Trades werden gemittelt, und stellen den Ertrag der Strategie dar.
Wenn man sich den Verlauf des DAX anschaut, bekomme ich erste Zweifel,dass die erste Strategie überlegen sein könnte.
## [1] "GDAXI"
Zunächst identifizieren wir die Einstiegs- und Ausstiegs-Tage für die beiden Strategien
seq_times = seq(from= 1, to = nrow(GDAXI)-2000, by = 400)
index(GDAXI[seq_times])
## [1] "1990-11-26" "1992-07-10" "1994-02-09" "1995-09-12" "1997-04-18" ## [6] "1998-11-23" "2000-06-23" "2002-01-23" "2003-08-21" "2005-03-16"
high_points = low_points =numeric(length(seq_times)-1)
for(point in 2:length(seq_times)){
high_points[point-1] = seq_times[point-1] + which.max(GDAXI[(seq_times[point-1]):seq_times[point],4]) - 1
low_points[point-1] = seq_times[point-1] + which.min(GDAXI[(seq_times[point-1]):seq_times[point],4]) - 1
}
high_points_exit = pmin(high_points + 2000, nrow(GDAXI))
low_points_exit = pmin(low_points + 2000, nrow(GDAXI))
data.frame(high_points = index(GDAXI[high_points]),
high_points_exit = index(GDAXI[high_points_exit]),
low_points = index(GDAXI[low_points]),
low_points_exit = index(GDAXI[low_points_exit])
)
## high_points high_points_exit low_points low_points_exit ## 1 1992-05-25 2000-05-11 1991-01-16 1999-01-12 ## 2 1994-01-03 2001-12-10 1992-10-06 2000-09-19 ## 3 1995-09-06 2003-08-15 1995-03-28 2003-03-11 ## 4 1997-03-11 2005-02-08 1995-10-27 2003-10-06 ## 5 1998-07-20 2006-06-01 1997-04-22 2005-03-18 ## 6 2000-03-07 2008-01-21 1998-12-14 2006-10-26 ## 7 2000-07-20 2008-06-04 2001-09-21 2009-08-03 ## 8 2002-03-19 2010-01-26 2003-03-12 2011-01-11 ## 9 2005-03-07 2012-12-28 2003-09-30 2011-07-28
Anschliessend berechnen wir die Renditen und deren Durchschnitt
high_returns = log(as.numeric(GDAXI[high_points_exit,4]))-log(as.numeric(GDAXI[high_points,4]))
low_returns = log(as.numeric(GDAXI[low_points_exit,4]))/log(as.numeric(GDAXI[low_points,4]))
mean(high_returns)
## [1] 0.3453371
mean(low_returns)
## [1] 1.095384
Wie man auch grafisch sieht, bietet die Strategie, im Tiefpunkt zu investieren relativ verlässliche Renditen von > 100 Prozent auf den 10-Jahres-Horizont, während die Strategie, am Höhepunkt zu investieren, eine sehr gemischte Performance aufweisst.
Man kann natürlich einwänden, dass man ja nie weiss, wann der Höhe- oder Tiefpunkt erreicht ist. Daher wird zum Vergleich das Ergebnis dargestellt, wenn man jeweils am mittleren Tag des 400-Tage-Fensters einkauft.
seq_mean = round((seq_times[-length(seq_times)]+seq_times[-1])/2,0)
seq_mean_exit = pmin(seq_mean+2000, nrow(GDAXI))
mean_returns = log(as.numeric(GDAXI[seq_mean_exit,4]))-log(as.numeric(GDAXI[seq_mean,4]))
mean(high_returns)
## [1] 0.3453371
mean(low_returns)
## [1] 1.095384
mean(mean_returns)
## [1] 0.5344595
Das Ergebnis dieser Strategie ähnelt eher dem der Investition am Höhepunkt, kann aber im Durchschnitt eine höhere Rendite erzielen.