Dynamische Kursdaten-URLs

Also wenn ISIN oder WKNgroß geschrieben werden, funktioniert es bei mir. Nur bei ARIVA funktioniert bei mir keiner deiner Links. Ursache dürfte sein, das PP die direkte URL erwartet und ARIVA eine Weiterleitung auf ᐅ IBM Historische Kurse | Historische Werte | ARIVA.DE vornimmt, damit rechnet PP mE nicht.

Habe mal rumgestöbert und das Fehlerprotokoll gefunden :wink:

Für die URL:

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

habe ich folgendes Fehlerprotokoll gefunden:

Wed Jan 16 12:57:07 CET 2019
Während “ABInBev” ist ein interner Fehler aufgetreten.

java.lang.NullPointerException

at name.abuchen.portfolio.online.impl.variableurl.macros.ISIN.resolve(ISIN.java:17)

at name.abuchen.portfolio.online.impl.variableurl.iterators.DateIterator.resolve(DateIterator.java:80)

at name.abuchen.portfolio.online.impl.variableurl.iterators.DateIterator.hasNext(DateIterator.java:41)

at java.util.Iterator.forEachRemaining(Unknown Source)

at name.abuchen.portfolio.online.impl.variableurl.urls.DateURL.(DateURL.java:22)

at name.abuchen.portfolio.online.impl.variableurl.Factory.fromString(Factory.java:103)

at name.abuchen.portfolio.online.impl.HTMLTableQuoteFeed.internalGetQuotes(HTMLTableQuoteFeed.java:315)

at name.abuchen.portfolio.online.impl.HTMLTableQuoteFeed.updateHistoricalQuotes(HTMLTableQuoteFeed.java:289)

at name.abuchen.portfolio.ui.jobs.UpdateQuotesJob$2.run(UpdateQuotesJob.java:269)

at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

Vielleicht hilft das ja weiter…

Wenn ich eine URL habe, wo bei den Variablen ?isin={ISIN} auftaucht wird {ISIN} aufgelöst.
Vielleicht funktioniert das nur in der Serveradresse nicht?? Wenn ich da ein eigenes Attribut einsetze gibt es folgende Fehlermeldung:
hatte 3m_company-aktie in tickerSymbol eingetragen, also den Wert, den Ariva in der URL ersetzt.

Illegal character in path at index 21: https://www.ariva.de/{tickerSymbol}/historische_kurse?boerse_id=1&month={DATE:yyyy-MM-32}&currency=EUR&clean_split=1&clean_payout=0&clean_bezug=1

java.io.IOException: https://www.ariva.de/{tickerSymbol}/historische_kurse?boerse_id=1&month={DATE:yyyy-MM-32}&currency=EUR&clean_split=1&clean_payout=0&clean_bezug=1
Illegal character in path at index 21: https://www.ariva.de/{tickerSymbol}/historische_kurse?boerse_id=1&month={DATE:yyyy-MM-32}&currency=EUR&clean_split=1&clean_payout=0&clean_bezug=1

at name.abuchen.portfolio.online.impl.HTMLTableQuoteFeed.parseFromURL(HTMLTableQuoteFeed.java:369)

at name.abuchen.portfolio.online.impl.HTMLTableQuoteFeed.internalGetQuotes(HTMLTableQuoteFeed.java:328)

at name.abuchen.portfolio.online.impl.HTMLTableQuoteFeed.updateHistoricalQuotes(HTMLTableQuoteFeed.java:289)

at name.abuchen.portfolio.ui.jobs.UpdateQuotesJob$2.run(UpdateQuotesJob.java:269)

at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

Caused by: java.net.URISyntaxException: Illegal character in path at index 21: https://www.ariva.de/{tickerSymbol}/historische_kurse?boerse_id=1&month={DATE:yyyy-MM-32}&currency=EUR&clean_split=1&clean_payout=0&clean_bezug=1

at java.net.URI$Parser.fail(Unknown Source)

