CSV-Importer scheitert an fehlendem Datumsformat

Hallo Forum,

ich möchte zu diesem Fond die historischen Kurs importieren:

Es gibt wenige Datenquellen für diesen Fond. Im PP Handbuch wurde u.a. investing.com als Beispiel für historische Kurs im CSV-Format genannt. Daher dachte ich, dass der CSV Importer für genau diesen Fall bestimmt getestet wurde.

Mein Fehler ist schlicht, dass ich für das Datum wie z.B. “Jul 14, 2024” kein passende Datumsformat finden kann. Das Format “mmm tt, jjjj (aktuelle Sprache)” sollte an sich passen, auch wenn englisch nicht die eingestellte Sprache ist.

Ich habe für die bessere Nachvollziehbarkeit eine CSV-Datei von den letzten Wochen angehangen.

Es wäre natürlich schön, wenn sich eine Plattform wie investing.com sich an internationale Datumformat-Standards halten würde. Die ISO-Norm 8601 ist sogar der allererste Eintrag (YYYY-MM-DD) im CSV-Importer: ISO 8601 – Wikipedia

Ist das ein Bug oder kann ich irgendwie den Importer doch noch überreden?

LU0731782404 investing.com Historical Data(1).csv (1,3 KB)

Kann ich nicht feststellen. Alle üblichen Seiten haben ihn.

Persönlich würde ich die CSV-Datei vor dem Importieren einfach so bearbeiten, dass das Datumsformat passt.

1 Like

einfach de.investing.com nutzen, dann wird das Format angepasst

3 Likes

Hach, Datumsoperationen wären so einfach, wenn es nicht Zeitzonen und kulturelle Dinge zu beachten gäbe. :wink:

Ohne in die Sourcen geschaut zu haben, dürfte das ein Bug sein, ja. Leider wird in der Oberfläche eine “lokalisierte” Form des Templates beim Parsen verwendet und nicht die tatsächlich auf Programmebene dem Parser übergebene. Ich behaupte aber mal, dass hinter dem “mmm tt, jjjj” das Template “MMM dd, yyyy” steckt. Richtig wäre aber “LLL dd, yyyy”. Den Unterschied lernt man nicht anhand der Beispiele in den Beschreibungen, sondern nur durch Ausprobieren oder die harte Tour, wenn Dinge aufhören zu funktionieren, wenn man z.B. von Java 8 auf Java 11 wechselt.

Bei einem Locale en_EN sind MMM (Monat “kontext sensitiv”) und LLL (Monat “stand alone”) bei der Formatierung von z.B. August identisch Aug. Bei de_DE kommt aber Aug. bzw. Aug heraus. Beim Parsen wird bei MMM auch entsprechend ein Monat mit vier Buchstaben (ausgeschrieben oder abgekürzt) erwartet, was im vorliegenden CSV nicht der Fall ist und daher auch nicht geparst werden kann.

Ich schätze mal, die haben Excel-Benutzer als Zielgruppe und von einem Programm, dessen Skriptbefehle sprachabhängig sind, erwarte ich in der Hinsicht nicht viel im Bereich der Datumsbehandlung.

1 Like

@ProgFriese: Mit diesem kleinen Trick konnte ich erfolgreich die historischen Kurse importieren.

Nun muss ich schauen wie ich den aktuellen Kurs bekomme. Leider hat Portfolio Report keine Kursdaten.
Gestern habe ich ein paar Sachen ausprobiert, aber bisher hat keine Idee den täglichen Kurs abfragen können. Yahoo Finance liefert keine Daten, da dieser Fond scheinbar an keinem Börsenplatz direkt gehandelt wird, was ich so nicht ganz glauben mag.
Für alles andere scheine ich ein Symbol zu benötigen; die ISIN reicht hier nicht. Bisher habe ich dieses Symbol bei diesem Fond noch nicht gefunden.

Das Thema “tagesaktuelle Kursdaten” empfinde als das nervigste Kapitel bei der Einrichtung von PP. Mein “Allheilmittel” ist hier Portfolio Report, aber wenn das keine Daten hat, dann stehe ich sofort im Regen. :-/

@kimmerin Vielen Dank für die super Erklärung!
Das Schema “LLL dd, yyyy” war mir so bisher nicht bekannt, aber es macht verdammt viel Sinn!

Es scheint aber ein Thema zu sein, was in der englisch-sprachigen Welt selten Beachtung findet, da es in anderen Sprachen häufiger deutliche Unterschiede zwischen beiden Formaten gibt.

Ich konnte diese schöne Übersicht dazu finden:

grafik

Ich weiß nur nicht wieso in diesem Beispiel das Komma fehlt, denn sonst wäre das Format “ll” (2x L) scheinbar das gesuchte Datumsformat. :smiley:

Es wäre daher klasse, wenn jemand mit diesen Erkenntnissen den CSV-Importer dieses Datumsformat beibringt, sodass es zumindest langfristig unterstützt wird. :+1:

5 Sekunden Suche auf xetra.com

Ich würde aber ARIVA persönlich bevorzugen

1 Like

