Entwicklung eines plattformübergreifenden Grid-EAs: Testen eines Mehrwährungs-EA

5 August 2020, 15:22
Roman Klymenko
0
300

Einführung

Dieser Artikel ist eine Art Postskriptum für eine Reihe von Artikeln, die den Grid-Expertenberatern gewidmet sind:

Wir werden in diesem Artikel keinen Expert Advisor neu erstellen oder verbessern. Unser Mehrwährungs-EA wurde bereits erstellt. Seine neue Version wird unten angehängt, zusammen mit Testberichten und der SET-Datei, die für die Tests verwendet wurde.

Der Hauptzweck des Artikels besteht darin, die auf Mittelwertbildung und Martingal basierende EA auf dem Markt zu testen, für den sie ursprünglich nicht vorgesehen war. Kann ein Expert Advisor, der nur mit Long-Positionen handelt, den Rückgang des S&P 500 von USD 3400 auf USD 2200 überstehen? Der Rückgang betrug immerhin mehr als 30 Prozent.

Grundregeln des Handelssystems

Das im Expert Advisor implementierte Handelssystem besteht aus den folgenden Regeln.

Markt. Der EA handelt nur mit den US-Börsenaktien. Der Broker bietet Zugang zu ein paar Dutzend der am häufigsten gehandelten Aktien. Aktien zum Testen des Multi-Währungs-EA werden aus dem verfügbaren Set ausgewählt.

Eröffnungsrichtung. Alle Positionen werden nur in der Kauf-Richtung eröffnet.

Die Wahl dieser Richtung ist offensichtlich, wenn man sich die langfristigen Kurs-Charts der meisten Aktien anschaut. Insbesondere, wenn man einen Zeitraum von 2010 bis Anfang 2020 analysiert. Schauen Sie sich zum Beispiel das Wochen-Chart für Microsoft-Aktien an:

Microsoft-Aktie, Wochen-Chart

Aktien stiegen stetig an, bevor der Markt nachgab.

Einstiegspunkt. Die Position wird basierend auf dem Wert des RSI-Indikators eröffnet. Die Messwerte werden je nach Vermögenswert auf unterschiedliche Weise interpretiert. Für einige der Vermögenswerte wird eine Eröffnung vorgenommen, wenn der RSI unter 30 fällt. Bei Anderen erfolgt die Eröffnung, wenn der RSI über 70 steigt. Es hängt also rein vom Vermögenswert ab.

Die Anzahl der Mittelwertbildungsschritte. Es ist äußerst gefährlich, eine Mittelwertbildung mit einer unbegrenzten Anzahl von Schritten zu verwenden. Wenn sich der Kurs des Vermögenswerts über einen längeren Zeitraum in eine Richtung bewegt, werden Ihre Verluste mit jeder neuen Position explosionsartig ansteigen.

Daher wird die Gitterlänge für jedes Symbol auf vier offene Positionen (Stufen) begrenzt.

D.h. wenn ein Gitternetz für ein bestimmtes Symbol aus maximal 3 Stufen besteht und der Symbolpreis ein Niveau erreicht, auf dem Stufe 4 eröffnet werden sollte, wird das System alle bestehenden Positionen auf diesem Niveau schließen, anstatt die vierte zu eröffnen. Dies ermöglicht die Verwendung von Stop-Losses im Mittelungsalgorithmus.

Mittelwertsmethode. Eine bestehende Position kann gemittelt werden (durch Eröffnung einer zusätzlichen Position zu einem niedrigeren Preis), indem ein festes Los verwendet oder das Los für jede neu eröffnete Position erhöht wird.

Wenn das Los unter Verwendung einer Martingal-Methode erhöht wird, dann wäre der Verlust im Falle eines Stop-Loss viel höher als der Gewinn aus dem Take-Profit. Aus diesem Grund kann die Anwendung der Martingal-Methode psychologisch schwierig sein. Wenn Sie sehen, dass Sie bei einem Stop-Loss den gesamten Gewinn, den der Expertenberater in den letzten zwei Wochen erzielt hatte, verloren haben, kann dies frustrierend sein. Deshalb ist es besser, überhaupt keine Stop-Loss zu haben.

