Dynamische Kursdaten-URLs

Hallo zusammen,

ich bin ganz neu im Forum, also erst einmal einen freundlichen Gruß an alle! :slightly_smiling_face:
Portfolio Performance ist ein super Toll, das einem wirklich sehr gut ermöglicht einen Überblick über das eigene Portfolio und zukünftige Vorhaben zu gewinnen. Weiter so!!! :slightly_smiling_face:

Ich habe diesen Beitrag gelesen, da ich auf der Suche nach dynamischen Kursdaten-URLs zum Anbieter Trade Republic war. Final habe ich die von @UdoJ in diesem Beitrag angegebenen Links verwendet, um aktuelle/historische Kursdaten zu gewinnen. Jedoch gibt es diverse Aktien/ETFs, die bei mir gar nicht oder nur veraltet abgebildet werden. Meine Annahme ist, dass es zu viele historische Daten sind, um korrekt verarbeitet zu werden. Mein Rechner müsste stark genug sein. MacBook Pro 2018 - 16GB Arbeitsspeicher - i7; macOS 10.15.4 als Betriebssystem.

Zur Verdeutlichung des Problems noch zwei Screenshots. Die Spalten First/Last historical und Latest (Date) zeigen, dass etwas nicht stimmen kann. Bei den Aktien 2000 und 2099 und Latest ist in der Vergangenheit. Bei den ETFs für First/Last gar keine Werte und Latest zwar teils in der Gegenwart, jedoch keine Werte zu den Kursen.

Screenshot - Aktien


Beispiel-Link - Aktie
https://www.ariva.de/DE0007100000/historische_kurse?boerse_id=16&month={DATE:yyyy-MM-32}&currency=EUR&clean_split=1&clean_payout=0&clean_bezug=1

Screenshot - ETFs


Beispiel-Link - ETF
https://www.ariva.de/DE000A0KRJZ9/historische_kurse?boerse_id=16&month={DATE:yyyy-MM-32}&currency=EUR&clean_split=1&clean_payout=0&clean_bezug=1

Zur Info: Der größte Teil meiner Aktien/ETFs wird korrekt angezeigt. Allein das sind die Werte, die Fehler beinhalten. Mein Ziel ist es, dass alle werde korrekt und tagesaktuell dargestellt werden.

Meine Frage nun:
Kann ich die Links irgendwie funktionsfähig machen?
Kann ich andernfalls die Links so umschreiben, dass mir zumindest immer die letzten fünf Jahre bis zum aktuellen Zeitpunkt angegeben werden?

Wenn ja, bitte ich um Hilfe, da ich leider keine detaillierten Erfahrungen im Coden habe.

Beste Grüße und einen schönen Tag an alle
Rudolf

@AndreasB, @Al2Klimov habt ihr vielleicht als Experten hierzu eine Idee?

@rudywip Ich habe bei mir ein ähnliches Verhalten. Meine Theorie ist, dass Portfolio Performance zweistellige Jahreszahlen immer als 20xx Jahreszahl interpretiert. Folglich werden Kurse die Ariva z.B. für Dezember 1999 zurückgibt als Dezember 2099 interpretiert.
Hier eine Beispiel URL, man achte auf die zweistelligen Jahreszahlen:
https://www.ariva.de/daimler-aktie/historische_kurse?boerse_id=16&month=1999-01-32&currency=EUR&clean_split=1&clean_payout=0&clean_bezug=1

1 Like

Genauso ist es. Ich werde das mit der nächsten Version verbessern.

1 Like

@WoGehtsLang Vielen Dank für deine Antwort! :slightly_smiling_face:

@AndreasB Super! Kannst du grob sagen, wann die Version released wird?

Beste Grüße an alle

Ist jetzt mit Version 0.46.0 draussen. :smile:

Hey @AndreasB ,

vielen Dank für das Update!

ETFs funktionieren jetzt alle, aber Aktien leider noch immer nicht, obwohl die richtige Version bei mir auf dem Mac installiert ist.

Screenshot - Aktuelle Version

Screenshot - Fehlerhafte Aktien

