Historische Kurse verschiedener Assetklassen über sehr lange Zeiträume

Hallo an alle,

um antizyklisch zu investieren, möchte ich mir eine gute Übersicht über lange Zeiträume (>20 Jahre) der unterschiedlichsten Assetklassen machen. Für Aktien bin ich bei MSCI schon fündig geworden. Diese Indizes habe ich mir bei MSCI für sehr lange Zeiträume per CSV importiert und aktualisiere diese per investing.com. Leider habe ich für andere Assetklassen noch keine Quelle gefunden und bitte euch hier um Unterstützung. Mir fehlen insbesondere noch folgende Assetklassen:

  • Rohstoffe
  • Gold
  • REIT
  • Staatsanleihen Schwellenländer
  • Staatsanleihen Europa oder Welt (investment grade)

Wenn jemand gute Quellen für derartige Indizes (oder auch ETF) empfehlen kann, wäre ich sehr Dankbar :slight_smile:

Liebe Grüße!

Bezieht sich nur auf EM Bonds in USD: https://backtest.curvo.eu/market-index/jp-morgan-embi-global-core dort gibts auch eine csv

Auf https://backtest.curvo.eu/funds gibt es viele Quellen, es scheitert nur an den gewünschten >20Y

Danke für den Tipp. Auch wenn die Daten erst ab 2008 vorliegen, wären sie interessant und schon mal ein erster Schritt.

Leider verstehe ich die Seite nicht ganz. Liegen dem “Backtest” überhaupt reale Kurse zugrunde oder sind die Kurse zurückgerechnet worden? Die CSV die ich dort gefunden habe enthält keine Kurse, sondern nur eine monatliche Betrachtung, was aus z.B. 10.000,00 € geworden wäre. Wie kann ich so etwas in PP laden und zukünftig mit neuen Kursen aktualisieren?

Es werden auch zwei ETF genannt:

a) eine thesaurierende Variante [iShares J.P. Morgan USD Emerging Markets Bond UCITS ETF (Acc)] (IE00BYXYYK40) → Start in 2017 (allerdings mit Daten auf der Seite ab 2008)

b) eine ausschüttende Variante [iShares J.P. Morgan USD Emerging Markets Bond UCITS ETF (Dist) ( IE00B2NPKV68) → Start in 2008

Variante a) wäre natürlich wegen der Thesaurierung sehr interessant. Leider finde ich keine historischen Daten dazu ab 2008. Auf justetf.com lässt sich der Chart für Variante a) zwar auch inkl. Ausschüttungen anzeigen, allerdings komme ich da nicht an eine CSV ran :frowning:

Ich schätze die Daten beruhen auf den Index-Daten, also zurückgerechnet.

Aktuelle Daten in EUR gibts hier Portfolio Report

Die csv-Daten müsste man also in EUR umrechnen und auf einen Anteil normieren. Wie genau weiss ich auch nicht :wink:

Umrechnung wäre vielleicht eine Option. Ich frage mich gerade noch, ob es prinzipiell auch eine Möglichkeit gibt, Kurse für ausschüttende ETF auch inklusive der Ausschüttung zu bekommen, so wie beim Häkchen “inklusive Ausschüttung” bei Justetf.com?

Interessante Idee :wink:
Probieren wir das doch mal am Beispiel IE00B2NPKV68:

Du rufst

https://www.justetf.com/de/etf-profile.html?isin=IE00B2NPKV68

im Firefox auf, gehst auf Charts

und setzt die Einstellungen auf 1 Jahr / Marktwert in EUR incl. Ausschüttungen

Dann drückst Du Strg+Shift+i gleichzeitig und es erscheint das Inspectorfenster

dann klickst Du im juestetf-Fenster auf MAX, woraufhin im Inspector ein erfolgreicher Request erscheinen sollte

Diese Zeile markieren und im sich dann öffnenden Fenster “Antwort” auswählen

Was Du suchst steht in diesem Beispiel in Zeile 41, sie beginnt mit

