Fehlberechnung in Performancediagramm?


Mir ist aufgefallen, dass sich die Performance eines Wertpapiers ändert, wenn man einen Kauf tätigt. Dies sollte meiner Auffassung nach bei einer TTWROR Berechnung nicht der Fall sein, da diese um Geld Zu- und Abflüsse bereinigt sein sollte - sollte ich dies nicht falsch verstanden haben. Ich habe ein Beispiel erzeugt, welches ich beifüge. Im Performance-Diagramm sollte meiner Meinung nach sowohl der Benchmark als auch das Portfolio dieselbe Performance zeigen (das Wertpapier wurde zweimal gekauft und die Performance weicht nach dem zweiten Kauf vom Benchmark ab). Wenn ich den Kauf einen Tag später buche, allerdings zu dem Kurs vom Vortag, tritt die Abweichung nicht auf. Vielleicht stimmt hier ein Index oder Offset nicht.
Vielen Dank schon einmal für eure Hilfe und beste Grüsse, Quantos
Fehlbuchung.xml (127.8 KB)

Im Idealfall. In der Praxis ist das aber nicht vollständig möglich.

Vielen Dank für diesen Link, diesen Beitrag hatte ich nicht gefunden. Ich denke jedoch nach wie vor, dass es sich hier um einen Fehler in der Implementierung handelt. Wenn ich die Buchung auf den Folgetag buche, tritt diese Abweichung nicht auf.

Korrekt gebucht:

Einen Tag zu spät gebucht:

Ich kann den Benchmark als Workaround verwenden, hatte aber gedacht, dass solch ein Fehler vielleicht in einem künftigen Update behoben werden kann. Der Workaround funktioniert auch nur für einzelne Wertpapiere, die Berechnung der Depotperformance beinhaltet diese Abweichung jedoch.

Nein. Der Grund ist genau der aus dem anderen Thread:

Tatsächlich [ist der Kauf] hier aber erst erfolgt, als der Kursanstieg schon im wesentlichen passiert war. Die neu gekauften Anteile haben also an dem Anstieg nicht mehr teilgenommen. Die Benchmark dagegen hat den Anstieg (theoretisch) mitgenommen.

Das ist einfach ein Zufall der Kurse. Wären die Kurse etwas anders verlaufen, wäre es nicht so.

Hast du vielleicht Kosten in deinem Kauf? Diese würden die performance senken. Vielleicht mal ohne Kosten buchen und testen, ob es sich dann erübrigt. Ansonsten hast du recht, dass der Kauf den TTWRoR nicht beeinflussen sollte; er ist eben zeitgewichtet und das investierte Geld spielt keine Rolle.

Kosten habe ich keine gebucht, nur reine Kosten der Anteile.

Um es klarer zu machen, hier noch ein Beispiel. Es wurden mehrere Käufe getätigt (jeweils grösser werdende Posten):

Im Performance Diagramm sieht man dann folgende Abweichung zwischen Benchmark und Depot:

Wenn man alle Buchungen einen Tag später ausführt (Kurs vom Vortag), verschwindet die Abweichung vollständig:

Hier sieht man noch die verspätete Buchung der Käufe:

Hier noch die zwei Files:

Käufe korrekt gebucht, falsche Performanceberechnung:
Fehlbuchung.xml (248.9 KB)

Käufe einen Tag verspätet gebucht, korrekte Performanceberechnung:
Fehlbuchung2.xml (248.9 KB)

Programmversion:
Version: 0.58.4 (Juni 2022)

Habe ein bißchen berichtigt. Bin ansonsten hier raus, da du mir nicht zuhören möchtest.

Kannst du mal ein Beispiel zeigen, wo das der Zufall in die andere Richtung wirkt? In deinem verlinkten Beitrag einen Thread nebenan, meintest du (verstand ich zumindest so), dass bei einem Tag mit stark fallendem Kurs, ein gegenteiliger Effekt möglich sei. So ein Fall liegt hier vor:

An dem Tag, wo bei einem stark fallenden Kurs gekauft wird, verdrei- bis vervierfachte sich der Abstand zwischen eigener Performance und dem des Benchmarks. So ganz nachvollziehen, kann ich deine Erklärung damit nicht; an dem Tag hätte ich mindestens erwartet, dass der Abstand unverändert bleibt oder sich sogar verringert.

Ich sehe da keinen einzigen Kauf bei fallenden Kursen:


Die Kurslinie links vom Kauf-Dreieck führt überall aufwärts.

Ich möchte hier keine Diskussionen führen und wenn ihr möchtet, könnt ihr diesen Fehlerbericht einfach ignorieren (chirlu, du kannst es nennen, ‘ich will dir nicht zuhören’ - meine Auffassung von einem sachlichen Austausch ist eine andere…). Der Fehlerbericht hatte die Intention, das Programm zu verbessern.

Einen letzten Kommentar kann ich mir jedoch nicht verkneifen:
Nehmen wir einmal an, es gäbe einen Offset von einem Tag in der Berechnung (es wäre schon ein riesiger Zufall, dass für jeden Kauf ‘zufällig’ die richtigen Performancezahlen herauskommen, wenn man die Käufe um einen Tag versetzt einträgt und das obwohl der Kursanstieg jeweils unterschiedlich war). Dann ist es völlig logisch, dass der Gradient des Kurses einen Einfluss auf den Fehler hat. Ein Mathematiker würde sagen, der Fehler skaliert linear mit dem Gradienten der Kurskurve. Der Fehler ist also Null, wenn die Kurskurve flach ist und entsprechend stärker positiv oder negativ, je steiler die Kurve ist. Und natürlich können diese Rechenfehler sich z.T. kompensieren, wenn der Gradient mal positiv und mal negativ ist. Es bleiben jedoch Fehler in der Berechnung und das Endresultat wird sich gemäss eines Randomwalks vom korrekten Ergebnis entfernen. Just my two cents…

Nun, ich erkläre, was die Ursache des Effekts ist (nämlich nicht die von dir vermutete einer Programmfehlers, durch die Käufe um einen Tag verschoben betrachtet würden). Deine Reaktion ist – und jetzt schon wieder –, zu sagen, „Aber wenn es vielleicht doch meine vermutete Ursache ist?“.

Es ist kein Zufall, sondern durch die Konstruktion deiner Beispiele bedingt. In der Realität wirst du nicht immer zum Tagesschlußkurs kaufen. Und nicht immer nur an Tagen mit steigenden Kursen.

ich verstehe das Problem beim ersten Kauf, wenn der Kaufkurs eine abweichende Tagesrendite ergibt. Wobei theoretisch der TTWRoR ab der Uhrzeit immer noch identisch sein müsste und bei jedem cash flow ist die Rendite zu berechnen, also theoretisch auch intraday. PP hat jedoch nur Schlusskurse und benutzt diese für den benchmark, aber bei Trades eben die echten Kaufkurse. Habe ich das soweit richtig verstanden?

Die weiteren Nachkäufe dürften dann aber nicht mehr zu einer Abweichung führen beim TTWRoR, solange man kontinuierlich long war, oder?

Das Wertpapier (VSCIX), welches ich in dem Beispiel verwendet habe, hat lediglich einen einzigen Kurswert pro Tag (man kann pro Tag nur zu einem Kurs, dem Endkurs kaufen und verkaufen). Damit ist das Rechenproblem eindeutig lösbar und weist keine weiteren Komplikationen wie unterschiedliche Intradaykurse auf. Ich habe dieses Wertpapier ausgewählt, um das Problem auf die eigentliche Berechnung einzugrenzen. Meine Aussage ist nicht, dass hier dieser oder jener Programmierfehler vorliegt, dies war lediglich eine Vermutung, um den Entwicklern beim Debuggen zu helfen. Meine Aussage ist, dass es sich um eine eindeutige Rechenvorschrift handelt, die in PP nicht korrekt abgebildet wird. Ob gewünscht wird, dem nach zu gehen oder nicht liegt an anderen, dies zu entscheiden.

@Oktavian:
Meine Versuche zeigen, dass auch in diesem einfachen Beispiel jede Buchung zu einem Fehler in der Berechnung führt (wenn diese nicht einen Tag versetzt gebucht werden). Also auch wenn man long ist. In dem Beispiel habe ich lediglich zugekauft, nichts verkauft. Der Fehler wird umso kleiner, je flacher der Kursverlauf ist und je geringer das Verhältnis aus Zukauf zu Bestand.

Sobald Hellseh-Module in Computern allgemein verfügbar sind, kann man da etwas verbessern. Ansonsten gibt es nichts mehr nachzugehen; der Effekt ist vollkommen verstanden.