Beginnen wir mit der Auswahl von Instrumenten, die bei der Mittelwertbildung für feste Losgröße gute Ergebnisse zeigen.

Wenn wir Martingal verwenden müssen, wird das Los nicht exponentiell ansteigen, sondern bei jedem neuen Schritt um die ursprüngliche Losgröße erhöht.

Die nachstehende Tabelle zeigt Berechnungen für verschiedene Arten der Mittelwertbildung.

Typ der Mittelwertbildung
Anzahl der Schritte
 Verlust bei Stop-Loss
 Konstant
 2
 3
 Konstant  3
 6
 Konstant  4
 10
 Erhöhung um die anfängliche Losgröße
 2
 4
 Erhöhung um die anfängliche Losgröße  3
 10
 Erhöhung um die anfängliche Losgröße  4  20

Verluste im Falle von Stop-Loss bei der entsprechenden Stufe werden in der Anzahl der Schritte angegeben. Das heißt, wenn die Schrittgröße 7 Punkte beträgt, dann entsprechen die Verluste bei einer konstanten Mittelwertbildung bei Schritt 4 10*7 = 70 Punkte.

Wenn also die Losgröße um die anfängliche Losgröße erhöht wird, kann die Kette nicht länger als drei Schritte sein. Dies liegt daran, dass die Verluste in Schritt 4 zu groß wären.

Rastergröße und der Abstand von Take-Profit. Sowohl die Rastergröße (Abstand in Punkten zwischen zwei offenen Positionen) als auch die Take-Profit-Abstand werden auf der Grundlage der Optimierung ausgewählt. Um die Verluste im Falle von Stop-Loss zu begrenzen, werden die Parameter so eingestellt, dass der Verlust 1-3 Gewinnen aus Take-Profit entsprechen kann.

Handels- und Testzeitraum. Wie aus den meisten Aktiencharts ersichtlich ist, steigt der Preis über einen langen Zeitraum kontinuierlich an. Aber das Schlüsselwort hier ist "langer Zeitraum". Dieses Handelssystem ist für einen Zeitraum von nicht weniger als einem Jahr ausgelegt. Der optimale Zeitraum beträgt 4 Jahre. Wenn Sie sich für dieses Handelssystem entscheiden, empfehle ich, den Zeitraum von vier Jahren in Betracht zu ziehen.

Auch für den 4-Jahres-Zeitraum, von Januar 2016 bis Januar 2020, wurden Tests und Optimierungen durchgeführt. Die gefundene Reihe von Handelsinstrumenten wird zusätzlich im Zeitraum bis April 2020 getestet, das ist der Zeitraum, in dem die Aktienmärkte gefallen sind.

Handelslos. Die Tests und die Optimierung wird mit einer konstanten Losgröße durchgeführt. Für jedes der Symbole wird eine individuelle Losgröße verwendet.

Der resultierende Mehrwährungs-EA wird zusätzlich mit einem allmählich ansteigenden Handelslos getestet. Wenn sich in diesem Fall der Saldo verdoppelt, verdoppelt sich auch die Losgröße. Dieses Inkrement wird wiederholt, bis das Arbeitslos den Wert erreicht, der 25 Anfangslosen entspricht.

Das Los wird über Eingabeparameter erhöht. Diese Parameter werden für die Festlegung der Einlagengröße verwendet, bei deren Erreichen das Arbeitslos erhöht werden soll (siehe Abbildung unten).

Eingabeparameter für die Erhöhung des Arbeitsloses

Schlussfolgerung. All dies sind die Regeln, nach denen unser Handelssystem funktioniert. Lassen Sie uns die Rentabilität des Systems an einzelnen Instrumenten testen.


Optimierungsparameter der einzelnen Instrumente

