Rebalancing durch Zukauf

Hallo,

bisher gibt es in PP “nur” die Möglichkeit, das Rebalancing durch Umschichtung zu berechnen. Mich würde auch die Option durch Zukauf interessieren, wäre das etwas, was implementierbar ist? Vielleicht sogar durch eine einfache Schalterlösung “Umschichtung / Zukauf”?

Gruß, Bartho

5 Likes

Das geht aktuell nicht, wird aber immer mal wieder nachgefragt.

Bis dahin muss man auf ein Konto den Mittelzufluss (temporär) als Einlage erfassen.

Heyho!

Danke für den Hinweis Andreas, denn dieses Thema interessiert mich auch sehr.
Ich möchte ebenfalls ein Rebalancing mit PP durchführen und habe auch deine Anleitung gelesen, komme aber noch nicht wirklich zurecht.

Bei mir ist es so, dass ich Stand jetzt einen Betrag X zur Verfügung habe, den ich investieren möchte. Dabei kaufe ich allerdings nur eine Position, und zwar die, die am weitesten ab von der Soll-Allokation ist. Aktuell habe ich in der Spalte „Aufteilung“ alle meine Soll% eingegeben, sodass rechnerisch die Werte passen - allerdings bleiben die Felder gelb. Was hat das zu bedeuten?

Du sprachst du einem Konto, bei dem der Mittelzufluss temporär als Einlage erfasst wird. Wie muss ich das denn genau durchführen, ohne mir alle anderen Statistiken kaputt zu machen?
Einfach unter Stammdaten → Konten ein neues Konto anlegen und eine Einlage tätigen. Dieses Konto erscheint in der Asset Allocation nun automatisch bei „ohne Klassifikation“.
Wie bringe ich PP nun bei, dass er das Geld entsprechend auf die Positionen verteilen soll?

Weil aktuell ist der Ist-Wert überall größer als Soll - und ich soll quasi überall verkaufen. Macht irgendwie keinen Sinn :slight_smile:

Innerhalb einer Kategorie muss der Wert immer auf 100 aufgehen.
D.h. unterhalb von “Risikobehafteter Portfolioteil” (hier mit 68%) muss es wieder auf 100% reichen.

Wenn Du also im Gesamtportfolio “Large Caps - USA / Nordamerika” auf 32% gewichten willst, dann wären das 32 / 68 also ungefähr 47%.

Oder Du ziehst die Kategorie (per Drag & Drop) eine Ebene höher.

Das Konto muss schon auch klassifiziert sein. Z.B. als Tagesgeld. Dann schlägt PP Dir vor Tagesgeld abzubauen und statt dessen eben z.B. Large Caps Nordamerika zu kaufen.

Danke dir! Jetzt hab ichs kapiert - muss auf 100 innerhalb der Kategorie aufgehen, da wo jetzt 68 steht muss aber 68 bleiben, damit die drüberliegende Kategorie “Asset Allocation” ebenfalls wieder 100 ergibt :slight_smile:

Konto hat auch gut funktioniert - danke dir!

Hallo zusammen,
ich nutze nun auch PP und bin begeistert.
Nachdem ich alles eingerichtet hatte und mit das Rebalancing angeschaut habe bin ich auf genau das gleiche Problem gestoßen wie bartho, der Thread Ersteller.
Nachdem nun ein Jahr vergangen, wollte ich nachfragen ob sich hier mittlerweile was ergeben hat, bzw. in der Pipeline steht.

Danke vorweg
Gruß Manfred

1 Like

Nachdem ich auf dieses wundervolle Programm aufmerksam geworden bin, fehlt mir auch diese hier diskutierte Möglichkeit der Darstellung. Ich selbst hatte bis vor kurzem selbst angefangen ein Programm zu schreiben, welches auf Python und SQLite basiert. Da ich jetzt nicht so tief in der Programmiermaterie stecke, ist das alles bisher auch nur rudimentär gewesen. Allerdings hatte ich diese Kennzahl bereits implementiert.

Hier habe ich die Pythondatei mal angehangen: distribution.zip (1,8 KB)
Da ich eher sehr selten etwas Programmiere und mit Python ohnehin erst wenige Wochen Erfahrung habe, ist die Qualität eher schlecht, wie ich finde. (Und btw. nicht kommentiert :wink: )

Der grobe Idee dahinter sieht aber so aus:

  • Ermittle denjenigen Eintrag, dessen Differenz aus Sollwert (q_soll) und Istwert (q_ist) am größten ist → max(q_diff) = max(q_soll - q_ist)
  • Ermittle den Depotwert (w) des o.g. Eintrags
  • Ermittle den Gesamtdepotwert (w_g) über alle Einträge
  • Ermittle den Investitionsbedarf (I_n) um den Sollwert zu erreichen: I_n = (q_soll*w_g - w) / (1 - q_soll)
  • Addiere den Investitionsbedarfs zu dem bisher ermittelten Investitionsbedarf des Eintrags
  • Erhöhe den Depotwert des oben ermittelten Eintrags (w = w + I_n)
  • Erhöhe den Gesamtwert des Depots um den Investitionsbedarf (w_g = w_g + I_n)
  • Ermittle die neue Istverteilung für alle Einträge
  • Gehe zum ersten Punkt zurück, wenn eine Abbruchbedingung nicht erfüllt ist, sonst verlasse die Schleife. Ich habe bisher als Abbruchbedingung definiert, dass alle Einträge um 0,1%-Punkt oder weniger abweichen müssen, um aus die Schleife herauszukommen. Sinnvoller ist hier eventuell 1%-Punkt oder 0,5%-Punkte.

Vielleicht ist das ja für @AndreasB eine Hilfe :slight_smile:

2 Likes

Hallo zusammen!
Das Problem des zuflussgesteuerten Rebalancings lässt sich auch einfacher lösen durch das Verwenden von nichtlinearen Optimierungsalgorithmen mit Constraints.

Ich habe mal ein bisschen mit Python experimentiert und habe den Sequential Least Squares Programming (SLSQP) Algorithmus von Scipy dafür verwendet. Dafür muss man lediglich die Constraints, die Zielfunktion und die Jakobi-Matrix der Zielfunktion angeben.

Hier habe ich mal die mathematische Formulierung des Problems (inklusive Jacobi-Matrix) in einer PDF zusammen gefasst: slsqp.zip (122,9 KB)

Beset Grüße!

1 Like

Danke @Feluex, das sieht interessant aus.

In den letzten Tagen habe ich mich noch ein bisschen mehr mit dem Problem des zuflussgesteuerten Rebalancings befasst. Auch wenn die Verwendung von nichtlinearen Optimierern recht gut funktioniert, kann es ab und zu das Problem von lokalen Minima auftreten und man benötigt eine extra Bibliothek.

Deswegen habe ich einen Algorithmus entwickelt (inspiriert von @Arne_Hildebrandt :wink:), der das Problem unter Berücksichtigung der Mindestkaufbeträgen löst. Bei dieser Variante werden allerdings die Kosten nicht berücksichtigt.

Hier ist der Code in Java:
RebalancingV2.zip (1,9 KB)

Es wäre schön, wenn die Funktionalität von @AndreasB in Portfolio Performance integriert wird.

1 Like

Oder die ETF-Schnäpchenjagd implementieren? Damit werden quasi dynamisch die Zeitpunkte für die Nachkäufe definiert.

Hallo,

der Zukauf klappt bei mir noch nicht. Wenn ich in der Rebalancing-Übersicht mein Wertpapierkonto auf den Soll-Wert 0 setze, kommt es in die Kategorie “Ohne Klassifizierung” und wird damit gar nicht mehr beim Rebalancing berücksichtigt. Ich möchte aber, dass das Rebalancing dazu führt, dass der Bestand des Wertpapierkontos wertmäßig auf die anderen Positionen verteilt wird. Wie geht das?

Viele Grüße
Daniel

FYI

1 Like

Hallo,

Hier ist der Code in Java:
RebalancingV2.zip 7 (1,9 KB)

Es wäre schön, wenn die Funktionalität von @AndreasB in Portfolio Performance integriert wird.

Das wäre super, @AndreasB, wie siehst du das?
@Feluex vielleicht kannst du ja sogar einen Pull Request erstellen?

Zur Schnäppchenjagd: Klingt spannend - wobei ich nicht sicher bin, ob die Strategie auch über Jahre funktioniert. Ich glaube nicht so an ineffiziente Märkte. Aber wenn es in PP verfügbar wäre, würde ich es vielleicht mal ausprobieren.

Gruß,
Hendrik

So kann man es machen mit PP, wie es ist:

Durch eine Erklärung von @henfri im GitHub-Issue habe ich jetzt besser verstanden, was hier (in den neueren Beiträgen, ab Nr. 7) eigentlich das Thema ist: Statt um das

geht es hier offenbar eher um „rebalancinggesteuerte Zuflüsse“; d.h. die Fragestellung ist: Wie viel Geld muß ich zusätzlich investieren, um die Zielaufteilung allein durch Zukäufe erreichen zu können? (Und nicht: Ich habe X Euro Zuflüsse, wie muß ich die auf Zukäufe aufteilen?)

Jetzt habe ich noch versucht, zu verstehen, warum @Arne_Hildebrandt für dieses Problem eine aufwendige Iteration benötigt, jedoch vergeblich. Meines Erachtens ist der gesuchte Betrag (zusätzlich zu investierendes Geld) schlicht die größte betragsmäßige Abweichung nach oben, dividiert durch den Soll-Anteil dieser Position.

Korrektur: Es ist das Maximum von (Abweichung nach oben dividiert durch den Soll-Anteil der Position), nicht (das Maximum der Abweichung nach oben) dividiert durch den Soll-Anteil der Position.

Beispiel: Wenn ich 20% deutsche Anleihen haben will und dieser Posten derzeit um 1000 Euro zu hoch ist, dann braucht es mindestens 1000/0,2 = 5000 Euro frisches Geld, um – ohne Verkäufe – die Zielaufteilung bezüglich dieses Postens wiederherstellen zu können. Wenn 5000 Euro der höchste von diesen Beträgen ist, stellt es auch insgesamt den benötigten Mindestbetrag dar.

Hallo,

genau.
Und wieviel muss ich jetzt in Emerging Markets investieren, die aktuell 300€ über dem Target von 10% sind?
Das Problem ist ja: Nach dem Rebalancing hat das Depot nicht mehr den alten gesamt-Wert, sondern einen höheren. Dadurch kommt es zu einer Iteration.

Gruß,
Hendrik

1 Like

Das ist doch schon einberechnet.

200 Euro (5000·0,1–300). Das könnte man aber PP berechnen lassen, wenn man die 5000 erst einmal weiß.

Kann man das ganze nicht auch so durchführen, dass die größte Neuinvestition ermittelt wird und davon dann die kleineren abgezogen werden?
Also wenn das Portfolio 10k schwer ist mit A = 3k, B = 2k und C = 5k, aber alles soll zu 1/3 gewichtet sein:

Damit die 5k 1/3 entsprechend muss das Portfolio 15k groß sein, also Zukäufe von 5k.
A soll 5k betragen, hat derzeit 3k, also nehme ich 5-2 und komme auf 2k in A und dementsprechend 3k in B und 0 in C.

Dementsprechend müsste eine neue Spalte bei Position A, B, C die Summe x anzeigen, die in anderen Positionen benötigt wird, um die jeweilige Position auf die passende Größe zu bringen.
Bei A: -1k, bei B: -4k, bei C: +5k.
Und dann eine neue Spalte die mir sagt wieviel ich ich in die jeweiligen Positonen investieren soll.