So bauen Sie Schritt für Schritt ein Aktienportfolio mit niedriger Korrelation auf
Den schwierigen Teil haben Sie bereits erledigt: eine Liste von Aktien, die Sie halten möchten. Das Problem ist, sie zu kombinieren. Zehn gute Namen, die alle am selben Nachrichtentag abverkauft werden, sind eine einzige Wette in zehn Ticker-Verpackungen, und keine noch so große Überzeugung von einem einzelnen davon ändert daran etwas.
Die Aufgabe, präzise formuliert: Nehmen Sie eine Kandidatenliste von Aktien und verteilen Sie Kapital darauf, sodass sich die Renditen der Positionen nicht gemeinsam bewegen – auch nicht auf der Abwärtsseite – und zwar mit einem Prozess, den Sie nächste Woche wiederholen können, statt mit einer Korrelationstabelle, die Sie einmal überfliegen.
Was Sie am Ende dieser Schritt-für-Schritt-Anleitung erreichen werden, ist ein Portfolio, dessen Volatilität niedriger ist als der Durchschnitt seiner Bestandteile, weil Kapital an Kandidaten geflossen ist, die schwach korrelieren. Die folgenden Schritte reichen von der Kandidatenauswahl über die Datenkonfiguration, das Risikomodell, die Zielfunktion, die Gewichtsbeschränkungen und den Optimizer-Lauf bis zur Verifikation. RSJ Portfolio ist eine Windows-Desktop-Anwendung, die diesen Workflow durchgängig umsetzt, sodass jeder Schritt direkt einem Bildschirm im Produkt entspricht.
Der statistische Hintergrund – warum schwache Korrelation die Portfolio-Volatilität reduziert und wie die moderne Portfoliotheorie eine Kovarianzschätzung in Gewichte umwandelt – wird im Concept guide des Produkts behandelt. Dieser Artikel bleibt auf dem operativen Pfad.
Voraussetzungen: Was Sie vor Ihrem ersten Lauf benötigen
- Windows und das Installationsprogramm. Laden Sie es von der Downloads-Seite herunter. Der Dateiname des Installationsprogramms ist versioniert und die SHA-512-Prüfsumme ist auf dieser Seite veröffentlicht, also verifizieren Sie die Datei, bevor Sie sie ausführen:
Get-FileHash .\RSJPortfolioSetup-<version>.exe -Algorithm SHA512
Vergleichen Sie die Ausgabe mit der Prüfsumme auf der Downloads-Seite. Wenn sie abweichen, laden Sie erneut herunter.
- Eine Lizenz. RSJ Portfolio wird pro Einzelnutzer lizenziert; was die Lizenz umfasst und der Checkout befinden sich auf der Pricing-Seite.
- Das Benutzerhandbuch, auf Englisch oder Deutsch, geöffnet in einem zweiten Fenster, während Sie arbeiten.
- Eine Kandidatenliste von Symbolen, die Sie tatsächlich halten möchten. Der Selection guide behandelt die Suche nach Symbolen und den Aufbau dieser Liste.
- Zugang zu einem unterstützten Datenanbieter für historische End-of-Day-Kurse, plus genügend Speicherplatz für den lokalen Cache, der auf der Seite Data and currencies beschrieben wird.
- Zwei im Voraus getroffene Entscheidungen: Ihre lokale Währung und Ihr Datumsbereich. Beide fließen in die Kursbereinigungspipeline und den Konvertierungspfad für Portfolios ein, die in mehreren Währungen notiert sind, sodass eine späte Entscheidung bedeutet, alles erneut auszuführen.
Schritt 1: Definieren Sie Ihr Kandidatenuniversum
Öffnen Sie den Bildschirm Selection und suchen Sie nach Symbolen per Name oder Ticker, und fügen Sie sie dann einer Kandidatenliste hinzu.
- Machen Sie die Liste breit genug, damit der Optimizer Raum zur Auswahl hat. Wenn jeder Kandidat eine Bank ist oder jeder Kandidat ein Halbleiterwert ist, wird die Liste konstruktionsbedingt stark korrelieren, und keine Zielfunktion wird das retten.
- Nehmen Sie Kandidaten auf, von deren Abwärtsverhalten Sie erwarten, dass es sich vom Rest unterscheidet. Das Produkt kann auf Basis schwacher Abwärtskorrelation allokieren, nicht nur auf Basis der Gesamtkorrelation, aber es kann das nur tun, wenn solche Kandidaten in der Liste sind.
- Speichern Sie die Kandidatenliste. Dasselbe Universum muss über spätere Läufe hinweg wiederverwendbar sein, sonst können Sie nicht sagen, ob eine Änderung der Allokation von Ihren Parametern oder von der Kandidatenmenge stammt.
Die genaue Such- und Listenaufbaumethodik steht im Selection guide; es gibt keinen Grund, sie hier erneut herzuleiten.
Schritt 2: Konfigurieren Sie Daten, Währung und Bereinigung
Auf dem Bildschirm Configuration:
- Wählen Sie Ihren Datenanbieter und lassen Sie den lokalen Cache mit historischen End-of-Day-Kursen füllen.
- Legen Sie den Datumsbereich fest. Eine längere Historie gibt den Korrelations- und Risikoschätzungen mehr Daten zum Arbeiten, aber sie muss den Zeitraum abdecken, der Sie interessiert. Ein Bereich, der vor drei Jahren endet, sagt Ihnen etwas über einen Markt, der nicht mehr existiert.
- Legen Sie Ihre lokale Währung fest. Wenn Ihr Portfolio in mehreren Währungen notiert ist, folgt das Produkt dem Konvertierungspfad, der auf der Seite Data and currencies beschrieben wird.
- Überprüfen Sie die Einstellungen zur Kursbereinigung. Die Bereinigungspipeline verarbeitet Rohdaten des Anbieters – Lücken, veraltete Kurse und ähnliche Artefakte –, bevor sie den Optimizer erreichen.
- Bestätigen Sie, dass der Cache gefüllt ist, bevor Sie den Lauf starten. Ein Optimizer-Lauf über einen halb gefüllten Cache erzeugt selbstsicher aussehende Zahlen, die auf unvollständigen Daten berechnet wurden, was schlimmer ist als keine Zahlen.
Die Details Parameter für Parameter stehen im Configuration guide.
Schritt 3: Wählen Sie ein Risikomodell und eine Zielfunktion
Zwei Entscheidungen definieren, was „niedrige Korrelation" für Ihren Lauf numerisch bedeutet.
Das Risikomodell. Wählen Sie eines der acht Risikomodelle. Dies bestimmt, wie der Optimizer das Risiko misst, das er zu reduzieren versucht – ändern Sie es, und Sie ändern, worauf die Allokation optimiert wird, selbst bei identischer Kandidatenliste und identischem Datumsbereich.
Die Zielfunktion. Fünf sind auswählbar:
- Minimum Volatilität
- Maximum Sharpe Ratio
- Minimum Semi-Varianz
- Hierarchische Risikoparität
- Conditional Value at Risk
Für das Ziel dieses Artikels sind Minimum Volatilität und Minimum Semi-Varianz die natürlichen Ausgangspunkte. Minimum Volatilität zielt auf die Gesamtvolatilität des Portfolios; Minimum Semi-Varianz konzentriert sich auf das Abwärtsrisiko. Wenn speziell schwache Abwärtskorrelation Ihr Anliegen ist, beginnen Sie mit Minimum Semi-Varianz und führen Sie einen erneuten Lauf mit Minimum Volatilität als Vergleich durch – und umgekehrt, wenn Ihnen die Gesamtvolatilität zuerst wichtig ist.
Auch Renditemodelle sind auswählbar. Die Zielfunktion und der Risikoschätzer zusammen sind die Definition Ihres Laufs, also notieren Sie beide, bevor Sie sich die Gewichte ansehen; es ist leicht, eine Allokation im Nachhinein zu rationalisieren. Die Seite Methods and features listet jede Methode, jedes Risikomodell, jedes Renditemodell und jede Beschränkung auf.
Schritt 4: Legen Sie Gewichtsbeschränkungen fest und führen Sie den Optimizer aus
Beschränkungen sind das, was eine statistisch optimale Allokation investierbar hält. Wenden Sie Obergrenzen pro Position oder pro Gruppe an, damit sich das Kapital nicht in einem Namen oder einer Branche konzentriert.
Führen Sie dann den Optimizer vom Bildschirm Recommendation aus. Er liefert die Allokation über Ihre Kandidatenliste zurück. Lesen Sie die resultierenden Gewichte zusammen mit der Korrelationsstruktur: Die interessante Frage ist nicht nur, welche Namen Kapital erhalten haben, sondern ob diese Namen Kapital erhalten haben, weil sie schwach mit dem Rest korrelieren.
Wenn Sie Läufe vergleichen, ändern Sie jeweils nur einen Parameter. Halten Sie die Kandidatenliste, den Datumsbereich und die Währung fest; variieren Sie das Risikomodell oder die Zielfunktion oder die Beschränkungen – niemals zwei davon gleichzeitig. Ein kleines Laufprotokoll macht diese Disziplin günstig:
run: 2026-09-25-a
universe: core-40 # identical candidate list for every run in this series
date_range: 2016-01-01..2026-06-30
currency: EUR
risk_model: <your chosen estimator>
objective: minimum_volatility
constraints:
max_weight_per_name: 0.08
max_weight_per_group: 0.25
notes: baseline run; next run changes objective only
Das auf die harte Tour zu machen – eine Renditematrix zusammenzustellen, Korrelationen zu berechnen und die Optimierung selbst in einer Tabellenkalkulation oder einem Skript zu lösen – ist möglich, aber das Produkt führt dieselbe Allokation in einem einzigen Lauf durch, und der Recommendation guide dokumentiert die Optimizer-Parameter und die resultierende Allokation im Detail.
Schritt 5: Verifizieren Sie das Ergebnis und exportieren Sie es
Bevor Sie aufgrund der Allokation handeln:
- Vergleichen Sie die Volatilität mit einer naiven Baseline. Die resultierende Portfolio-Volatilität sollte niedriger sein als eine gleichgewichtete Allokation über dieselben Kandidaten im selben Zeitraum. Wenn nicht, stimmt etwas im Setup nicht.
- Prüfen Sie die paarweisen Korrelationen der ausgewählten Positionen, um zu bestätigen, dass Kapital an schwach korrelierte – oder schwach abwärtskorrelierte – Namen geflossen ist und nicht an die größten Positionen in Ihrer Liste.
- Führen Sie einen erneuten Lauf mit einem anderen Risikomodell oder einer anderen Zielfunktion als Plausibilitätsprüfung durch. Wenn die Allokation weitgehend stabil ist, ist das Ergebnis niedriger Korrelation robust. Wenn sie stark schwankt, werden Ihre Schätzungen von einer Handvoll Beobachtungen getrieben.
- Exportieren Sie die Allokation mit den Exportoptionen des Produkts, damit sie in Ihre eigenen Aufzeichnungen oder nachgelagerte Tools übernommen werden kann.
Behandeln Sie die Verifikation als Schleife. Wenn das Ergebnis nicht Ihren Erwartungen entspricht, überprüfen Sie die Kandidatenliste und die Gewichtsbeschränkungen, bevor Sie die Daten ändern – Datenänderungen machen Ihren Vergleich über Läufe hinweg ungültig.
Wie Sie bestätigen, dass es funktioniert hat
Schritt 5 gibt Ihnen die produktinternen Prüfungen. Die unabhängige Prüfung besteht darin, die exportierte Allokation und Kurshistorie zu nehmen und die beiden Zahlen selbst zu berechnen, vorausgesetzt, Ihr Export hat eine Zeile pro Symbol mit einer Gewichtsspalte (passen Sie die Spaltennamen an Ihren eigenen Export an):
import numpy as np
import pandas as pd
w = pd.read_csv("allocation_export.csv").set_index("symbol")["weight"]
px = pd.read_csv("eod_prices.csv", index_col=0, parse_dates=True)
px = px[w.index] # only the allocated holdings
rets = px.pct_change().dropna() # same date range and currency as the run
optimized = rets.mul(w, axis=1).sum(axis=1)
equal = rets.mean(axis=1)
print(f"optimized vol : {optimized.std() * np.sqrt(252):.2%}")
print(f"equal weight : {equal.std() * np.sqrt(252):.2%}")
c = rets.corr().to_numpy()
off_diag = c[~np.eye(len(c), dtype=bool)]
print(f"avg pairwise correlation: {off_diag.mean():.2f}")
print(f"max pairwise correlation: {off_diag.max():.2f}")
Die Verifikation ist bestanden, wenn die optimierte Volatilität die niedrigere der beiden ist und die durchschnittliche paarweise Korrelation deutlich unter eins liegt. Auch die maximale paarweise Korrelation ist lesenswert: Ein einzelnes stark korreliertes Paar innerhalb einer ansonsten diversifizierten Allokation ist üblicherweise ein Problem der Positionsgröße, nicht der Daten.
Fehlerbehebung bei häufigen Problemen
- Der Optimizer erzeugt ein konzentriertes Portfolio. Verschärfen Sie die Gewichtsbeschränkungen oder erweitern Sie die Kandidatenliste – bei einem engen Universum ist Konzentration oft die ehrliche Antwort.
- Die Ergebnisse sind zwischen Läufen instabil. Prüfen Sie den Datumsbereich und ob der lokale Cache vollständig ist, und versuchen Sie dann ein anderes Risikomodell. Ein erneuter Lauf derselben Konfiguration sollte die Gewichte nicht verändern.
- Multiwährungs-Portfolios zeigen unerwartete Werte. Bestätigen Sie die Einstellung der lokalen Währung und prüfen Sie den Konvertierungspfad auf der Seite Data and currencies.
- Kurse sehen falsch aus oder fehlen. Überprüfen Sie die Bereinigungseinstellungen und die Anbieterkonfiguration, bevor Sie erneut ausführen; beheben Sie das Symptom nicht mit einem anderen Datumsbereich.
- Lizenz- oder Installationsprobleme. Arbeiten Sie das Kapitel Installation and license des Benutzerhandbuchs durch.
FAQ
Was bedeutet „niedrige Korrelation" tatsächlich für ein Portfolio?
Es bedeutet, dass sich die Renditen der Positionen nicht gemeinsam bewegen. RSJ Portfolio analysiert die Renditekorrelation zwischen Aktien und allokiert Kapital an Kandidaten, die schwach korrelieren – oder deren Abwärtsseite schwach korreliert –, was die Volatilität des resultierenden Portfolios reduziert.
Muss ich Code schreiben, um mit RSJ Portfolio ein Portfolio mit niedriger Korrelation aufzubauen?
Nein. RSJ Portfolio ist eine Windows-Desktop-Anwendung mit einem geführten Workflow: Sie bauen eine Kandidatenliste auf, konfigurieren den Datenanbieter und den Cache, wählen eine Zielfunktion, einen Risikoschätzer und Gewichtsbeschränkungen, und der Optimizer liefert die Allokation zurück. Es auf die harte Tour zu machen – Korrelationsmatrizen zu berechnen und die Optimierung selbst zu lösen – ist möglich, aber nicht erforderlich.
Welche Zielfunktion sollte ich zuerst wählen: Minimum Volatilität oder Minimum Semi-Varianz?
Beide sind auswählbar. Minimum Volatilität zielt auf die Gesamtvolatilität des Portfolios, während Minimum Semi-Varianz sich auf das Abwärtsrisiko konzentriert. Wenn Ihr Anliegen speziell schwache Abwärtskorrelation ist, ist Minimum Semi-Varianz der natürliche Ausgangspunkt; Sie können einen erneuten Lauf mit Minimum Volatilität durchführen und vergleichen.
Wie viel Historie brauche ich, damit die Korrelationsschätzungen aussagekräftig sind?
Das Produkt verwendet historische End-of-Day-Kurse, und der Datumsbereich ist konfigurierbar. Eine längere Historie gibt den Korrelations- und Risikoschätzungen mehr Daten zum Arbeiten, aber sie muss den Zeitraum abdecken, der Sie interessiert. Der Getting started guide listet empfohlene Startparameter auf.
Fazit und nächste Schritte
Der Workflow, von Anfang bis Ende: Definieren Sie ein Kandidatenuniversum, das breit genug ist, um daraus zu wählen, konfigurieren Sie den Datenanbieter, die Währung, den Datumsbereich und die Bereinigung, bevor Sie irgendeiner Ausgabe vertrauen, wählen Sie ein Risikomodell und eine Zielfunktion (zuerst Minimum Volatilität oder Minimum Semi-Varianz), wenden Sie Gewichtsbeschränkungen an, damit das Ergebnis investierbar ist, führen Sie den Optimizer aus, und verifizieren Sie dann die Allokation gegen eine gleichgewichtete Baseline und exportieren Sie sie. Ändern Sie jeweils nur einen Parameter und halten Sie den Rest fest.
Wenn Sie empfohlene Startparameter und Anleitung zum Lesen der Ergebnisse möchten, beginnen Sie mit dem Getting started guide. Von dort aus ist der praktische nächste Schritt eine Einzelnutzerlizenz von der Pricing-Seite und das Installationsprogramm von Downloads. Und wenn Sie die Maschinerie lieber verstehen möchten, bevor Sie ihr vertrauen, enthält der product blog Hintergrundartikel über den Optimizer, die Datenpipeline und die Methoden, geschrieben vom Team, das das Produkt entwickelt.