Skip to main content

Systematisches Depot-Balancing

Problem und Use-Case

Aktuell wird das Depot ohne die Möglichkeit auf spezifische Ausrichtungen von Ziel-Vektoren aufgebaut. Das Programm fehlt ein echtes variables Portfolio-Balancing. Das Portfolio muss gegen Wunsch-Ziel-Vektoren z.B. Branchen/Länder/Asset/Risiko/Nachhaltigskeit-Mix ausgerichtet werden können.

Dabei sind drei Hauptthemen zu adressieren:

  • Ziel-Vektoren sind zu pflegen und zu priorisieren. Diese sollten dabei konkrete definierbare Ausprägungen erhalten, die dann nachfolgend in den Titel-Stammdaten spezifisch pro Titel belegt werden können. 
  • Einzel-Titel-Stammdaten müssen die spezifischen Ausprägungen (manuell) hinterlegen können z.B. für den Branchen-Mix eines ETFs oder Fonds. Dabei wird nicht eine einfache 1:1 Zuordnung angestrebt, sondern pro Titel müssen die Anteile der Ausprägungen definiert werden können. Als Beispiel hat ein "DWS German Equities Typ O" einen Branchenmix wie dargestellt: 

    image-1655628528678.png



    Die Pflege erfolgt dabei im ersten Schritt händisch später automatisiert, wenn möglich.
  • Das Portfolio muss so visuell aufbereitet werden, dass eine Optimierung zwischen IST und SOLL-Ausrichtung unterstützt wird. In Ausbaustufen sollte auch der Positionsaufbau selbst in der Titelauswahl als auch in der Anzahl der Stücke für Kauf/Verkaufspositionen assistiert werden.
  • Als Nutzer möchte ich Alarmschwellen nutzen können, die ein Rebalancing des Depots durch den Nutzer triggern sollten. Pro Ziel-Vektor sollten die Alarmschwellen individuell festgelegt werden können. Das Alerting sollte in der ersten Stufe primär visuell in der Anzeige erfolgen, wenn Schwellwerte bzw. die Soll-Ausrichtung inkl. Toleranzschwellen überschritten werden. Beispiele für Alerts könnten sein:
    • Zu wenig liquides Kapital
    • Zu hohe Gewichtung in % zu einer Branche 
  • Das Balancing in der SOLL-Aufteilung kann sich verändern je nach Großwetterlage bzw. Konjunktur- und /oder Börsenphase. Im zweiten/dritten Schritt können daher die Soll-Werte nicht nur fest vom Nutzer hinterlegt werden, sondern systematisch durch Makro-Ökonomische Wertsetzungen beeinflusst werden. Auch die interne Marktanalyse kann hierfür genutzt werden.

Balancing-Vektoren

Die Vektoren beschreiben die Einfluss-Vektoren, die für die Ausrichtung eines Depots relevant sind. Die Vektoren verändern sich dabei über die Zeit und sind nicht lebenslang gültig für einen Anleger. Es hängt dabei z.B. von der eigenen Risiko-Neigung und dem Anlagehorizont und Lebenssituation ab, welche Vektoren welchen konkreten Zielwert erhalten. Wird beispielsweise die Assetklasse als Ausrichtungsvektor genommen kann z.B. 60% Aktien, 20% Immobilien und 20% Edelmetalle verwendet werden. Dieser Wert verschiebt sich aber über die Lebenszeit des Anlegers gewöhnlich in Richtung sicherer Assetklassen, da im Alter der Vermögenserhalt im Vordergrund steht.