(function(){Wicket.Ajax.ajax({"u":"/de/etf-profile.html?3-1.0-chartPanel-chart-content-dates-from&isin=IE00B2NPKV68",

wenn Du ein bischen nach rechts scrollst siehst Du die Daten,



die von data: [[Date.UTC(2008,1,15),68.28], bis [Date.UTC(2021,10,19),192.33]] reichen.

Hä? 2021,10,19 Das Mouseover sagt doch bis 21.11.2021? OK, letztes Kursdatum wäre dann 19.11.2021, aber immerhin 11!
Bildschirmfoto_2021-11-22_19-10-06

Faszinierend. Diese Abweichung muss auf mein Verständnis noch etwas warten.

Die Daten aus besagter Zeile 41 kann man sich kopieren und z.B. als em-dist.txt abspeichern. In dem File sieht es dann einigermaßen unordentlich aus - hier ein Ausschnitt

179.02],[Date.UTC(2021,3,1),179.47],[Date.UTC(2021,3,2),179.86],[Date.UTC(2021,3,3),179.86],[Date.UTC(2021,3,4),179.86],[Date.UTC(2021,3,5),179.86],[Date.UTC(2021,3,6),179.06],[Date.UTC(2021,3,7),178.30],[Date.UTC(2021,3,8),178.77],[Date.UTC(2021,3,9),178.45],[Date.UTC(2021,3,10),178.45],[Date.UTC(2021,3,11),178.45],[Date.UTC(2021,3,12),178.92],[Date.UTC(2021,3,13),178.96],[Date.UTC(2021,3,14),178.47],[Date.UTC(2021,3,15),179.51],[Date.UTC(2021,3,16),179.78],[Date.UTC(2021,3,17),179.78],[Date.UTC(2021,3,18),179.78],[Date.UTC(2021,3,19),179.18],[Date.UTC(2021,3,20),178.45],[Date.UTC(2021,3,21),179.00],[Date.UTC(2021,3,22),178.81],[Date.UTC(2021,3,23),178.53],[Date.UTC(2021,3,24),178.53],[Date.UTC(2021,3,25),178.53],[Date.UTC(2021,3,26),177.91],[Date.UTC(2021,3,27),177.44],[Date.UTC(2021,3,28),177.34],[Date.UTC(2021,3,29),176.79],[Date.UTC(2021,3,30),177.85],[Date.UTC(2021,4,1),177.85],[Date.UTC(2021,4,2),177.85],[Date.UTC(2021,4,3),178.86],[Date.UTC(2021,4,4),178.79],[Date.UTC(2021,4,5),179.20],[Date.UTC(2021,4,6),178.96],[Date.UTC(2021,4,7),179.53],[Date.UTC(2021,4,8),179.53],[Date.UTC(2021,4,9),179.53],[Date.UTC(2021,4,10),178.08],[Date.UTC(2021,4,11),177.51],[Date.UTC(2021,4,12),177.55],[Date.UTC(2021,4,13),177.91],[Date.UTC(2021,4,14),178.03],[Date.UTC(2021,4,15),178.03],[Date.UTC(2021,4,16),178.03],[Date.UTC(2021,4,17),177.97],[Date.UTC(2021,4,18),176.97],[Date.UTC(2021,4,19),176.56],[Date.UTC(2021,4,20),177.01],[Date.UTC(2021,4,21),177.44],[Date.UTC(2021,4,22),177.44],[Date.UTC(2021,4,23),177.44],[Date.UTC(2021,4,24),177.21],[Date.UTC(2021,4,25),176.83],[Date.UTC(2021,4,26),177.64],[Date.UTC(2021,4,27),177.97],[Date.UTC(2021,4,28),178.94],[Date.UTC(2021,4,29),178.94],[Date.UTC(2021,4,30),178.94],[Date.UTC(2021,4,31),178.42],[Date.UTC(2021,5,1),177.86],[Date.UTC(2021,5,2),178.76],[Date.UTC(2021,5,3),178.50],[Date.UTC(2021,5,4),179.86],[Date.UTC(2021,5,5),179.86],[Date.UTC(2021,5,6),179.86],[Date.UTC(2021,5,7),179.19],[Date.UTC(2021,5

so dass man z.B. mittels

sed -e 's:\[Date\.UTC:\n\[Date\.UTC:g' < em-dist.txt > em-dist2.txt

vor jedem “[Date.UTC” einen Zeilenumbruch einfügt (das geht unter Windows zur Not auch mit dem notepad++)

Nun sehen die Daten schon übersichtlicher aus

~$ cat em-dist2.txt 
data: [
[Date.UTC(2008,1,15),68.28],
[Date.UTC(2008,1,16),68.28],
[Date.UTC(2008,1,17),68.28],
[Date.UTC(2008,1,18),68.46],
[Date.UTC(2008,1,19),67.96],
[Date.UTC(2008,1,20),68.14],
[Date.UTC(2008,1,21),67.97],
[Date.UTC(2008,1,22),67.58],
[Date.UTC(2008,1,23),67.58],
..... 
[Date.UTC(2021,10,10),189.03],
[Date.UTC(2021,10,11),189.13],
[Date.UTC(2021,10,12),189.95],
[Date.UTC(2021,10,13),189.95],
[Date.UTC(2021,10,14),189.95],
[Date.UTC(2021,10,15),189.71],
[Date.UTC(2021,10,16),190.53],
[Date.UTC(2021,10,17),190.99],
[Date.UTC(2021,10,18),190.69],
[Date.UTC(2021,10,19),192.33]], false);_5f7fef5e788640e6b2d9ffc1c53a17ab.xAxis[0].setExtremes(Date.UTC(2008,1,15),Date.UTC(2021,10,19), false);_5f7fef5e788640e6b2d9ffc1c53a17ab.redraw();})();

allerdings sieht man in der Mitte des Files, das die Daten doppelt vorhanden sind

[Date.UTC(2021,10,14),189.95],
[Date.UTC(2021,10,15),189.71],
[Date.UTC(2021,10,16),190.53],
[Date.UTC(2021,10,17),190.99],
[Date.UTC(2021,10,18),190.69],
[Date.UTC(2021,10,19),192.33]]}, false);_5f7fef5e788640e6b2d9ffc1c53a17ab.a ...[censored...
[Date.UTC(2008,1,15),68.28],
[Date.UTC(2008,1,16),68.28],
[Date.UTC(2008,1,17),68.28],
[Date.UTC(2008,1,18),68.46],
[Date.UTC(2008,1,19),67.96],

also obacht bei der weiteren Verarbeitung.

Diese Daten sind jetzt relativ leicht zu behandeln, so dass man sie als csv in PP einlesen könnte.

Falls dabei was klemmt, könnte ich auch die csv daraus bauen (nur nicht jetzt gleich).

P.S. Bin schon gespannt wie lange es nun dauert bis justetf die Daten obfuskiert.

1 Like

Hat sich geklärt, die Monate beginnen bei 0 statt 1 und hören mit 11 statt 12 auf

[Date.UTC(2020,11,27),181.81],
[Date.UTC(2020,11,28),181.94],
[Date.UTC(2020,11,29),180.59],
[Date.UTC(2020,11,30),180.45],
[Date.UTC(2020,11,31),180.80],
[Date.UTC(2021,0,1),181.52],
[Date.UTC(2021,0,2),181.52],
[Date.UTC(2021,0,3),181.52],
[Date.UTC(2021,0,4),180.57],
[Date.UTC(2021,0,5),180.42],

Danke sieht interessant aus :slight_smile:
Der Weg könnte für historische Kurse funktionieren, nur mit automatischem Aktualisieren für die Zukunft wird es damit wohl schwer. Vielleicht wäre da der andere Weg über den richtigen thesaurierenden ETF plus alte Kurse aus dem Backtest errechnen dann sinnvoller.
Schaue ich mir am Wochenende mal genauer an.

IE00B2NPKV68_justetf_EUR_incl_Dist.csv.zip (15,9 KB)

gebaut mit

match($0, /^\[Date\.UTC\((....),(..?),(..?)\),([0-9.]+)\]/, a_help) {
	date=sprintf("%s-%02d-%02d", a_help[1], a_help[2]+1, a_help[3])
	gsub(/\./, ",", a_help[4])
	a_csv[date]=a_help[4]
}

END{
	for(i in a_csv) print i";"a_csv[i]
}

und einem nachträglich eingefügtem Kopf “Datum;Kurs”