2 kleine UI-Verbesserungsvorschläge (historische Buchungen + RV-Diagramm)

So, nach Jahren im Wertpapierforum habe ich nun aiuch eingesehen, dass die Diskussionen nun hier geführt werden - und habe mich angemeldet, um meine beiden kleinen Vorschläge zu äußern. Ich glaube, beide würden leicht umzusetzen sein und viel Gewinn bringen. Nach veinigen Jahren bin ich genauso begeister von PP wie am ersten Tag - wenn es PP nicht gäbe, müsste es dringend erfunden werden :slight_smile:

Vorschlag 1) Das neue “historische Kurse aus Buchungen generieren” ist ein gutes Feature, das nur leider relativ versteckt ist. Irritationen entstehen auch bei mir als mittlerweile doch recht erfahrenem PP-Nutzer noch gelegentlich dadurch, dass mal irgendwo ein Kurs fehlte und dann komische Rendite-Werte irgendwo angezeigt werden, da muss man echt tierisch aufpassen. Eigentlich ist es doch für jeden sinnvoll, den historischen Kurs aus Buchungen zu generieren, daher würde ich den Kurs PP automatisch übernehmen lassen bei eienr Buchung - außer wenn für das Datum bereits ein Kurs existierte.

Alternativ könnte man direkt im Kauf-Dialog ein Häkchen dafür setzen, das standardmäßig aktiviert sei sollte. Das wäre ein besonders transparenter und komfortabler Weg.

Vorschlag 2) Im Performance-Diagramm aktualisiere ich regelmäßig meine aktuellen Anlagen, um einen schönen Überblick zu bekommen. Ebenso regelmäßig ärgere ich mich dann darüber, dass ich genau das gleiche nochmal neu für das Rendite-Vola-Diagramm machen müsste - und unterlasse es dann zumeist aus Faulheit. Es wäre toll, im RV-Diagramm einen Button einzuführen, mit dem man die ausgewählten Wertpapiere des Performance-Diagramms einfach mit einem Klick übernehmen könnte. Programmiertechnisch dürfte das ein Klacks sein - für den User eine große Erleichterung.

Ich hatte die Funktion für das Importieren der historischen Buchungen damals mit Pull Request #779 implementiert.

Das automatische Anlegen hatte ich in Betracht gezogen, bin aber auf dieses Problem gestoßen:
Angenommen, Du importierst ein Kauf-Dokument mit einem neuen Wertpapier sowie auch das zugehörige Verkaufs-Dokument.
Dann wird das Wertpapier angelegt und auch der entsprechende Kurs importiert.
Wenn Du jetzt nachträglich einen Kursprovider (Yahoo etc.) einstellst, gibt es ja da schon einen Kurs.

@AndreasB: Wird dann der vorhandene Kurs überschrieben oder bleibt er zusätzlich bestehen?
Falls das keine Probleme gibt, könnte man das sicher auch automatisieren.

Ich hatte das in das Menü gehängt, da dafür ein separater Quote-Provider sicher Overkill gewesen wäre :wink:

Würde es denn überhaupt ein Problem darstellen, wenn der Kaufkurs der Tageskurs bleibt und nicht vom Kursproviderkurs überschrieben wird? Für den jeweiligen Nutzer ist doch tatsächlich der Kaufkurs der viel relevantere Tageskurs als der Schlusskurs.

Relevant wäre der Schlusskurs des Tages meiner Einschätzung doch nur, wenn jemand die Intraday-Rendite am Kauftag betrachten wollte, dann müsste er den Kurs manuell auf den Schlusskurs anpassen - das wäre ein sehr ungewöhnlicher Usecase für PP, denke ich. Der Renditefehler, mit dem man aktuell noch leben muss, wirkt sich dagegen bei jedem Nutzer aus, der es nicht bemerkt und manuell repariert.

Das kommt drauf an. Der Yahoo Quote Provider lädt Kurse ab dem letzten historischen Kurs. Der HTML Provider lädt (und überschreibt) alle Kurse, die auf der Webseite zu finden sind. Und genauso überschreibt der CSV Import alle Kurse.

Ich habe Kurse auch Buchungen bisher nicht in die historischen Kurse eingetragen, weil

  • im Yahoo Provider dadurch leicht Lücken entstehen können (lädt nur ab dem letzten Kurs)
  • wie geht man damit um wenn der Anwender die Buchung editiert? (ein generierter Schlusskurs müsste wohl angepasst werden - aber der Schlusskurs eines Emittenten)
  • und wenn die Buchung gelöscht wird? Kurs auch löschen?