Grundsätzlich kann jedes Attribut und jede Kennzahl eines Titels als Vektor genutzt werden. Dabei ist zwischen einem frei zu benennenden Vektor und einem Vektor mit einem eindeutigen Funktionsindex aus den Stammdaten zu unterscheiden. So können die Landeszuordnungen aus den bisherigen Stammdaten genutzt werden ohne erneut als  Vektor beschrieben werden zu müssen (=Funktionsindex). Ich kann aber beispielsweise die Risikogruppe als eigenen Vektor hinterlegen, der bisher nicht abgebildet wurde. Diese sollte aber dennoch erfassbar und genutzt werden können z.B. mit einem Rating-Ansatz 1..5 Sterne. Als Nutzer muss man damit die gewünschten zu nutzenden Vektoren selbst aufbauen, benennen und priorisieren können. Mindestvoraussetzung ist dabei, dass die Ausprägungen sich tatsächlich gruppieren lassen. Wenn jeder Titel einen eigenen Wert besitzt, ist dieser Vektor sinnlos. Ein Ziel-Vektor nach ISIN wäre ein derartiger unsinniger Fall.

Welche Vektoren sind beispielsweise sinnvoll:

Wahrscheinlich
sinnvolle Basis-Priorität und
damit auch Hierarchiestufe
Name
Beispiel-Ausprägungen
Details und Ergänzungen
Heute Abbildung
1 Laufzeithorizont
  • Trading (z.B. für Optionen, <1 Monat)
  • Shortterm (< 1 Jahr)
  • Midterm (1 Jahr .. 3 Jahre)
  • Longterm (>3 Jahre)

-
1 Risikogruppe Ausfall und Verlust-Risiko Es kann bei Fonds den Ratings entsprechen -
1 Assetklassen
  • Rohstoffe
  • Aktien
  • Indizes
  • ETFs
  • Fonds
  • Immobilien
  • ...

Nur mit einer einfachen Zuordnung bisher
1 Anlagestil
  • Subtranz
  • Neutral
  • Wachstum


2 Branche
  • Finanzen
  • Gesundheit
  • Hightech
  • Energie
  • Handel
  • Chemie 
  • ...

Nur mit einer einfachen Zuordnung bisher
2 Region
  • USA
  • Asien 
  • ...


2 Land
  • ...

Nur mit einer einfachen Zuordnung bisher
3 Marktkapitalisierung d.h.
Firmengröße
  • Small
  • Mid
  • Large

Als Marktkapitalisierungsfunktion vorhanden, aber ohne Werte-Bereiche, was ein Small/Mid/Large-Titel ist
3 Währung



Anforderungen für die Umsetzung

Auswahl und Auswertung der Balancing-Vektoren für das aktuelle Portfolio

Auswahl der Ziel-Vektoren

Die Vektoren sind vom Nutzer in einer gewünschten Reihenfolge in dem Reiter "Portfolio-Balancing" auszuwählen, so dass sich daraus die spätereren Hierarchien ableiten. Es können dabei 1 .. n der Vektoren ausgewählt werden. Die Vektoren wurden dabei zuvor durch den Nutzer selbst definiert (Name, Mögliche Ausprägungen, Soll-Werte).

image-1655628536163.png

Darstellung der Ziel-Vektoren in einer Hierarchie

Die Depotwerte werden nachfolgend entsprechend der Reihenfolge in einer Baumhierarchie dargestellt. Die Soll-Balancing-Spalte verfärbt sich dabei mit Farbcodes, je nachdem ob die Zielstruktur erreicht wurde. Bei orangen Werten wird der Zielwert überschritten oder unterschritten, bei grünen Werten liegt es zwischen Min und Max % Wert. Gelbe Werte könnten in einem Toleranzbereich von +-5% liegen.

Hier als angedeutete Mockup-Implementierung:

image-1655628540199.png

Wertermittlung für die IST-Wert-Betrachtung

Die IST/SOLL-Balancing-Werte orientieren sich dabei immer am aufsummierten aktuellen Wert-Volumen der Depot-Währung oder am Kaufvolumen in der Depot-Währung.