Link für die Bayer-Aktie ist z.B.
https://www.ariva.de/DE000BAY0017/historische_kurse?boerse_id=16&month={DATE:yyyy-MM-32}&currency=EUR&clean_split=1&clean_payout=0&clean_bezug=1

Kannst du da vielleicht weiterhelfen?

Beste Grüße an alle

@AndreasB

Problem gelöst:

Ich habe die Kursdaten der entsprechenden Aktien gelöscht und die Links noch einmal eingefügt. Jetzt läuft alles!

Vielen Dank für das Update!!! :slightly_smiling_face:

Bei dem Redirect dieser URL
https://www.ariva.de/FR0000120321/historische_kurse?boerse_id=131&currency=EUR&clean_split=1&clean_split=0&clean_payout=0&clean_bezug=1&clean_bezug=0&month=2020-04-32

scheint PP irgendwas falsch zu machen. Der Response Location Header scheint eigentlich richtig codiert zu sein. Dennoch scheint PP damit irgendwie nicht zurecht zu kommen und verwendet eine „halb“? codierte URL?.

Jedenfalls landet man in einer Redirect Schleife.

Wed Apr 15 16:42:28 CEST 2020
https://www.ariva.de/FR0000120321/historische_kurse?boerse_id=131&currency=EUR&clean_split=1&clean_split=0&clean_payout=0&clean_bezug=1&clean_bezug=0&month=2020-04-32
null
java.io.IOException: https://www.ariva.de/FR0000120321/historische_kurse?boerse_id=131&currency=EUR&clean_split=1&clean_split=0&clean_payout=0&clean_bezug=1&clean_bezug=0&month=2020-04-32
null
	at name.abuchen.portfolio.online.impl.HTMLTableQuoteFeed.parseFromURL(HTMLTableQuoteFeed.java:405)
	at name.abuchen.portfolio.online.impl.HTMLTableQuoteFeed.internalGetQuotes(HTMLTableQuoteFeed.java:358)
	at name.abuchen.portfolio.online.impl.HTMLTableQuoteFeed.getLatestQuote(HTMLTableQuoteFeed.java:301)
	at name.abuchen.portfolio.ui.jobs.UpdateQuotesJob$1.run(UpdateQuotesJob.java:230)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.apache.http.client.ClientProtocolException
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:187)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
	at name.abuchen.portfolio.util.WebAccess.get(WebAccess.java:160)
	at name.abuchen.portfolio.online.impl.HTMLTableQuoteFeed.parseFromURL(HTMLTableQuoteFeed.java:396)
	... 4 more
Caused by: org.apache.http.client.CircularRedirectException: Circular redirect to 'https://www.ariva.de/l'or%C3%A9al-aktie/historische_kurse?boerse_id=131&currency=EUR&clean_split=1&clean_split=0&clean_payout=0&clean_bezug=1&clean_bezug=0&month=2020-04-32'
	at org.apache.http.impl.client.DefaultRedirectStrategy.getLocationURI(DefaultRedirectStrategy.java:177)
	at org.apache.http.impl.client.DefaultRedirectStrategy.getRedirect(DefaultRedirectStrategy.java:221)
	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:122)
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
	... 8 more

Was mir auffällt ist, dass die URL Doppelungen enthält die widersprüchlich sind. clean_bezug=1 und clean_bezug=0, etc. Vielleicht hilft es, das zu korrigieren?!

https://www.ariva.de/l%27or%C3%A9al-aktie/historische_kurse?boerse_id=131&month=&currency=EUR&clean_split=0&clean_payout=0&clean_bezug=0

Was passiert wenn Du die URL so einträgst? (die &clean_xxxx=X vorher so setzen wie Du es wirklich willst)

EDIT: sieht gut aus

EDIT2: Deine Datumsangabe hatte ich vergessen

https://www.ariva.de/l%27or%C3%A9al-aktie/historische_kurse?boerse_id=131&month=2020-04-32&currency=EUR&clean_split=0&clean_payout=0&clean_bezug=0

Witziger weise scheint Ariva sich diese URLs mit den doppelten clean_* Parametern selbst so zusammen zu bauen, wenn man die Checkboxen benutzt.
Eigentlich hatte ich die URL auch ursprünglich so, ohne dynamische Daten:
https://www.ariva.de/l%27or%C3%A9al-aktie/historische_kurse?boerse_id=131&month=&currency=EUR&clean_split=1&clean_payout=0&clean_bezug=1