at java.net.URI$Parser.checkChars(Unknown Source)

at java.net.URI$Parser.parseHierarchical(Unknown Source)

at java.net.URI$Parser.parse(Unknown Source)

at java.net.URI.(Unknown Source)

at name.abuchen.portfolio.online.impl.HTMLTableQuoteFeed.parseFromURL(HTMLTableQuoteFeed.java:362)

… 4 more

Ich kann den Bug nachvollziehen. Aktuell kann man das DATE Makro nicht zusammen mit einem “Wertpapier” Makro (ISIN, TICKER, …) mischen. Das behebe ich.

(BTW, für die Markos gibt es eine Seite in der (noch) überschaubaren Hilfe - es heißt TICKER und nicht tickerSymbol)

Hallo @AndreasB,
hab mir deinen neuesten commit geholt, klappt jetzt super.
Die Anleitung hatte ich gesehen, tickerSymbol hatte ich mir selber als Attribut definiert und damit experimentiert.
Danke für den schnellen Patch.
Ist ne echt tolle Arbeit, die Du hier leistest, Danke!!
Udo

1 Like

Der Fix ist jetzt mit Version 0.37.0 auch veröffentlicht.

Hi UdoJ, wie sieht nun deine URL aus? Ich suche auch schon lange nach einer generischen URL, die ich (am liebsten per globalen default) für alle neuen Positionen verwenden kann, und die per ISIN oder WKN sucht.

Wenn ich mich z.B. für ISIN DE000A0D9PG7 auf Yahoo verlasse, so passen im Chart meine Buy und Sellpunkte überhaupt nicht zum Chart, gut 30% daneben. Ich dachte zunächst an ein Währungsproblem, aber mit Symbol WXIY.F ist es der Kurz aus Frankfurt, der in EUR sein sollte. IM Grunde möchte ich einfach alle Kurse von Tradegate, da ich dort auch vorwiegend handle.

Was mich noch wundert, die empfohlene URL mit {DATE:yyyy-MM-32} liefert Kurse bis 05.2018. Wenn man 32 durch 31 ersetzt, kommen Kurse bis 08.2016:
https:__www.ariva.de/tbf_global_technology-fonds/historische_kurse?boerse_id=131&month={DATE:yyyy-MM-32}

Und das, obwohl ariva bei dieser URL einen Wert liefert:
https:__www.ariva.de/tbf_global_technology-fonds/historische_kurse?boerse_id=131&month=2016-11-32

Hallo Mssm,
meine Standard-URL ist

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

Die erledigt alle meine Aktien.
Bei neuen Aktien hole ich mir die historischen Kurse von Ariva direkt auf der Webseite und importiere die als CSV, da kriegt man die Listen meist besser. Danach wirkt die URL perfekt.
Man kann noch optimieren bei manchen Aktien indem man mit der boerse_id spielt, 1 ist Frankfurt.

Bei deiner ISIN DE000A0D9PG7 hab ich grad geschaut, da wäre boerse_id=8 (Fondsgesellschaft) optimal, da gehen die Kurse bis 05/2005 :wink:

Für Währungen habe ich

https://www.ariva.de/{TICKER}/historische_kurse?boerse_id=130&month={DATE:yyyy-MM-32}&clean_split=1&clean_payout=0&clean_bezug=1