Die IST-Werte können damit schwanken mit dem tagesaktuellen Kurswert, wenn das Wert-Volumen genutzt wird. Dies würde aber auch dazu führen, dass gut laufende Titel im Balancing "rot" angezeigt werden, was die falsche Wirkung haben kann. Daher soll bewusst auch nur das Kaufvolumen genutzt werden können und somit das Balancing insb. bei Neukauf von Titel unterstützend wirken. Das RE-Balancing kann dann periodisch z.B. alle 6 Monate genutzt werden, um "Wert-Cluster" deutlich über der Norm wieder anzupassen oder abzugleichen. 

Justierung im Balancing

Beim Balancing kann auch bewusst der Einfluss von Faktoren angepasst werden d.h. nicht nur das Depot in Richtung der SOLL-Werte angepasst werden, sondern auch die SOLL-Werte auf Basis der aktuellen Depotentwicklung um insb. gut laufende Titel hier zu justieren.

Pflege der Balancing-Vektoren

Definition

Es werden Definitions-Masken benötigt, die festlegen welche Vektoren gewünscht sind und wie diese sich aus den Daten (automatisch) ableiten lassen.  
Dabei können die Werte manuell gesetzt werden, wie hier oder automatisch aus bereits vorhandenen gepflegten Stammdaten z.B. für Assetklassen, Branchen, Länder etc.

image-1655628546677.png

Wird eine Funktion benutzt, erfolgt die Vorbelegung der möglichen Werte auf Basis der vorhandenen Ausprägungen über alle Titel (Funktions-Ziel-Vektor). Die Min-Soll auf das % zu verteilende Gesamtvolumen der Anlage, ebenso wie der Max-Soll % Wert muss immer hinterlegt werden, unabhängig ob die Werte manuell oder automatisch generiert worden sind.

Es sollte dabei möglich sein eine bewusste selektive Übernahme von Werten aus den Stammdaten vorzunehmen. Eine pauschale Übernahme aller vorhandenen Ausprägungen wird nicht sinnvoll sein ohne gleichzeitig auch die Min/Max-Soll % Werte festlegen zu wollen. Es muss eine selektive Vorauswahl erfolgen.

Sonderposition Sonstiges

Damit wird am Ende nie eine komplette Funktionsabbildung verwendet, sondern eine automatische "Übernahme" unterstützt. Werte z.B. für Branchen die nicht zugeordnet sind, werden unter "Sonstiges" geführt. Der Wert "Sonstiges" wird automatisch eingetragen und kann auch eigene SOLL-Werte erhalten. Die Funktionsabbildung besitzt in der Ziel-Vektor-Definition damit keine Auflösung zur Laufzeit! Die Funktionsindexe werden nur in der Ausprägung pro Titel nur automatisch aufgelöst.

Gesamtabbildung und Toleranzen

Die Gesamtsumme der Werte sollte dabei inkl. Toleranz in der Theorie nicht mehr als 100 % umfassen.
Leider wird ein Depot aber selten vollständig bei hoch differenzierten Abbildungen alle Einzelausprägungen umfassen, daher soll es möglich sein bewusst eine Einzelwert-Sicht zu definieren unabhängig ob damit die Gesamtsumme der % Verteilung mehr als 100% umfasst.

image-1655628576261.png

Hier in einer optimierten Detail-Ansicht:

image-1655628583555.png

Pflege der Ausprägungen pro Titel

Für den ersten Entwurf muss es möglich sein die Ausprägungen pro Titel  (Aktie, Fonds ...) festzulegen z.B. die Branchenverteilung mit den IST-Werten zu hinterlegen.
Nachfolgend wieder am Beispiel der Branchenstruktur.

 

 

image-1655628631010.png

Die Eingabe ist nur dort notwendig, wo Vektoren genutzt werden, die manuelle Werte erfordern und nicht durch die eine einfache "Funktion" berechnet werden kann z.B. durch Übernahme aus den Standard-Stammdaten. Für die Startphase wird das Balancing hohe manuelle Aufwände produzieren, da die Werte manuell zu hinterlegen sind. In späteren Ausbaustufen soll/kann dies automatisch erfolgen. % Werte sollten grafisch visualisiert dargestellt werden.

