PEF Portfolio Efficiency Front
- Utilitys
- Better Trader Every Day
- Version: 2.0
- Aktualisiert: 7 September 2025
- Aktivierungen: 5
Eine ausführlichere Erklärung mit Beispielen für die PEF-Eingabe und -Ausgabe finden Sie aufdieser Blog-Seite.
1. Überblick
Das PEF-Skript ist ein Werkzeug zur Portfolio-Optimierung. Es berechnet die Pareto Efficient Frontier zwischen Portfoliorendite und Risiko (entweder CVaR oder Standardabweichung) mit Hilfe von Monte-Carlo-Simulationen und Bootstrapping-Methoden.
Das Skript ermöglicht es Händlern und quantitativen Analysten:
-
Historische Kursdaten für mehrere Instrumente laden.
-
Simulation von Portfolioergebnissen mit zufälligen oder benutzerdefinierten Gewichtungszuweisungen.
-
Performance-Kennzahlen wie mittlere Rendite, CVaR, Standardabweichung, Sharpe Ratio zu schätzen.
-
Identifizierung und Export der Pareto-Frontier-Portfolios in eine CSV-Datei zur weiteren Analyse.
2. Eingabeparameter
Preisdaten
-
InstrumenteListe : Kommagetrennte Liste von Symbolen (z. B. "XAUUSD, USDJPY, EURUSD" ).
-
historyBars : Anzahl der zu ladenden historischen Balken für jedes Symbol.
-
DataTimeFrame : Zeitrahmen der Daten (z. B. PERIOD_D1 ).
Simulations-Parameter
-
ParetoAxesSelection : Legt fest, welche Risikometrik auf der horizontalen Achse verwendet wird:
-
RetVsCVaR : Rendite gegenüber bedingtem Value-at-Risk.
-
RetVsStd : Rendite vs. Standardabweichung.
-
-
SimuDays : Anzahl der zu simulierenden Handelstage (z. B. 21,6 ≈ 1 Monat).
-
SimMethodSelection : Methode für die Simulationen:
-
MCBootstraping : Monte Carlo mit Bootstrapping (wiederholte Renditen).
-
MC : Nur Monte Carlo (mit historischer Renditeverteilung).
-
-
AnzahlMCSimulationen : Anzahl der Portfolio-Simulationen.
-
NumberBootstrapTrials : Anzahl der Bootstrap-Resamples (nur für Bootstrapping).
-
randMethod : Methode der Zufallszahlengenerierung:
-
Parallel : Schneller, weniger zufällig (vorgenerierte Zufallszahlen).
-
Sequentiell : Langsamer, mehr Zufallszahlen (sequentiell generiert).
-
-
AnnualRiskFreeReturnPct : Annualisierte risikofreie Rendite (%), die in der Sharpe-Ratio verwendet wird.
-
BetaConfidence : Konfidenzniveau für CVaR (Standardwert 0,95).
-
customWeights : Durch Kommata getrennte Liste der benutzerdefinierten Portfoliogewichte (optional).
Ausgabe-Parameter
-
printEqualWeightSet : Zeigt die Ergebnisse für ein gleichgewichtetes Portfolio an.
-
printSepCovCorr : Druckt die Kovarianz- und Korrelationsmatrizen separat.
-
printCovCorr : Druckt die kombinierte Kovarianz-Korrelationsmatrix.
-
saveCSVfile : Speichert die Pareto-Front in einer CSV-Datei.
-
AddNonPareto2CSVfile : Nicht-Pareto-Portfolios in die CSV-Datei einbeziehen.
-
ParetoCSVfilename : Name der CSV-Ausgabedatei.
3. Methodik
-
Datenerfassung
-
Historische Schlusskurse werden für die ausgewählten Instrumente abgerufen.
-
Die Renditen werden als prozentuale Preisänderungen berechnet.
-
-
Portfolio-Simulationen
-
Es wird eine große Anzahl zufälliger Gewichtungsvektoren generiert.
-
Zwei mögliche Simulationsmethoden:
-
MC (Monte Carlo): Direkte Simulation aus der historischen Renditeverteilung.
-
MCBootstrapping: Resampling der Renditen mit Ersatz, um die Variabilität zu berücksichtigen.
-
-
-
Berechnung von Risiko und Rendite
-
Für jeden Gewichtungssatz berechnet das Skript:
-
Mittlere Rendite (%).
-
CVaR (%): Durchschnitt der schlechtesten (1-β)%-Ergebnisse.
-
Standardabweichung (%).
-
-
-
Pareto-Grenze-Extraktion
-
Ein Portfolio ist pareto-optimal, wenn kein anderes Portfolio eine höhere Rendite bei gleichem oder geringerem Risiko erzielt.
-
Nicht-dominierte Portfolios werden als Pareto-Front ausgewählt.
-
-
Sharpe-Ratio-Optimierung
-
Das Skript findet das Portfolio mit der maximalen Sharpe Ratio im Verhältnis zum gewählten risikofreien Zinssatz.
-
4. Ausgaben
Experten-Registerkarte in MetaTrader5
-
Zusammenfassung der Eingabeparameter.
-
Kovarianz-/Korrelationsmatrizen.
-
Tabelle der Pareto-Grenze (Risiko, Ertrag, CVaR/std, Gewichte).
-
Performance des gleichgewichteten Portfolios.
-
Performance des benutzerdefinierten Portfolios (falls vorhanden).
-
Portfolio mit maximaler Sharpe-Ratio.
CSV-Ausgabe (falls aktiviert)
-
Die Datei wird unter MQL5/Files/ mit dem in ParetoCSVfilename angegebenen Namen gespeichert.
-
Die Spalten enthalten:
-
Risiko (CVaR% oder Std%),
-
Mittlere Rendite%,
-
Sekundäre Risikometrik,
-
Asset-Gewichte.
-
Alle anderen Ausgaben können auf der Registerkarte "Experte" des MetaTrader5-Terminals eingesehen werden.