Ich werde nicht auf die Einzelheiten jeder einzelnen Optimierung eingehen, da die Idee des Artikels eine andere ist.

Die Optimierungen wurden im Modus Jeder Tick anhand realer Ticks durchgeführt.

Die Optimierungsergebnisse wurden nach dem Erholungsfaktor (Recovery Factor) sortiert. Wenn ein Testdurchlauf einen Gewinn ergab, wird der Wert des Erholungsfaktors zurückgegeben. Wenn ein Testdurchgang verliert, wird anstelle des Erholungsfaktors ein Prozentsatz angezeigt, um den der Kontosaldo abgenommen hat (mit negativem Vorzeichen). Wenn der EA während des Tests weniger als 30 Handelspositionen ausgeführt hat, wird 0 zurückgegeben, da es sich um eine sehr kleine Anzahl von Handelspositionen handelt, die nicht ausreicht, um objektive Statistiken zu erhalten.

Diese Sortiermethode ist unter den Standardoptionen nicht verfügbar. Sie ist im Expert Advisor implementiert. Um sie zu verwenden, öffnen wir im Strategietester das Register Einstellungen und wählen Sie Custom max (siehe Abbildung unten).

Der höchste Wert des benutzerdefinierten Kriteriums

Außerdem wurden Vorwärtstests während der Optimierung und Tests einzelner Symbole verwendet. Die optimale Vorwärtsperiode für unser 4-Jahres-Intervall ist 1/4. Das bedeutet, dass die ersten drei Jahre für Backtests und das letzte Jahr für einen Vorwärtstest verwendet werden.

Für den Mehrwährungs-EA ausgewählte Symbole

Lassen Sie uns nun die Testergebnisse betrachten. Hier sind die Saldenkurven der Instrumente, die schließlich in unseren Mehrwährungs-EA aufgenommen wurden. Es wird 11 solcher Instrumente geben. Erstens ist der EA nicht für den Handel mit mehr Instrumenten ausgelegt. Zweitens ist es sehr schwierig, Symbolpositionen aufzugreifen, für die es keine Korrelation gäbe.

AAPL:

AAPL, 2016-2020

BRK.B:

BRK.B, 2016-2020

PEP:

PEP, 2016-2020

WMT:

WMT, 2016-2020

CVX:

CVX, 2016-2020

EBAY:

EBAY, 2016-2020

MSFT:

MSFT, 2016-2020

DIS:

DIS, 2016-2020

JPM:

JPM, 2016-2020

JNJ:

JNJ, 2016-2020

S&P500:

S&P 500, 2016-2020

Ein großer Rückgang näher am Ende der Kurve ist nicht wirklich ein Rückgang. Diese Stelle zeigt das Ende eines Backtests und den Beginn eines Vorwärtstests. Das liegt daran, dass ein Vorwärtstest wieder mit der Ersteinlage und nicht mit dem Endsaldo des Backtests beginnt.

Hier ist eine Tabelle mit den Testergebnissen der ausgewählten Handelsinstrumente:

 Symbol Erholungsfaktor (Rückwärts/Vorwärts)
Profit Factor (Rückwärts/Vorwärts)  Max. Drawdown (Rückwärts/Vorwärts) Positionen (Rückwärts/Vorwärts)
 AAPL
 7.25 / 11.04
 3.93 / 37.99
 49.41 / 30.36
 134 / 58
 BRK.B  7.41 / 1.79
 3.11 / 2.01
 15.06 / 14.96
 70 / 29
 PEP  5.2 / 3.26
 2.49 / 5.42
 13.96 / 10.42
 55 / 15
 WMT  5.9 / 3.19
 2.51 / 2.56
 25.52 / 20.7
 67 / 25
 CVX  6.51 / 3.25
 3.03 / 4.26
 19.17 / 14.82
 78 / 24
 EBAY  4.57 / 1.95
 8.87 / 8.85
 20.7 / 12.96
 43 / 12
 MSFT  7.41 / 3.13
 6.69 / 5.26
 16 / 20.93
 72 / 44
 DIS  3.97 / 1.19
 2.32 / 1.84
 26.97 / 32.02
 101 / 49
 JPM  4.34 / 3.07
 1.75 / 2.81
 12.69 / 10.86
 164 / 54
 JNJ  6.24 / 1.23
 5.66 / 2.31
 28.94 / 44.36
 68 / 29
 S&P500  2.55 / 1.98
 1.65 / 1.57
 17.81 / 21.18
 85 / 91