In der Eingabe sollte zwischen den Einzel-Vektoren mit Tabs (hier noch nicht berücksichtigt) umgeschaltet werden können.

image-1655628608858.png

Überlegungen für die erweiterte Nutzung in Handelsstrategien

Um Handelsstrategien zu nutzen (siehe AddOns für ShareHolder) werden diese mit Parametern gestartet und liefern automatisiert Ergebniswerte mit einer Sortierung nach Ranking. Wird ein Balancing-Setup verwendet, sollte es nun möglich sein, den "Fit" eines Titels in der Zielstruktur des Portfolios einzeln zu bewerten. Dabei wird versucht entsprechend dem Ranking der Titel aus einer Strategie der "Fit-Score" der Reihe nach zu berechnen d.h. verbessert sich das Balancing durch Aufnahme des Titels oder verschlechtert sich das Portfolio entsprechend der Zielstruktur eher.

Beispiel-Prozess zur Abbildung:

  1. Nach Ausführen der Strategie über einen definierten Markt liegt eine Sortierung entsprechend der Strategie vor z.B. nach Ranking-Score-Werten
  2. Nun wird geprüft, welche der ersten 20 bis 30 Aktien valide sind d.h. für welche man ein "gutes Gefühl" hat
  3. Die Guten wählt man zunächst z.B. über Checkboxen aus für die weitere Betrachtung
  4. Es wird nun ein Ziel-Portfolio gewählt, wo entsprechend der Ziel-Balancing-Struktur ein ausbalanciertes Depot gebildet werden soll. Im Default ist es das aktuell gerade aktive Portfolio.
  5. Nun vergleicht der Algorithmus, welche sind dazu gekommen und welche kommen nicht mehr vor ebenfalls wird dargestellt, wieviel muss ich von welcher Aktie nachkaufen um eine Target-Verteilung zu haben
    (z.Bsp.: Gleichverteilt oder nach Sektoren gewichtet wie in meinem Excel oder nach Momentum gewichtet....)


Anforderungen für interne Berechnungs-Features zum Balancing

Abgeleitet insb. für die Nutzung im Zusammenspiel mit Handelsstrategien ergeben sich einige notwendige Berechnungsfunktionen:

  • Funktion: Balancing-Score-BuyVolume: Double + Balancing-Score-MarketVolume: Double
    Es muss möglich sein für ein Portfolio ein Balancing-Score-Wert zu berechnen. Dabei wird praktisch eine gewichteter Delta-Wert zwischen SOLL-Wert und dem aktuellen IST-Wert berechnet.

  • Funktion: Balancing-Score( pStock: TStock; pBuyVolume: Double ): Double
    Gleichzeitig muss in einer Art Simulation ein Balancing-Score-Wert mit einem simulierten Kauf des Titels berechnet werden können. Dabei wird ein Auftragsvolumen für ein Titel parametisiert angenommen. Konkret: Wie ist der Portfolio-Score nach Kauf von Amazon-Aktien im Wert von 2000€. Wird beispielsweise bereits 40% eCommerce als Branchen-Soll-Mix angegeben und es sind bereits 39% im aktuellen Portfolio vorhanden, kann der Portfolio-Score schlechter als der bisherige Score-Wert werden, weil durch die Delta-Betrachtung zwischen IST und SOLL eine Übergewichtung festgestellt wird.
  • Funktion: Balancing-Score-Volume-Recommendation( pStock: TStock ): Double
    Daraus ergibt sich indirekt auch die Anforderung, dass ich für einen Titel rückwärts eine Empfehlung für das sinnvolle Kaufvolumen bei Aufnahme eines neuen Titels berechnet werden können muss. Die heutige Implementierung macht dies allein auf Basis der vorhandenen Liquidität und berücksichtigt derartige Balancing-Anforderungen nicht. Die Integration muss dabei innerhalb des Transaktionsformulars erfolgen.