Je mehr Aktien, Fonds oder ETFs sich in Deinem Portfolio anhäufen, desto wahrscheinlicher ist es, dass diese dieselben Aktien mehrfach enthalten und es somit zu Überschneidungen von ETF in Deinem Portfolio kommt. Somit erhöhst Du unabsichtlich den Anteil dieser Wertpapiere in Deinem Depot überproportional, was zu einem Klumpenrisiko führen kann. Diese ETF Überschneidungen lohnt es sich zu prüfen!
Dies muss natürlich nicht unbedingt immer nachteilig sein, allerdings ist es gut, sich darüber im Klaren zu sein.
Im Folgenden möchte ich Dir ein Tool zeigen, mit dem Du sehr einfach die Überschneidungen zwischen ETF prüfen kannst. Für die ambitionierteren Anleger unter Euch stelle ich außerdem noch eine Möglichkeit vor, die Überschneidungen mit einem einfachen R-Script zu überprüfen.
Update
Ich habe jetzt die in diesem Beitrag vorgestellten R-Scripte in einem kostenlosen Tool zusammengefasst, mit dem ihr die Zusammensetzung von einigen ETFs prüfen und vergleichen könnt. Probiert es gerne einmal aus und gebt mir Feedback dazu!
Zugegeben, als ganz konsequenter Buy-and-Hold ETF-Anleger mit Weltportfolio-Ansatz dürften derartige Überschneidungen eigentlich nicht vorkommen, aber jeder hat schließlich eine Börsen-Historie, ein paar Karteileichen oder einfach Spass daran, nebenbei noch ein bisschen mit Einzelwerten zu spekulieren.
Ein sehr hilfreiches Werkzeug, um Überschneidungen Deiner Wertpapiere zu analysieren ist das Morningstar X-Ray Tool.
Wie funktioniert Morningstar X-Ray?
Im ersten Schritt musst Du Dich hierzu auf der Morningstar-Seite kostenlos registrieren und anschließend legst Du Dein Portfolio an.
Ich habe hier der Einfachheit halber in meinem Beispiel einfach ein Portfolio mit 90% MSCI World und 10% Apple Aktien gewählt, um Dir den Effekt zu zeigen.
Anschließend klickst Du auf den Tab “X-Ray” und dann im Dropdown “Zur Übersicht” den Eintrag “Überschneidung Positionen” auswählen.
Das Ergebnis sieht dann in etwa so aus:

Man kann hier erkennen:
- die Apple-Aktie kommt 2 Mal in dem Portfolio vor: einmal mit 10% direkt gehalten und einmal indirekt im MSCI World mit 3,90% (genauer gesagt 90% von 4,34%)
- dies ergibt eine insgesamte Gewichtung der Apple-Aktie von 13,90% in dem Beispiel-Portfolio
Wie gesagt, ob diese ETF-Überschneidungen jetzt gut oder schlecht ist, bleibt natürlich vollkommen Dir überlassen.
Das Ergebnis ist allerdings, dass die Apple-Aktie gegenüber dem reinen Benchmark-Index MSCI World übergewichtet ist. Der MSCI World Index bildet die Wertentwicklung von 23 Industrieländern ab und gewichtet die einzelnen Aktien im ETF nach deren Marktkapitalisierung, das bedeutet nach dem Wert der Aktien, die frei handelbar sind. Wenn Apple fiktiv 100 Aktien ausgegeben hätte und die Apple-Aktie aktuell bei einem Kurs von 50,- € stehen würde, wäre die Marktkapitalisierung von Apple
100 * 50,- € = 5.000 €
Dies wird für jedes einzelne Unternehmen ermittelt und danach die Indexzusammensatzung des MSCI World automatisiert berechnet. Wenn wir nun also zusätzlich zum MSCI World noch weitere Anteile der Apple Aktie kaufen wie in unserem Beispiel, entsteht eine Überschneidung in unserem Portfolio und damit eine Übergewichtung. Dies kann natürlich absolut Sinn machen, wenn Du davon ausgehst, dass Apple noch besonders viel Potential hat, aber es kann auf der anderen Seite natürlich auch zu Klumpenrisiken führen, so dass die breite Diversifizierung des MSCI World durch viele Überschneidungen wieder verringert wird.
Überschneidungen können natürlich in jeglicher Form auftreten, d.h. wenn Du statt der einzelnen Apple-Aktie zum Beispiel einen Europa-ETF mit in das Portfolio aufnimmst, entstehen für etliche ETF-Positionen Überschneidungen und Übergewichtungen. Es macht also in jedem Fall Sinn, in regelmäßigen Abständen die ETF Überschneidungen im Portfolio zu prüfen.
ETF Überschneidungen prüfen mit R
Für die ambitionierteren Anleger unter Euch möchte ich noch eine weitere Möglichkeit erläutern, wie man ETF Überschneidungen in seinem Portfolio prüfen kann. Dazu müsst ihr Euch ein wenig mit der Programmiersprache R auskennen oder zumindest in der Lage sein, meine (einfachen) Code-Beispiele nachvollziehen zu können. Ich gehe das R-Script aber im Folgenden Schritt für Schritt mit Euch durch. Am einfachsten könnt ihr die Beispiele in R Studio auf dem Mac ausführen.
Das R-Script verwendet die von iShares zur Verfügung gestellten CSV-Daten, die für jeden ETF die einzelnen Aktien inklusive deren Gewichtung im Index zum jeweiligen Zeitpunkt auflisten. Für einen ETF auf den MSCI World Index beispielsweise findet ihr die Datei auf der iShares Website im Bereich “Positionen” und dort unter “Fondspositionen und Kennzahlen”.
Als erstes laden wir dann die benötigte R-Library und definieren eine Hilfsfunktion, die das Einlesen der CSV-Datei und das Filtern auf die benötigten Spalten vornimmt. Als Parameter geben wir der Funktion ganz einfach die iShares-URL und den Namen des Index mit.
library(tidyverse)
importEtfHoldings <- function(url, indexName) {
return(read_csv(url, skip = 2) %>%
select("Name", "ISIN", "Gewichtung (%)") %>%
rename("Weight" = "Gewichtung (%)") %>%
mutate(Weight = as.double(sub(",", ".", Weight, fixed = TRUE))) %>%
add_column(Index = indexName))
}
Anschließend nutzen wir diese erstellte Funktion, um die Daten der verschiedenen (iShares) ETFs, die uns interessieren, in einzelne Variablen zu laden. Für den MSCI World ETF mit der WKN A0RPWH
sieht das dann beispielsweise so aus:
msci_world <- importEtfHoldings("https://www.ishares.com/de/privatanleger/de/produkte/251882/ishares-msci-world-ucits-etf-acc-fund/1478358465952.ajax?fileType=csv&fileName=EUNL_holdings&dataType=fund", "MSCI World")
Zusätzlich fügen wir in meinem Beispiel einen Emerging Markets ETF sowie einen Nasdaq 100 ETF hinzu:
msci_emerging_markets <- importEtfHoldings("https://www.ishares.com/de/privatanleger/de/produkte/251858/ishares-msci-emerging-markets-ucits-etf-acc-fund/1478358465952.ajax?fileType=csv&fileName=EUNM_holdings&dataType=fund", "MSCI EM")
nasdaq_100 <- importEtfHoldings("https://www.ishares.com/de/privatanleger/de/produkte/253741/ishares-nasdaq-100-ucits-etf/1478358465952.ajax?fileType=csv&fileName=SXRV_holdings&dataType=fund", "Nasdaq 100")
Dann kombinieren wir alle Daten zu einem gemeinsamen Portfolio. Hierzu berücksichtigen wir die verschiedenen Gewichtungen für die einzelnen ETFs, in meinem Beispiel sind dies:
Index | Gewichtung |
---|---|
MSCI World | 65% |
MSCI Emerging Markets | 20% |
Nasdaq 100 | 15% |
portfolio <- bind_rows(
msci_world %>% mutate(Weight = 0.65*Weight),
msci_emerging_markets %>% mutate(Weight = 0.2*Weight),
nasdaq_100 %>% mutate(Weight = 0.15*Weight)
)
Jetzt sind wir soweit und können das Ergebnis mit R berechnen lassen.
Hierzu gruppieren wir das Portfolio nach der eindeutigen ISIN-Wertpapierkennnummer und filtern auf alle Aktien, die öfter als 1 Mal in unserem Portfolio vorkommen und sortieren anschließend absteigend nach deren Gewichtung, so dass die am höchsten gewichteten Aktien ganz oben stehen:
portfolio %>%
filter(Weight > 0) %>%
filter(ISIN != "-") %>%
group_by(ISIN) %>%
filter(n()>1) %>%
summarise(Weight = sum(Weight, na.rm = TRUE), Name = first(Name), Count=n(), Index = toString(sort(unique(Index)))) %>%
arrange(desc(Weight))
Das Ergebnis sieht bei mir – Stand 19.2.2021 – folgendermaßen aus:
# A tibble: 102 x 5
ISIN Weight Name Count Index
<chr> <dbl> <chr> <int> <chr>
1 US0378331005 4.39 APPLE INC 2 MSCI World, Nasdaq 100
2 US5949181045 3.53 MICROSOFT CORP 2 MSCI World, Nasdaq 100
3 US0231351067 2.97 AMAZON COM INC 2 MSCI World, Nasdaq 100
4 US88160R1014 1.43 TESLA INC 2 MSCI World, Nasdaq 100
5 US02079K1079 1.31 ALPHABET INC CLASS C 2 MSCI World, Nasdaq 100
6 US30303M1027 1.30 FACEBOOK CLASS A INC 2 MSCI World, Nasdaq 100
7 US02079K3059 1.25 ALPHABET INC CLASS A 2 MSCI World, Nasdaq 100
8 US67066G1040 0.872 NVIDIA CORP 2 MSCI World, Nasdaq 100
9 US70450Y1038 0.803 PAYPAL HOLDINGS INC 2 MSCI World, Nasdaq 100
10 US4581401001 0.614 INTEL CORPORATION CORP 2 MSCI World, Nasdaq 100
# … with 92 more rows
Wir sehen, es gibt zwischen Nasdaq 100 und MSCI World ETF (Spalte “Index”) insgesamt 102 Überschneidungen. In der Spalte “Weight” steht die Gesamt-Gewichtung in unserem Portfolio unter Berücksichtigung der einzelnen ETF-Gewichte, die wir oben bei der Definition des Portfolios angegeben haben.
Um abschließend einen Vergleich der Gewichtungen zu erhalten, wie das Portfolio ohne den Nasdaq 100 ETF aussähe, müsst ihr nur die Portfolio-Gewichte verändern und den Filter entfernen:
portfolio <- bind_rows(
msci_world %>% mutate(Weight = 0.8*Weight),
msci_emerging_markets %>% mutate(Weight = 0.2*Weight)
)
portfolio %>%
filter(Weight > 0) %>%
filter(ISIN != "-") %>%
group_by(ISIN) %>%
summarise(Weight = sum(Weight, na.rm = TRUE), Name = first(Name), Count=n(), Index = toString(sort(unique(Index)))) %>%
arrange(desc(Weight))
Das Ergebnis ohne den Nasdaq 100 ETF ist in meinem Beispiel folgendes:
# A tibble: 2,401 x 5
ISIN Weight Name Count Index
<chr> <dbl> <chr> <int> <chr>
1 US0378331005 3.31 APPLE INC 1 MSCI World
2 US5949181045 2.6 MICROSOFT CORP 1 MSCI World
3 US0231351067 2.09 AMAZON COM INC 1 MSCI World
4 TW0002330008 1.33 TAIWAN SEMICONDUCTOR MANUFACTURING 1 MSCI EM
5 KYG875721634 1.28 TENCENT HOLDINGS LTD 1 MSCI EM
6 US01609W1027 1.17 ALIBABA GROUP HOLDING ADR REPRESEN 1 MSCI EM
7 IE00BQT3WG13 0.992 ISH MSCI CHINA A ETF USD ACC 1 MSCI EM
8 US30303M1027 0.976 FACEBOOK CLASS A INC 1 MSCI World
9 US02079K1079 0.944 ALPHABET INC CLASS C 1 MSCI World
10 US02079K3059 0.936 ALPHABET INC CLASS A 1 MSCI World
# … with 2,391 more rows
Wie man sieht, hat sich z.B. die Apple-Position durch 15% Hinzunahme des Nasdaq 100 ETFs von 3,31% Gewichtung auf 4,39% erhöht.
Zur Überprüfung meines Scripts könnt ihr auch einmal die Überschneidungen zwischen einem ETF auf den MSCI World und den MSCI Emerging Markets berechnen und erhaltet folgendes Ergebnis:
# A tibble: 1 x 5
ISIN Weight Name Count Index
<chr> <dbl> <chr> <int> <chr>
1 NL00150001Q9 0.056 STELLANTIS NV 2 MSCI World
Wie zu erwarten gibt es keine relevante Überschneidung. Das einzige Ergebnis ist eine doppelte Position in den iShares-Daten im MSCI World.
Wenn ihr zusätzlich prüfen wollt, welche ETF Überschneidungen sich im Fall von Einzelaktien ergeben, könnt ihr das folgende Beispiel der Apple-Aktie verwenden:
apple <- tibble("Name" = "Apple", "ISIN" = "US0378331005", "Weight" = 100.0)
portfolio <- bind_rows(
msci_world %>% mutate(Weight = 0.5*Weight),
apple %>% mutate(Weight = 0.5*Weight)
)
Das Ergebnis ist – wie zu erwarten – eine sehr große Überschneidung:
# A tibble: 3 x 5
ISIN Weight Name Count Index
<chr> <dbl> <chr> <int> <chr>
1 US0378331005 52.1 APPLE INC 2 MSCI World
2 NL00150001Q9 0.035 STELLANTIS NV 2 MSCI World
3 - 0.015 CASH COLLATERAL USD BZFUT 2 MSCI World
Ich hoffe, das gibt Euch ein paar Tools an die Hand, um Eure Portfolio-Gewichtungen sichtbar zu machen.
Prüft ihr die ETF Überschneidungen in Eurem Portfolio aktuell? Falls ja, wie?
Disclaimer: Meine kostenlosen und freien Recherchen stellen meine persönliche Meinung dar und sind in keinster Weise eine Anlageempfehlung. Sie werden mit größtmöglicher Sorgfalt erstellt, aber sie können trotzdem ganz oder teilweise falsch sein. Daher übernehme ich keinerlei Haftung für Anlageentscheidungen, die auf Basis der hier vermittelten Informationen getroffen werden. Des Weiteren erhebt diese Website keinen Anspruch auf Vollständigkeit, Richtigkeit und Aktualität.
Schreibe einen Kommentar