Alle Berichte der Strategietester sind unten, am Ende dieses Artikels, beigefügt.

Man geht davon aus, dass durch Vorwärtstests genauere Ergebnisse erzielt und eine Überoptimierung vermieden werden kann. Ich teile diese Ansicht nicht. Nichtsdestotrotz habe ich diese Art von Tests auch bei der Optimierung verwendet.

Meiner Meinung nach gibt es einen Vorteil des Vorwärtstests. Er ermöglicht das Testen eines EA mit zwei verschiedenen Ausgangspunkten. Dadurch können Sie Zeit sparen.

Was den Rest betrifft, so kann die Interpretation der Ergebnisse eines Vorwärtstests komplizierter sein.

So können Sie beispielsweise nicht den gesamten Erholungsfaktor über die gesamte Testperiode erhalten, indem Sie einfach die Ergebnisse von Back- und Vorwärtstest addieren. Das liegt daran, dass der maximale Drawdown in diesen Zeiträumen normalerweise verschieden ist. Aber wir brauchen diesen gemeinsamen maximalen Drawdown, um das anfängliche Geschäftsvolumen oder die Mindesteinlage zu bestimmen. Wir müssen also den höchsten Darwdown-Wert als Maximalwert für den gesamten Zeitraum verwenden. In diesem Fall wird der Erholungsfaktor, der in der Periode mit einem niedrigeren Drawdown berechnet wurde, nicht genau sein.

Darüber hinaus, wenn Sie die Saldenkurve sehen können, werden Sie den Expert Advisor ohne einen Vorwärtstest nicht überoptimieren. Wenn die Saldenkurve während der gesamten Testperiode stetig wächst, bedeutet dies, dass Sie geeignete Parameter gewählt haben. Wenn das Hauptwachstum zu Beginn des Saldenkurve verzeichnet wurde, während der Saldo im rechten Teil des Diagramms stillsteht oder sinkt, sind die Parameter ungeeignet.

Tests des Mehrwährungs-EA vor dem Markteinbruch

Welchen Effekt wird die Kombination der ausgewählten Handelsinstrumente in einem Expertenberater haben? Werden die Ergebnisse besser sein als beim Handel mit jedem einzelnen Symbol? Hier ist die Bilanzgrafik und die Testergebnisse beim Handel mit einer festen Losgröße:

Saldenkurve beim Handel mit 11 Instrumenten auf einmal (konstante Losgröße)

Sogar mit bloßem Auge sieht man, wie sehr sich die Saldenkurve im Vergleich zum Handel mit einzelnen Instrumenten geglättet hat. Lassen Sie uns zusätzlich die Tabelle mit den Testergebnissen überprüfen.

 Erholungsfaktor  Profit Faktor Gesamt netto Profit
 Max Drawdown Positionen
 20.56  2.94
 1 992
 96.91
 1 308

Die Wirkung der Diversifizierung wird auch in dieser Tabelle zu erkennen.

Die Ersteinlage betrug 200 USD. Nach vier Jahren haben wir 1.992 USD. Das bedeutet, dass der Gewinn für vier Jahre fast 900 Prozent beträgt, wenn man mit einer festen Losgröße handelt.

Dies scheint ein sehr gutes Ergebnis zu sein. In der Realität sieht es jedoch etwas schlechter aus. Erstens ist die anfängliche Einlage von 200 USD zu gering.

