Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Skripte

Portfolio Correlation Analyzer - Skript für den MetaTrader 5

Seckin Erkut
Seckin Erkut
Algo Trading Systems Developer. I develop strategies and portfolios not by hypes but from solid academic literature.

I put my money where my mouth is, be sure to check the performance of my EAs through my signals.
| German English Русский 中文 Español 日本語 Português 한국어 Français Italiano Türkçe
Ansichten:
7
Rating:
(1)
Veröffentlicht:
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Die Idee

Wenn Sie mehrere EAs auf einem Konto betreiben, kommt es nicht darauf an, wie viel jeder einzelne verdient. Entscheidend ist vielmehr, inwieweit sich ihre Risiken gegenseitig aufheben.

Ermitteln Sie die schlimmste Verlustserie jedes einzelnen Systems und addieren Sie diese Zahlen. Ermitteln Sie anschließend die schlimmste Verlustserie des gesamten Kontos im gleichen Zeitraum. Die zweite Zahl ist immer kleiner. Wie viel kleiner sie ist, ist das einzige ehrliche Maß für Ihre Diversifizierung – und kein Terminalbericht zeigt dies an.

Dieses Skript misst genau das. Es liest Ihre Historie abgeschlossener Trades aus, gruppiert sie nach Magic Numbers und liefert vier Kennzahlen.

Was es ausgibt

1. Pro System: Anzahl der Trades, Nettoergebnis und maximaler Drawdown für jede „Magic Number“, die den Filter für die Mindestanzahl an Trades erfüllt.

2. Kompression. Die Summe aller eigenständigen Drawdowns im Vergleich zum Drawdown des gesamten Kontos sowie das Verhältnis zwischen beiden. Ein Verhältnis nahe 1 bedeutet, dass die Systeme parallel verlaufen und Sie eine Strategie mehrfach einsetzen. Ein hohes Verhältnis bedeutet, dass ihre schlechten Phasen auf unterschiedliche Zeitpunkte fallen.

3. Korrelation. Die vollständige paarweise Pearson-Korrelationsmatrix zu den Gewinnen und Verlusten der einzelnen Zeiträume, den durchschnittlichen absoluten Rho-Wert, den Anteil der Paare unter 0,30 sowie das Paar mit der höchsten Korrelation nach Name. Dieselbe Matrix wird im Diagramm als Heatmap dargestellt: Blass bedeutet, dass sich die beiden Systeme gegenseitig ignorieren, rot bedeutet, dass sie gemeinsam gewinnen und verlieren, blau bedeutet, dass sie Gegensätze sind.

4. Monte-Carlo-Simulation. Die Ergebnisse desselben Zeitraums, die einige tausend Mal in eine neue zufällige Reihenfolge gemischt wurden. Die Historie lieferte Ihnen eine bestimmte Reihenfolge der Monate. Dem Markt stand es frei, dieselben Monate in einer beliebigen anderen Reihenfolge zu liefern, und die schlechteste Phase ändert sich, wenn dies geschieht. Das Skript gibt den Drawdown am 50., 90. und 95. Perzentil dieser Wolke an und zeigt dir, wo sich dein einzelner historischer Verlauf darin befindet. Die meisten Backtests landen in der günstigen Hälfte.

Alles wird zudem in eine CSV-Datei geschrieben, sodass die Matrix in einer Tabellenkalkulation als Heatmap dargestellt werden kann.

So lesen Sie die Ausgabe

Das Kompressionsverhältnis ist die wichtigste Kennzahl. Zwei-, drei- oder zehnfach: Das ist der Gewinn, den Ihnen die Diversifizierung in Ihrer eigenen Währung und bei Ihren eigenen Trades eingebracht hat.

Der durchschnittliche absolute Rho-Wert zeigt Ihnen, ob das Portfolio tatsächlich unterschiedlich ist oder nur anders aussieht. Werte unter 0,15 über viele Paare hinweg kennzeichnen ein echtes Portfolio. Werte über 0,40 bedeuten, dass Sie Variationen einer einzigen Idee umsetzen.

Das Monte-Carlo-Perzentil ist der unangenehme Wert. Liegt Ihr historischer Drawdown im 60. Perzentil der Wolke, dann waren zwei Drittel der alternativen Verläufe für Sie günstiger als der tatsächlich eingetretene. Planen Sie die Positionsgröße anhand des Endes der Wolke, nicht anhand eines einzelnen Verlaufs.

Panel

Eingaben

  • InpGrain – Granularität der Buckets für die Gewinn- und Verlustreihe: monatlich, wöchentlich oder täglich. „Monatlich“ ist die Standardeinstellung und die sicherste Option: Korrelationen, die auf der Grundlage spärlich gefüllter täglicher Buckets berechnet werden, werden durch die leeren Zellen in Richtung Null gezogen. Das Skript warnt Sie, wenn die gewählte Granularität zu viele leere Buckets hinterlässt.
  • InpMCRuns – Anzahl der Monte-Carlo-Neuverteilungen. Standardwert 2000. Werte unter 100 oder über 100.000 werden begrenzt.
  • InpMinTrades – „Magic Numbers“ mit weniger abgeschlossenen Trades als dieser Wert werden aus dem Bericht und auch aus dem kombinierten Portfolio ausgeschlossen, damit der Vergleich auf gleicher Basis erfolgt. Standardwert: 20.
  • InpRefBalance – Referenzsaldo, der ausschließlich dazu dient, den Monte-Carlo-Drawdown als Prozentsatz auszudrücken. Standardwert 10.000.
  • InpExportCSV – Speichert die Gewinn- und Verlusttabelle für den Zeitraum sowie die Korrelationsmatrix in MQL5\Files. Dateinamen erhalten das Präfix „PCA_“, damit sie niemals den Export eines anderen Tools überschreiben.
  • InpDrawPanel – Zeichnet die Heatmap in das Chart ein. Bei „false“ werden alle von einem früheren Lauf hinterlassenen Panels entfernt.
  • InpMaskMagics – Beschriftet die Systeme mit S01, S02 usw., anstatt die tatsächlichen Magic Numbers auszugeben. Nützlich für Screenshots.
  • InpPanelX, InpPanelY – Versatz des Panels von der oberen linken Ecke, in Pixeln.
  • InpPanelMaxPx – Maximale Seitenlänge des Heatmap-Rasters. Die Zellengröße passt sich der Anzahl der Systeme an; kleine Portfolios erhalten größere Zellen.
  • InpPanelMaxSys – Ab dieser Anzahl an Systemen wird das Feld übersprungen, da das Raster mehr Rechtecke benötigen würde, als das Diagramm problemlos neu zeichnen kann. Der CSV-Export enthält weiterhin die vollständige Matrix. Standardwert 64.
  • InpMCSeed – 0 generiert einen zufälligen Startwert; jeder andere Wert sorgt dafür, dass die Monte-Carlo-Perzentile wiederholbar sind. Verwenden Sie einen festen Startwert, wenn die Abbildung in einen Bericht aufgenommen wird.

Hinweise und Einschränkungen

Drawdowns werden anhand der Ergebnisse geschlossener Trades in der gewählten Granularität berechnet. Sie berücksichtigen nicht die schwankenden Kursbewegungen offener Positionen, die tiefer sind – bei Systemen mit mehreren Symbolen oft um ein Drittel oder mehr. Betrachten Sie die Zahlen als realisierten Drawdown und bedenken Sie, dass Ihr Kapital-Drawdown noch höher war.

Sowohl Einstiegs- als auch Ausstiegstransaktionen werden gezählt. Die meisten Broker erheben auch beim Einstieg eine Provision, und die ausschließliche Berücksichtigung von Ausstiegstransaktionen führt zu einer stillschweigenden Unterschätzung der Kosten.

Die Magic Number 0 wird berücksichtigt, wenn sie den Handelsfilter passiert, und das Skript vermerkt dies im Protokoll. Auf den meisten Terminals umfasst diese Kategorie manuelle Trades und alle EAs, die auf ihrer Standard-Magic-Number belassen wurden, sodass es sich nicht unbedingt um ein einziges System handelt.

Die Korrelation benötigt genügend Zeiträume, um aussagekräftig zu sein. Zwei Systeme mit einer Überlappung von sechs Monaten liefern zwar einen Wert, dieser ist jedoch nicht zuverlässig.

Die Panel-Objekte bleiben nach Beendigung des Skripts im Chart erhalten, was für einen Screenshot wünschenswert ist. Führen Sie das Skript erneut aus, wobei „InpDrawPanel“ auf „false“ gesetzt ist, um sie zu entfernen.

Was das Skript nicht tut

Es platziert, ändert oder schließt niemals eine Order. Es sagt nichts voraus, es erzeugt keine Signale und es stellt keine Verbindung zu einem Netzwerk oder einem externen Dienst her. Es liest Ihren Verlauf aus und gibt dessen Inhalt wieder.

Reines MQL5, eine einzige Datei, keine externen Bibliotheken.


Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/75606

Sessionvolatilityheatmap Sessionvolatilityheatmap

Zeigt die durchschnittliche Preisspanne pro Stunde des Handelstages als Heatmap direkt im Chart an, ergänzt durch eine Schattierung hinter den Kerzen für die Handelssitzungen in Asien, London und New York – so können Sie erkennen, wann sich ein Wertpapier tatsächlich bewegt, anstatt nur zu raten.

GoldLondonBreakout GoldLondonBreakout

Bei XAUUSD werden im asiatischen Handel die Positionen innerhalb der Spanne gehalten, anschließend wird für die Eröffnung in London ein OCO-Breakout-Paar (BuyStop/SellStop) platziert, mit ATR-basierten Stopps und einer Positionsgröße, die sich am Risikoprozentsatz orientiert. Keine Indikatoren, keine Ermessensentscheidungen – die Spanne wird gemessen, nicht geschätzt.

SHK Heikin Ashi MACD Signal Arrows SHK Heikin Ashi MACD Signal Arrows

Ein MetaTrader-5-Chartindikator, der Heikin-Ashi-Kerzen, bestätigte Kauf- und Verkaufspfeile, eine optionale Filterung von MACD-Histogramm-Divergenzen sowie konfigurierbare Benachrichtigungen anzeigt.

Trade Journal and Performance Analytics Dashboard Trade Journal and Performance Analytics Dashboard

Ein schlankes, direkt im Chart integriertes Dashboard, das Ihre abgeschlossenen Trades auswertet und Gewinnquote, Gewinnfaktor, Gewinnserien sowie eine Kapitalentwicklungskurve anzeigt – ganz ohne Strategieparameter, nur mit Ihren eigenen Zahlen, die automatisch aktualisiert werden.