Historische Kurse von onvista nicht mehr lesbar

Hallo @MatthiasG
Am Besten, du beginnst ab diesem Beitrag Historische Kurse von onvista nicht mehr lesbar - #78 by chirlu zu lesen. Dauer ca. 10 Minuten. Dann dürfte das Problem auch für dich gelöst sein.

1 Like

Hallo, mein erster Beitrag und gleich eine (eventuell) doofe Frage.
Gibt es eine Möglichkeit eine Vorlage für die JSON Abfrage der historischen Kursdaten abzuspeichern? Also inklusive den Angaben zu den Pfaden.
Ich persönlich habe ca. 200 Wertpapiere in meiner Datei und bei jeder API Änderung muss ich in jedes Wertpapier und dieses abändern.
Eine Möglichkeit eine Vorlage zu laden habe ich nicht gefunden.
Grüße
Dennis

Ok, das habe ich mir gedacht, nachdem ich mich durch die Menüs und Einstellungen gearbeitet habe.
Es ist ja aber nicht das erste Mal, das sich eine API ändert. Bei anderen Programmen kenne ich es teilweise so, dass man eine Vorlagendatei hat und nur deren Pfad im Programm angibt. Ändern sich die Randbedingungen muss man nur diese Datei anpassen und alles läuft wie gewohnt.
Wäre so etwas denkbar und sinnvoll?
Auch wenn man die Funktionalität der Kursabfrage erweitert werden würde, könnte man die Vorlagendatei anpassen und bekommt von dem Zeit Punkt auch die neuen Daten geliefert.
PP_JSON

Guten Abend,
hat schon einer von Euch herausgefunden, mit welchem Link man aus Onvista jetzt nach der Umstellung - so wie früher - eine CSV-Datei mit Datum und Kurswerten ab diesem Datum für ein Jahr zurück als CSV-Datei abrufen, bzw. runterladen kann?
Auf der Homepage von Onvista kann man das ja manuell machen. Die Linkstruktur dafür habe ich aber nicht gefunden. Ich bräuchte sie, um das Ganze automatisiert für ca. 100 Fonds und ETFs ablaufen lassen zu können.
Jeder Tipp wäre sehr hilfreich. Ich brauche die Historien, um sie auch in Excel weiterverarbeiten zu können.
Beste Grüße
Rupp

Ich habe kurz (<1 Minute) in den Netzwerkverkehr geschaut. Nach Drücken des Buttons zum Download als CSV wird die oben mehrfach erwähnte Abfrage für die Kurse abgeschickt, die als JSON zurückkommen. Der Onvista-Server schickt das CSV nicht.
Daher wird wohl der Client, also dein Browser, das CSV aus den Daten im JSON erzeugen.

Wenn die Kurzanalyse stimmt, wirst du ebenso die Daten aus dem JSON verarbeiten müssen.

2 Likes

Vielen Dank Hemagi,
so klappt es. Ein typischer Link für den CSV-Download für ein Jahr zurück sieht dann z.B. so aus:
Für eine Währung:
https://api.onvista.de/api/v1/instruments/CURRENCY/EURUSD/eod_history?idNotation=1390634&range=Y1&startDate=2021-08-10
Für einen Fonds:
https://api.onvista.de/api/v1/instruments/FUND/83892/eod_history?idNotation=120531235&range=Y1&startDate=2021-08-10
usw.

Muss mich leider korrigieren: Ein CSV-Download klappt so leider doch nicht. Sondern eben nur der Aufruf der JSON im Browser. Der Browser selbst konvertiert da also wohl nichts. Natürlich kann ich dann das, was im Brwoser zusehen ist auch als *.json speichern.
Alle meine Versuche diese Json-Datei dann mit gängigen Konvertierungstools nach CSV zu konvertieren, sind aber gescheitert. In der Json-Datei fehlen z.B. komplett alle Datums.