Das hat auch geklappt. Ich habe jetzt nur alle URLs vereinheitlicht und umgestellt auf dynamische URLs. Das hat auch für alle Papiere ganz gut geklappt, außer für L’Oreal. Ich denke das liegt an der Kodierung. Die URL sieht also jetzt so aus:
https://www.ariva.de/{ISIN}/historische_kurse?boerse_id=131&currency=EUR&clean_split=1&clean_payout=0&clean_bezug=1&month={DATE:yyyy-MM-32}

Kann das bestätigen, L’Oreal funktioniert leider nicht mehr. Ist bei einer Änderung vor vielleicht 3 oder 4 Monaten kaputtgegangen und liefert seitdem Fehlermeldungen (Habs leider immer wieder verpennt das zu posten, sorry)

Ich habe mal eine Frage zu den URLs…für die historischen Kurse habe ich sie erfolgreich eingebunden…was macht ihr für die aktuellen Kurse?? Lasst ihr die Einstellung auf „wie historische Kurse“?? Oder wie sorgt ihr dafür, dass die Kurse sich täglich aktualisieren wenn ihr PP startet?

Danke und Gruß
Thomas

Eine Antwort auf die Frage von tgmuc89 würde mich auch sehr interessieren. Denke im Voraus!

Habs selber rausgefunden…bei den aktuellen einfach wie historische eingestellt lassen, klappt wunderbar :wink:

@tgmuc89,
danke für die schnelle Antwort. Ich würde gerne noch eine Zusatzfrage anschließen, da ich gerade an einer Problemlösung für meine umfangreiche „ETF-Sammlung“ arbeite.
Ich habe die historische und und aktuelle Kursabfrage umgestellt von bisher Yahoo auf Webseitenabfrage bei Ariva. Heute Morgen nun bekam eine Mitteilung von Ariva, dass meine IP für 24 Stunden gesperrt ist, da zuviele Abfragen gestern oder davor stattgefunden haben.
Ich habe nun erstens die automatische Kursabfrage auf inaktiv gestellt. Zweitens habe ich begonnen, die historische Abfrage auf Portfolio Report.Net umzustellen. Jetzt gibt es bei mir zwei konkete Fragen:

  1. Da meine historischen Daten bei allen gespeicherten Werten vollständig und weitgehend ohne Fehltage sind, kann ich nicht dann auf einen Eintrag unter historische Kurse verzichten (Einstellung: „Kein automatischer Download“) und die täglichen Kurse über Yahoo beziehen, vorausgesetzt es kommen künftig nicht zuviele „Fehldaten“ von Yahoo?
  2. Oder ist es sinnvoller, die Einstellung für historische Daten über Portf. Report.Net und die aktuelle Aktualisierung als „wie historische Daten“ einzustellen?

@AndreasB Machts Sinn, dass wir von uns aus die ganze Geschichte RateLimiten? Oder soll der User abwarten, bis er ne neue IP bekommt?

@Al2Klimov,
Könntest du bitte die beiden Sätze nochmals in gutem Deutsch formulieren, ich verstehe nicht was du mit dieser Antwort meinst.
Ich bin auch für eine kritische Anwort offen, aber bitte verständlich formuliert und sachlich begründet.

Der Punkt ist doch, dass Ariva und Onvista für die Bereitstellung der Kursdaten bezahlen und dies für den normalen Gebrauch kostenlos zur Verfügung stellen. Bei regelmäßigen Abfragen von Dutzenden oder gar Hunderter Wertpapiere innerhalb kurzer Zeit fällt dies unter die jeweiligen TOS bzgl automatisierter Abfrage und führt zur Gegenreaktion.

Was @Al2Klimov meint, ist die Begrenzung bzw. der zeitlichen Entzerrung der Kursabrufe. Die Frage ist nur auf welches Limit man sich einigt und wie das durch den Anwender toleriert wird. Andererseits sei mal in den Raum gestellt (wenn schon „professionell“ gearbeitet wird), ob die Kursversorgung gegen Bezahlung nicht sinniger wäre :thinking: