Rebalancing durch Zukauf

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

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.

Gibt es eigentlich eine Möglichkeit, in der Rebalancing Ansicht zu sehen, wie man die Zielverteilung erreichen kann nur mit Zukäufen, sich also am übergewichtetesten Wertpapier orientiert und ohne Verkäufe die angestrebte Verteilung erreichen kann?

Wenn du den Mindestbetrag suchst, mit dem du die Zielverteilung ohne Verkäufe herstellen kannst, dann siehe oben. Wenn du einen bestimmten Betrag zur Verfügung hast und wissen willst, wie du ihn verteilen mußt:

1 Like

Hallo zusammen.
Ich weiss, Thema wurde hier schon oft besprochen. Ich wünsche mir eine einfache Variante, für die ich Spalte Deltawert verwende. Zur besseren Darstellung werde ich die Werte aufrunden

grafik

Für die Zukäufe wird das Geld nur von einem Konto verwendet. In meinem Beispiel 300.

Jetzt kommt die Berechnung, die ich immer mit dem Taschenrechner durchführe.
Benötigt werden 989 für Welt und 110 für REIT, insgesamt 1099. Die anderen Werte sind ja postitive, also schon zu viel drin.
Jetzt teile ich 300 durch 1099, um den prozentualen Anteil zu berechnen. In dem Fall kommen 29,3%.
Zum Schluss multipliziere ich notwendige Werte, 989 und 110 mit mit 29,3%

Folgendes kommt raus:

  • Welt 270€
  • REIT 30€

Ich denke das ist eine einfache Methode, die man als zusäzliche Spalte anzeigen kann.