Datumsformat von MSCI.com

Hallo,

ich möchte die EOD-Daten von einigen MSCI Indizes in PP über die Funktion „Historische Kurse abrufen” importieren. Dabei nutze ich z.B. folgende URL

https://app2.msci.com/products/service/index/indexmaster/getLevelDataForGraph?currency_symbol=EUR&index_variant=STRD&start_date=20201231&end_date=20210306&data_frequency=DAILY&index_codes=990100

mit folgendem Pfad zum Datum:

$.indexes.INDEX_LEVELS[*].calc_date

und folgendem Pfad zum Kurs:

$.indexes.INDEX_LEVELS[*].level_eod

Die eine JSON Datei mit den Kursdaten liefert. Das Problem ist, dass als Datumsvormat YYYYMMDD genutzt wird und PP das nicht richtig parst. Ich vermute dass PP die Datums-zahlen, nachdem die keine Punkte oder Bindestriche enthalten, als “Millisekunden nach dem 1.1.1970” (oder so) interpretiert, denn das kommt dabei heraus:

Leider finde ich keine Möglichkeit dem Parser das Datumsformat mitzuteilen. Finde ich das nur nicht, oder geht das wirklich nicht? (Und falls letzteres Zutrifft, findet sich hier vielleicht jemand der das einbauen möchte?) Ich fände es nämlich sehr praktisch, die MSCI-Indizes direkt in PP als Benchmark zur Verfügung zu haben.

1 Like

Ich beziehe mich auf Portfolio Performance 0.51.2 (März 2021) und auf obigen Beitrag.

Ich habe im Attribut Datumsformat folgendes eingetragen:

yyyyMMdd

Bei mir funktioniert mit diesem Format das Einlesen der Kurse.

In obigem Beispiel können der Auswahl index_variant im Attribut Kurs URL auch andere Werte zugewiesen werden.

  • STRD selektiert Price (ohne Erträge)

  • NETR selektiert Net (mit Erträgen nach Steuerabzug)

  • GRTR selektiert Gross (mit Erträgen ohne Steuerabzug)

Die Indizes können auch in der von mir bevorzugten Stammwährung mit mit der Auswahl currency_symbol=USD eingelesen werden.

Die Kurse werden mit bis zu 8 Nachkommastellen ausgegeben. Dies scheint mir ein wenig übertrieben.

Zur Erinnerung: man kann unter folgendem empfehlenswerten Link diverse Tagesendkurse (EOD End Of Day) von MSCI abrufen:

https://www.msci.com/end-of-day-data-search

Hier kann man durch Herumprobieren auch weitere Indizes und deren index_codes herausfinden und so auch mittels JSON herunterladen.

Ich bin ganz aus dem Häuschen, dass das Einlesen der Kurse direkt von MSCI.com auf diese Weise funktioniert. Ich war bisher immer etwas enttäuscht von der Auswahl der MSCI Indizes bei den üblichen Datenlieferanten wie Onvista, Ariva, Yahoo und Investing. Manchmal wurde mir auch nicht klar, um welche Ausprägung eines Indexes es sich überhaupt handelt.

Ich bedanke mich bei allen Beteiligten, die diese Lösung ermöglicht haben.

4 Likes

Gern geschehen :wink:

Bei currency_symbol kann man übrigens auch LOC eintragen, dann bekommt man die Indizes in lokaler Währung.

Auf der MSCI Webseite findet man die Indexcodes von allen Region-basierten und Länder Indizes in sämtlichen Varianten (Faktorindizes etc.). Leider wird bei den Sektorindizes aber der Indexcode nicht angezeigt (und man bekommt sie da auch nicht durch die API-Calls, weil für die eine andere API verwendet wird). Wenn jemand eine gute Quelle für Index-Codes der Sektorindizes hat, würde mich dass sehr interessieren.

Ansonsten hat übrigens die MSCI Indizes mit dieser Methode in PP zu laden noch den Vorteil, dass man alle EOD Daten seit der Auflegung des Indizes bekommt. Bei manchen Indizes ist das 1970! Und selbst auf der MSCI Webseite bekommt man nur für die letzten 5 Jahre EOD Daten (und sonst nur EOM Daten).

3 Likes

Ich mag euren Betrag. Da ich genau auf der Suche nach dieser Lösung war und es ja bekanntlich keine blöden Fragen gibt muss ich hier einfach mal fragen. :wink:

Ich habe mich mit den Informationen im ersten Beitrag mal ein wenig gespielt. Das Resultat ist das angehängte.

Daran kann man erkennen ich sehe einen Tag im Jahr 1970 und einen Kurs.

Wenn ich mir die Information vom Server ansehe ist was vorhanden und das schaut nicht so falsch aus. Allerdings kommt das nicht richtig in den PP.

Sollte es noch wichtig sein. Ich arbeite auf einem MacBook und benutze die Version 0.51.1 des PP.

@Metapont nachdem du ebenfalls zu Beginn Daten aus dem Jahre 1970 angezeigt bekommen hast kannst du mir vielleicht sagen wie du die Sache gelöst hast?

Ich habe in einem anderen Beitrag etwas von “Einrichten eines Proxies” gelesen?

Das mit dem Einrichten des Proxies ist zum Glück nicht mehr nötig, die Lösung ist viel einfacher:

  • Update auf die neueste Version von PP
  • Dort gibt es dann in dem Dialog oben ein neues Textfeld namens „Datumsformat”. Dort trägst du „yyyyMMdd” ein.