Der maximale Drawdown betrug 97 USD. Das bedeutet aber nicht, dass eine Einzahlung von 97 USD für den Handel mit diesem System ausreichen würde. Sie müssen auch die für die Aufrechterhaltung offener Positionen reservierte Margin-Größe berücksichtigen.

Nach dem Test schreibt der EA Informationen über die maximale Inanspruchnahme, die während des Tests registriert wurde in das Journal. In unserem Fall betrug der maximale Drawdown 190 USD. Das bedeutet, dass für einen komfortablen Handel mindestens 97 USD + 190 USD = 280 USD erforderlich sind. Runden wir auf USD 300 auf. Das bedeutet, dass der Gewinn für 4 Jahre fast 600 Prozent beträgt.

Dieser Gewinn wurde durch den Handel mit festen Losgrößen erzielt. Was ist, wenn wir jedes Mal das Los erhöhen, wenn der Saldo um den Wert der Ersteinlage wächst? Der Expert Advisor erlaubt eine Erhöhung des Anfangsloses um maximal das 25-fache. Ich denke, diese Begrenzung ist für unsere Tests ausreichend:

Die Saldenkurve beim Handel mit 11 Instrumenten auf einmal (Erhöhung der Losgröße)

Dieses Mal ist die Grafik nicht so glatt. Aber der Endgewinn ist beeindruckend! Die Einzahlung stieg von 200 USD (oder den erforderlichen 300 USD) auf 20.701 USD. Das entspricht fast 7.000 % für 4 Jahre!

In diesem Fall hat der EA mit einer Einzahlung von 7.100 USD mit dem maximalen Los begonnen. Das bedeutet, dass die Arbeitslosgröße weiter erhöht werden könnte, wenn wir die Begrenzung nicht hätten.

Test des Mehrwährungs-EA einschließlich der Rücksetzung des Marktes

Die Ergebnisse waren sehr gut. Aber wie würde sich die EA während des jüngsten Markteinbruchs verhalten?

Damit kommen wir zum Hauptthema unseres Artikels. Die nächste Testperiode ist vom 2016.01.01 bis zum 2020.04.01.

Testergebnisse des Mehrwährungs-EA mit den gleichen Einstellungen, Handel mit konstanter Losgröße:

Saldenkurve beim Handel mit 11 Instrumenten auf einmal (konstante Losgröße)

Auf den ersten Blick ist der Rückgang kaum wahrnehmbar. Werfen wir nun einen Blick auf die Testergebnisse:

 Erholungsfaktor  Profit Faktor Gesamt netto Profit
 Max Drawdown Positionen
 13.91  2.54
 1 971
 141.69
 1 400

Jetzt sehen wir den Unterschied. Der Erholungsfaktor ist um 7 gesunken. Die maximale Drawdown erhöhte sich um das 1,5-fache. Der Gewinn blieb praktisch unverändert. Wir haben sogar verloren, was wir von Januar bis Ende Februar verdient hatten. Das ist ein Rückgang von mehr als 30%.

Werfen wir nun einen Blick auf die Testergebnisse unter Verwendung der Losgröße, die allmählich bis zum 25-fachen ansteigt:

Die Saldenkurve beim Handel mit 11 Instrumenten auf einmal (Erhöhung der Losgröße)

Selbst in diesem Fall ist der Rückgang nicht so signifikant. Der Gewinn beträgt 20.180 USD, das sind nur 600 USD weniger als zu Beginn des Jahres 2020.

Fassen wir zusammen.

Generell hoffe ich, dass ich beweisen konnte, dass der Handel auch mit Mittelwertbildungs- und Martingalsystemen nicht so gefährlich ist. Natürlich sollten Sie verantwortungsvolle Grenzen für die Mittelwertbildung setzen. Das bedeutet, dass Stop-Loss auch bei der Mittelwertbildung und beim Martingal-Handel eingesetzt werden sollte.

Schlussfolgerung

Seit dem letzten großen Marktzusammenbruch im Jahr 2008 sind mehr als 10 Jahre vergangen. Seitdem sind die Märkte stetig gewachsen. Wer weiß, vielleicht beginnt nach dem Crash von 2020 ein ähnliches 10-Jahres-Wachstum. Dies wäre der perfekte Zeitpunkt für Handelssysteme wie das in diesem Artikel beschriebene.

Was mich betrifft, so werde ich auf jeden Fall einen Roboter starten, der auf der Grundlage des beschriebenen Systems auf einem realen Konto handelt. Der Expert Advisor ist unten beigefügt, so dass auch Sie ihn verwenden können.

Übersetzt aus dem Russischen von MetaQuotes Software Corp.
Originalartikel: https://www.mql5.com/ru/articles/7777

Beigefügte Dateien |
article_files.zip (4164.36 KB)
griderKatMultiEA.ex4 (482.52 KB)
griderKatMultiEA.ex5 (615.21 KB)
griderKatMultiEA.mq4 (410.15 KB)
griderKatMultiEA.mq5 (410.15 KB)
Zeitreihen in der Bibliothek DoEasy (Teil 40): Bibliotheksbasierte Indikatoren - Aktualisierung der Daten in Echtzeit Zeitreihen in der Bibliothek DoEasy (Teil 40): Bibliotheksbasierte Indikatoren - Aktualisierung der Daten in Echtzeit

Der Artikel befasst sich mit der Entwicklung eines einfachen Mehrperiodenindikators auf der Grundlage der DoEasy-Bibliothek. Wir verbessern die Klasse der Zeitreihen so, dass sie Daten aus beliebigen Zeitrahmen empfangen können, um sie in der aktuellen Diagrammperiode anzuzeigen.

Kontinuierliche Walk-Forward-Optimierung (Teil 6): Logikteil und die Struktur des Auto-Optimizers Kontinuierliche Walk-Forward-Optimierung (Teil 6): Logikteil und die Struktur des Auto-Optimizers

Wir haben bereits früher die Schaffung einer automatischen Walk-Forward-Optimierung in Betracht gezogen. Dieses Mal werden wir zur internen Struktur des Auto-Optimizers übergehen. Der Artikel wird für all diejenigen nützlich sein, die mit dem erstellten Projekt weiterarbeiten und es modifizieren möchten, sowie für diejenigen, die die Programmlogik verstehen möchten. Der aktuelle Artikel enthält UML-Diagramme, die die interne Struktur des Projekts und die Beziehungen zwischen den Objekten darstellen. Er beschreibt auch den Prozess des Optimierungsstarts, enthält jedoch keine Beschreibung des Implementierungsprozesses des Optimizers.

Kontinuierliche Walk-Forward-Optimierung (Teil 7): Einbinden des logischen Teils des Auto-Optimizer mit Grafiken und Steuerung Kontinuierliche Walk-Forward-Optimierung (Teil 7): Einbinden des logischen Teils des Auto-Optimizer mit Grafiken und Steuerung

Dieser Artikel beschreibt die Verbindung des grafischen Teils des Auto-Optimizers mit seinem logischen Teil. Er betrachtet den Prozess des Optimierungsstarts, von einem Tastenklick bis zur Aufgabenumleitung zum Optimierungsmanager.

Zeitreihen in der Bibliothek DoEasy (Teil 41): Beispiel eines Multisymbol- und Mehrperiodenindikators Zeitreihen in der Bibliothek DoEasy (Teil 41): Beispiel eines Multisymbol- und Mehrperiodenindikators

In diesem Artikel entwickeln wir das Beispiel eines Multisymbol- und Mehrperiodenindikators, der die Zeitreihenklassen der DoEasy-Bibliothek verwendet und das Chart eines ausgewählten Währungspaares in einem ausgewählten Zeitrahmen als Kerzen in einem Unterfenster anzeigt. Ich werde die Bibliotheksklassen ein wenig modifizieren und eine separate Datei erstellen, zum Speichern von Enumerationen für die Programmeingaben und für die Auswahl einer Kompilierungssprache.