Ich vermute, dass beim Klick auf den Download-Link Onvista nicht nur die Json-Daten abruft, sondern in einem zweiten Schritt diese Daten dann auch noch nach CSV konvertiert und dann diese CSV runter lädt.
Ich habe auch mal den Datenstrom im Netzwerk ab dem Betätigen des Downloadbuttons angeschaut. Dort passieren zwei Schritte: zunächst wird der besagte Link abgerufen und dann noch ein weiterer Schritt, den ich nicht verstehe. Siehe Sreenshot!

Data

Nö.

Deshalb ja auch wie oben schon beschrieben in PP bei der JSON-Konfig
Pfad zu Datum
$.datetimeLast[*]

Wieso willst Du Daten die Du schon in PP hast für eine andere Anwendung (hier Excel) eigentlich nochmal holen? Benutz doch einfach die Daten aus der PP.xml.

1 Like

Es wird offenbar ein eigener, minutengenauer Kalender verwendet, der am 1.1.1970 beginnt.

Beispiel: für den 9.8.22 wird für dattimeLast der Wert 1660046400 geliefert, dattimeLast 1659960000 für den 8.8.22.
Differenz = 86.400 = Anzahl der Minuten/24h. Also 1660046400 (9.8.22) / 86.400 = 19.214 Tage.
9.8.22 minus 19.214 Tage = 31.12.1969
Der 1.1.1970 dürfte also Tag 1 der onvista Zeitrechnung sein.

Der ist gut

1 Like

Das wusste ich nicht - danke für die Aufklärung

Dankeschön “ProgFriese” für die Aufklärung, so verstehe ich es allmählich besser!
Ich nutze primär PP, aber in Ergänzung auch ein selbstgeschriebenes Excel-Programm, in dem ich von verschiedenen Fonds und ETF automatisiert die Kurse einlese. Und wenn ich jetzt für ca. 100 Wertpapiere mir regelmäßig in PP für jedes dieser Wertpapiere manuell eine CSV-Datei erstelle und einzeln in Excel importiere, dann dauert das ewig. Deshalb hatte ich das ganze in Excel über automatischen Abruf der CSVs automatisiert, was jetzt ja eben auch nicht mehr geht. Hierfür suche ich nach einem neuen effizienten Weg.

Für jedes Wertpapier manuell eine csv exportieren ist natürlich nicht praktikabel. Aber ein Script (awk, python, go, whatever… auch vba sollte möglich sein) welches die Daten aus der xml wieder extrahiert und für jede gewünschte ISIN eine csv automatisch erstellt dürfte kein Hexenwerk sein. Diese csv dann per vba automatisiert in Dein Exceltool zu importieren auch nicht.

Ich kann heute abend mal gucken wie so ein Exportscript für die historischen Kurse aussehen könnte… der Bequemlichkeit halber in awk, was ich am einfachsten finde.

PP exportiert doch alle historischen Kurse für alle Wertpapiere in einer einzigen CSV-Datei? Warum sucht ihr nicht oben im Menü nach Exportieren?!

1 Like

Wenn mir die Funktion schon mal bekannt gewesen sein sollte(?) - habe ich sie schlicht vergessen :wink:

@ProgFriese Sorry, es kam vermutlich anders rüber als es gemeint war. Entschuldige bitte vielmals.

Sie ist gut versteckt und leicht übersehbar, im unteren drittel beim CSV Export. Wertpapiere 》 Alle historischen Kurse. Ich habe es auch nur per Zufall entdeckt. :wink:

pp-2

Überhaupt nicht. Alles gut.

Dankeschön ProgFriese,
das ist ein großzüges Angebot von Dir. Ich weiß es sehr zu schätzen.
Ich würde mein Excel-Projekt gerne, wenn möglich, komplett in VBA halten. Denn dann kann ich auch selbst da ganz gut Änderungen vornehmen.
Jetzt wo, ich den Aufbau der Json-Datei verstanden habe, schaffe ich es auch vielleicht alleine. Ich melde mich gerne wieder, wenn ich an einer bestimmten Stelle nicht weiterkomme.
Viele Grüße
Rupp

@Rupp
Vielleicht wäre das ein Anfang:

Denkbar wäre in Excel eine Tabelle mit den IDs, rine Abfrage innerhalb des Queries konvertiert die Daten ind gibt sie so aus wie gewünscht.