Ich denke man könnte im Wertpapier (Security) zusätzlich eine Liste von berechneten (aus Buchungen abgeleiteten) Preisen vorhalten (aber nicht im XML speichern). Die Methode #getSecurityPrice könnte diese Liste dann nutzen, falls passenden historische Kurse fehlen.

Nicht ganz einfach ist die Frage wann die abgeleiteten Preise aktualisiert werden. Klar, direkt nach dem Laden kann man die setzen. Und beim Editieren über den Dialog, oder als in-place editor, beim CSV/PDF Import, beim Generieren der Sparpläne (wobei die natürlich nur mit einem historischen Kurs generiert werden). Scheint erst mal überschaubar - Security#refreshDerivedPrices(Client)?

Was meinst Du @sebasbaumh?

Quasi ein “Datenreihen aus Diagramm X verwenden”? Man würde aber wohl alle Datenreihen in der aktuellen Ansicht ersetzen wollen? Oder die fehlenden Datenreihen hinzufügen?

@AndreasB
Zu 1:
a) Das mit dem Yahoo Provider könnte man ja z.B. dahingehend anpassen, dass er bis zu eienr Stelle lädt, an der 3 Kurse an aufeinanderfolgenden Tagen liegen
b+c) Stimmt, das sind gute Fragen. Ich nehme an, dass es schwierig ist zwischen auf diese Weise angelegten Buchungen und auf andere Art angelegten zu differenzieren - oder könnte man dafür leicht eine neue Variable für jeden gespeicherten Kurs einführen (=True WENN durch Buchung entstanden)? Dann könnte man beim Editieren auch den Kurs mit ändern, wenn er durch eine Buchung entstanden war. Ebenso würde ich den Kurs dann überschreiben, wenn der bisherige nur durch eine Buchung (=TRUE) generiert wurde und man einen Abrufkurs bekommt. Löschen würde ich ihn aber nicht bei einem Löschen der Buchung, denn das größte Problem entsteht ja gerade dann, wenn irgendwo kein Kurs vorhanden ist.

Zu 2: Genau, man würde sicher nicht nur ergänzen wollen, sondern Gleichheit herstellen wollen. .

Stimmt, das könnte man auch machen. Quasi sich noch eine “Herkunft” speichern.

Die Liste finde ich super, sowas schwebte mir zuerst vor. Das Nachführen per Menübefehl habe ich dann integriert, da es sich recht einfach lösen ließ.
Denn man benötigt diese Kurse ja wirklich nur, wenn es keine anderen Kurse gibt.
Wirklich alle Stellen zu erwischen ist aber natürlich schwierig - eventuell könnte man es in die Abfrage der Preise für eine Security einschleifen. Dann sollten alle darauf basierenden Funktionen ohne Anpassung funktionieren.

Das Überschreiben der Kurse ist ein schwieriges Thema… auf der einen Seite wäre es gut, die Kurse von verschiedenen Providern bzw. HTML-Seiten zusammenzuführen. Dann überschreibt man ja nicht.
Andererseits kann es auch sein, dass man die gleiche Datei noch einmal (irrtümlich) importiert.

PS: Das Speichern der Herkunft finde ich auch gut. Ich habe selber schon überlegt, was passiert, wenn ich den Provider mal wechsele und dann die alten Kurse behalte. Oder auch, wie man feststellen kann, woher die Kurse stammen.

Das sollte jetzt mit Version 0.27.6 möglich sein.

2 Likes

Wow, erstmal ganz herzlichen Dank für die schnelle Implementierung!

Lege ich neue Aktien in einem Diagramm an, kann ich sie jetzt schnell in andere Diagramme übernehmen. Schade ist nur, dass das ganze (noch?) nicht im umgekehrten Fall funktioniert. Wenn ich Aktien aus einem Diagramm lösche, muss ich sie imemr noch aus jedem Diagramm einzeln löschen. Hier wäre es komfortabler, wirklich eine 1:1-Abbildung der Akitenauswahl für ein anderes Diagramm übernehmen zu können und nicht nur Wertpapiere hinzuzufügen - sondern eben überflüssige auch zu streichen.

Super - jetzt funktioniert es einfach total einfach! Herzlichen Dank!