Und das wars, dann sollte alles funktionieren.

Oh, da gabs ein Update in den letzten Tagen. Schande auf mein Haupt. :wink:

Ich habe das mal probiert, sowohl mit yyyyMMyy als auch dd.mm.yyyy, beide Male kommt eine Parser Error. Entweder at Index 2 (20000101)oder wie im Screenshot Index 0 (01.01.2000).

In beiden Fällen nach der Eingabe eines Datums ist der Button “Serverantwort anzeigen” ausgegraut, dh. ich kann mir die Serverantwort nicht mehr ansehen.

Vielen Dank für die Informationen.

Auf der Suche nach index_codes konsultiere ich gerne folgende Spreadsheet Datei, die ich von MSCI herunter geladen habe. Darin sind auch weitere interessante Angaben wie Index Varianten, Ticker Codes, Währungen usw. zu finden.

Tickers-for-MSCI-Indexes-February262021.xlsx

Die Datei (oder wahrscheinlich eine aktuelle) findet man unter

https://www.msci.com/ticker-codes

Ich habe so z.b. index_codes=106833 für MSCI World Materials Metals & Mining ausprobiert und stimmige Kurse erhalten. Dies mit der bewährten URL von oben.

Es wird immer besser.

Du musst in dem Feld direkt „yyyyMMdd” eingeben, kein Beispieldatum wie 01.01.2000.

Vielen Dank @Metapont und @ristretto für die Ausführungen! Bisher habe ich mir die Daten immer jeden Monat als .csv von der MSCI Seite geholt. Der Abruf über die API bedeutet wieder einen Schritt mehr Automatisierung für mich, hervorragend!

kleine Ergänzung zu den Ticker codes: man kann auch auf der EOD Seite von MSCI seine Wunschkombination auswählen und hat dann im Link von “Download Data” den Ticker Code den man braucht/möchte.

Das ist nur halb richtig. Du bekommst über die Webseite für jeden 5 Jahreszeitraum EOD Daten, nicht nur für die letzten 5 Jahre. Also müssten die 50+ Jahre Kurshistorie in 10+ Abschnitten als .csv geladen und in PP exportiert werden.

Darf ich einmal kurz Fragen wofür ihr die direkten Werte des Index nutzt? Benchmarkt ihr eure ETFs dagegen oder wie? Möchte etwas dazulernen :slight_smile:

@Metapont :thinking: Danke, das wars. Logischerweise wurde ja nach dem Format gefragt und nicht nach dem spezifischen Datum.

@Jo92 ich benutze Ihn als Benchmark zum Invest, korrekt.

1 Like

Jup, genau. Da es auf den ACWI AC (Gross) (mMn: “der Markt”) keinen ETF gibt benchmarke ich mich direkt gegen den Index :slight_smile:

1 Like

Eine Frage doch nochmal zum API Aufruf:
In der Krus URL steht start_Date und end_date explizit angegeben. muss ich die jedes Mal ändern, wenn die Kurse aktualisiert werden, oder kann ich da auch die automatische Datumsabfrage machen wie z.B. bei den Ariva Links?

Ja, das geht wie bei allen anderen Datenlieferanten. Z.b.

https://app2.msci.com/products/service/index/indexmaster/getLevelDataForGraph?currency_symbol=EUR&index_variant=NETR&start_date={TODAY:yyyyMMdd:-P1Y}&end_date={TODAY:yyyyMMdd:+P1D}&data_frequency=DAILY&index_codes={TICKER}

gibt dir die Daten vom letzten Jahr.

1 Like

@Jo92 Indizes ermöglichen mir Analyse und Vergleich. Ich investiere vorwiegend in ETF und nutze unter anderem Indizes, um Anlageentscheide zu fällen.

Man sollte aufpassen, dass man nicht Äpfel mit Birnen vergleicht. Der DAX wird meistens als Performanceindex (mit Erträgen) publiziert, der SMI als Kursindex (ohne Erträge). Es macht nun keinen Sinn, z.B. die Jahresperformance dieser zwei Indexausprägungen zu vergleichen.

Weiters sollte man auch die Zusammensetzung von Indizes kennen, um ein ausgewogenes Portfolio zu konstruieren. MSCI World hat halt viel Vereinigte Staaten und überhaupt kein China.

Es gibt nicht nur Indizes nach Ländern und Regionen, sondern auch nach Sektoren und Rohstoffen. Sektoren sind aktuell beim Thema Reflation Trade interessant.

Ich bin nicht Profi und habe auch kein Bloomberg Terminal. Die üblichen verdächätigen Websites für den privaten Investor bieten nur eine eingeschränkte Auswahl an Indizes an. Deshalb habe ich begonnen, für mich interessante Indizes in PP zu sammeln.

Den Schweizer Heimmarkt decke ich zur Zeit mit 10 verschiedenen Indizes/Indexausprägungen ab. Dank PP mit automagischem Update.

Ich weiche immer mehr vom Thema ab.

2 Likes

konnte die automatische Abfrage gestern Abend testen. :+1:
Ich musste den end_date aber auf {TODAY:yyyyMMdd:-P1D} (minus statt plus) setzen, damit ich eine gültige Serverantwort bekomme.

(nur als Hinweis, falls noch jemand “abschreiben” will :slight_smile: )