mit der WKN als Tickersymbol (WKN und ISIN kann man bei Währungen nicht eintragen. Auch hier die richtige Boerse wählen.

Hoffe, das hilft Dir weiter!

viel Spaß beim Probieren,
Udo

3 Likes

Vielen Dank, damit läuft es nun auch überall, wenn man im Zweifelsfall an der boerse_id= etwas nachjustiert.
Schön wäre es, wenn man global eine Default-URL hinterlegen könnte, damit man nicht alle Werte editieren muss.
Dass hier immer eine Webseite geparst wird, hört sich auf Dauer nicht sehr stabil an, hoffen wir, dass avira nicht so oft das Layout ändert. Eine echte API wäre natürlich schicker, sehr seltsam, dass es sowas in der Börsenwelt noch nicht frei gibt. In Google Docs Tabellen habe ich mir immer mit =GOOGLEFINANCE(“FRA:NFC”;“price”) geholfen, da gingen aber immer nur die Werte aus Frankfurt.

Eine Frage noch zu deiner URL. Wie geht man denn über den Tag mit den Live-Kursen um? Ich schätze, damit ist das Tab “Latest Quote” gemeint, hier steht per default immer “(same as historical quotes)”. Liefern die Historical URL denn auch stundengenaue Kurse? Aktualisiert man die Avira Seite, dann wackelt immer der oberste Wert des aktuellen Tages, ich vermute also, dass dies der Live-Kurs ist. Wünschenswert wäre hier aber für den aktuellen Tag auch eine Historie. Allerdings sehe ich bei PP keine Tagescharts. Unter All Securities, dann einen Wert wählen, sieht man unten im Chart als kleinsten Zeitraum “1M”.
Auch etwas seltsam, dass in der Ansicht “Reports->Statement of Assets” gar kein Chart zu sehen ist. Hier geht es ausschließlich um eine Tabelle des aktuellen Portfolios mit Auswertung der Performance. Dennoch ist die gleiche Chart-Ansicht hier auch interessant, wenn man durch die Werte klickt.

Hallo Mssn,
freut mich, dass Dir die URLs helfen.
Ich bin auch nur Anwender, solltest Du Wünsche zur Erweiterung haben, kann man das hier im Forum wohl auch posten.
Zu den Fragen, die ich beantworten kann:
Bei Ariva scheint regelmäßig der Tageskurs aktualisiert zu werden, deshalb habe ich auch bei den aktuellen Kursen “wie historische Kurse” ausgewählt. Die aktuellen Kurse werden aber nicht gespeichert, das ist immer der letzte Wert. Da ich eher Langfristanleger bin und kein Daytrader ist das für mich auch absolut ok. Wenn ich mal handeln will, dann nehme ich die Trading-Tools der Banken. Also auch kein Tageschart… :wink:
Ich hab mal versucht als aktuellen Kurs Yahoo zu nehmen, aber das war mir zu viel recherche wegen der Tickersymbole, das hat mir nicht gefallen. Mache das mit den Ariva-Kursen jetzt schon ne WEile und läuft bisher wirklich stabil.

Wenn Du durch die Werte klicen willst und Charts anschauen, dann musst Du unter Performance auf Wertpapiere gehen, da sind Deine Aktien mit Charts.
Du hast aber recht, ich würde mir auch auf der Vermögensübersicht die Charts wünschen, das wäre dann in sich schlüssiger.
Vielleicht machen wir mal nen Thread auf und fragen danach, bei manchen Dingen ist @AndreasB sehr schnell in der Umsetzung, wenn er das auch sinnvoll findet!

1 Like

Hallo @Mssm,

Der Hacken dabei ist das hier Google seine eigene Datenbank anzapfen kann. In allen anderen kostenlosen Varianten wie Alpha Vantage oder Yahoo steht und fällt es i. d. R. mit der Datenqualität. Und, wer zahlt schafft an :wink:

Der Punkt hier ist, woher sollten die Daten kommen? Unabhängig davon liegt der Fokus von Portfolio Performance auf die langfristige Anlage, da spielt der Tageskurs keine wirkliche Rolle. Für das Daytraiding gibt es bereits genügend Alternativen, die das ganze besser abbilden können.

Welche Grafik würdest du den hier sehen wollten?

Gruß
Marco

Hallo @Ragas,

ich muss gleich weg, deshalb hier schnell ein Zwischenruf… :wink:
Ich würde mir in dort die Kursdiagramme wünschen, wie unter Performance/Dividenden.
In der Assetübersicht würde ich gerne durch die Aktien klicken und mir die Charts ansehen… :wink:

vG Udo

Auch wenn der Fokus auf langfristiger Anlage liegt und ich selten Positionen am gleichen Tag öffne und schließe, ist das Verfolgen des Portfolios über den Tag auch nicht viel mehr als das, was PP heute schon kann. Wo diese Werte herkommen sollen, ist das gleiche Problem wie auch bei historischen Kursen. Es wäre nur zu überlegen, wenn sich über den Tag hunderte Kurse ansammeln, ob man die für die Langzeit-Charts irgendwann aufräumt und nur noch den Tageskurs behält, wenn ein Kurs z.B. 2 Wochen zurück liegt, Stichwort Database-Cleanup.

UdoJ, wie gehst du mit Split um? Deine URL bereinigt diese, d.h. der Chart hat keinen Sprung. Dafür hängen alte Buys und Sells allerdings in der Luft. Ist das nur eine optische Frage, und kann PP das dennoch richtig berechnen, auch wenn man Positionen über einen Split hinaus gehalten hat?
Wenn ich die URL mit clean_split=0 mache, sind die alten Orders wieder auf dem Graph, der springt dann allerdings beim Split, womit man ja auch leben kann.

Meine Buchungen sind alle Splitangepasst. Die meisten Buchungen kommen aus einem alten Aktienprogramm, bei dem ich die Splits durchführen konnte. Ein paar Buchungen hab ich von Hand angepasst.
Für mich ist der unbereinigte Graph ziemlich wertlos. Ich will ja die Kursentwicklung der Aktien sehen, aber die ist ohne Bereinigung ziemlich sinnlos. (meine Meinung… :wink: )

Dann würde ich auch den Weg mit Split-Anpassung gehen, damit der Graph auch interpretierbar ist. Wenn alte Buys und Sells dann in der Luft hängen, macht das eigentlich nichts, solange der Spread als Gewinn/Verlust verbucht wurde.

Dennoch wäre die Frage an Andreas, wie mit Splits auf Positionen im Depot umgegangen wird, ich hatte sowas zuletzt noch nicht. Es würde auch bedeuten, dass das entsprechende Consorsbank Dokument hierzu auch importiert werden kann.

oder rechte Maus auf die Aktie und Aktiensplit klicken, wenn ein Split ansteht. Dann werden alle alten Kurse und Buchungen angepasst, soweit ich das weiß, Habs in PP auch noch nicht gemacht.
Das Problem besteht ja nur für die alten Kurse und Buchungen.

Weiß zufällig jemand, ob/wie dynamische URLs auch auf investing.com funktionieren?

Standardmäßig wird ein Monat an historischen Daten angezeigt (zB https://de.investing.com/indices/msci-world-historical-data), das sollte im zwar Normalfall reichen, aber falls PP mal länger nicht geöffnet würde, gäbe es Lücken.

Mein erster Beitrag hier im Forum - daher erstmal ein ganz dickes Lob an die Entwickler. Nach ewigem Selbstgewurschtel in OpenOffice Calc bin ich schwer schockverliebt in dieses Programm :heart_eyes:

Ein kleines Problemchen, bzw. eine Frage: Kann es sein, dass die dynamische Kursabfrage mit {DATE:yyyy-MM-32} bei Ariva zu einer enormen CPU Auslastung führt? Mein (zugegebenermaßen etwas altersschwaches) MacBook ist ganz schön am schnaufen, seit ich die Kursabfragen eingebunden habe (vorher lief PP komplett stabil und unauffällig). Eigentlich hätte ich gedacht, dass es besser werden müsste nachdem einmalig die ganze Kurshistorie geladen wurde, aber dem scheint nicht so zu sein.

Edit: Wenn ich PP beende und dann neu starte ist alles wieder ok. Das Problem tritt nur auf, wenn in der aktuellen Sitzung neue Wertpapiere mit Kursabfrage eingepflegt wurden.

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?