Ich muss sagen, dass sich da inzwischen ein bisschen was getan hat. So wie in Filmen die Deutschen nicht mehr immer automatisch böse Nazis sind, ist das Thema I18N bei modernen Programmiersprachen oft “ab Werk” mit dabei. Selbst Java kam vor 30 Jahren bei Version 1.0 schon mit Unicodeunterstützung daher; nur dass Unicode Codepoints mal vier Bytes lang sein könnten, war da nicht in Betracht gezogen worden :wink:

Die Doku hinkt da aber teilweise etwas hinterher. Wer z.B. die Doku vom SimpleDateFormatter konsultiert, um den Unterschied zwischen M und L zu sehen, wird da enttäuscht werden:

Wer meine Ansicht teilt, dass es da Verbesserungsbedarf gibt, kann sich ja beim i18n-dev-Thread dranhängen und ein +1 dalassen :wink:

Das scheint für irgendeine Javascript-Bibliothek zu sein, die mit der Aussage

im besten Fall einem Irrtum unterliegt (BTW: Auch nach 30 Jahren gilt “java ist nicht Javascript”). Die verwendeten Templatebuchstaben sind zwar ähnlich, in ihrer Bedeutung aber oft anders: Y ist dort z.B. das Jahr des Datum, in Java ist das aber das Jahr der Woche des Datums. Klingt gleich, den Unterschied lernt man aber auch auf die harte Tour, wenn man ww/yyyy formatiert und am Ende des Jahres plötzlich Wochenangaben in der Vergangenheit erhält (01/2024, was eigentlich 01/2025 lauten sollte). Ist doof, wenn das ein Lieferdatum oder Zahlungsziel ist, das automatisiert verarbeitet wird und plötzlich Rechnungen vermeintlich seit 11 Monaten unbezahlt sein sollen oder der “Lagerbestand” beim Epfänger nicht mehr stimmt :wink:

Das als Referenz “hier” zu verwenden, dürfte im besten Falle nicht funktionieren, im worst-case klappt das aber und liefert falsche Werte.

1 Like

@Rafa Vielen Dank für diesen Link!

Mit dem Ariva-Link als Kursdaten-Quelle funktioniert es “Kurslieferant: Tabelle auf einer Webseite”.

Wenn ich Yahoo Finance in PP als historischen Kursquelle angebe, dann sehe ich erstmal das hier:

Ich bin daher davon ausgegangen, dass dies kein Fehler ist, sondern schlicht keine historischen Daten vorliegen.

Mit dem Ariva-Link funktioniert die Abfrage:

Bei den vielen guten Empfehlungen bekomme ich den Eindruck, dass es für die Profis genügend funktionierende Datenquellen gibt.

Für mich als Laie finde es aber schwierig an Kursdaten zu kommen, wenn weder Portfolio Report noch die in PP hinterlegten Datenquellen historische Kursdaten liefern können. Bei mir ist fast alles ein stinknormaler ETF, für den es im Portfolio Report immer Kursdaten gibt.

Mein Gedanke war “wäre klasse, wenn all die technisch möglichen Datenquellen in einem HowTo beschrieben wären” und der unscheinbare “Hilfe”-Button führt mich dann hier her:

:-/

Bei den vielen Möglichkeiten Kursdaten zu bekommen, ist es für mich als Laie schwierig den Überblick zu behalten, was technisch möglich ist, wenn die Standard-Quellen nicht funktionieren. Ich mach dies schlicht zu selten, weil Portfolio Report in 99% der Fällen wunderbar funktioniert! :+1:

Wäre es denkbar statt “Hilfe” den Button umzubenennen?
Für mich wäre der Begriff “Zusätzlich manuell verfügbare Datenquellen” o.ä. viel besser. Da ich nicht weiterkam, hätte ich mir definitiv den Link angeschaut, der “erweiterte Datenquellen” auflistet, die halt etwas mehr Einrichtungsaufwand benötigen.

“Hilfe” mag an sich sachlich korrekt sein, aber eine Formulierung die auf zusätzlichen Datenquellen aufmerksam macht, hätte mir besser mitgeteilt, dass dahinter die Lösung für mein Problem “die eingebauten Kurslieferanten liefern keine historische Kurse” zu finden ist.

Ein kleiner Assistent der mich durch die verschiedenen Datenquellen-Optionen führt, wäre klasse, aber mich hätte bereits ein anderer Text als “Hilfe” schon viel geholfen. Dann hätte es diesen Start-Post vermutlich nicht gegeben, weil ich nach und nach die aufgelisteten URLs durchgetestet hätte bis eine davon funktioniert.

Seht diesen Post bitte nicht als Kritik an!
Ich kann als Nicht-Programmierer nur mitteilen, wie meine Gedanken waren als ich das Problem hatte und was aus meiner Sicht mir den Weg zur Lösung aufgezeigt hätte. Weder kann ich ein HowTo schreiben noch Anpassungen an dem Quellcode verfassen.

Dass ich solche Schwierigkeiten hatte, lag ja glückerweise daran, dass in der Regel Portfolio Report wunderbar funktioniert und ich entsprechend keine Übung habe mit ISINs, die nicht im Portfolio Report vorhanden sind. :smiley: :+1:

1 Like