MTC Combo: Expert Advisor für MetaTrader 5 effizient nutzen

Mike 2017.01.20 01:56 11 0 0
Anhang

In diesem Beitrag möchte ich euch die Grundlagen des MTC Combo Expert Advisors (EA) für MetaTrader 5 näherbringen und einige wichtige Optimierungsschritte erläutern.

Das Ziel des EAs

Unser Ziel ist es, ein Basis-Trading-System (BTS) zu entwickeln und dieses mit einem neuronalen Netzwerk (NN) zu kombinieren. Das NN soll dabei helfen, die Entscheidungen des BTS zu unterstützen und gezielte Handelsaktionen durchzuführen, die das BTS nicht allein bewältigen kann.

Warum das Rad neu erfinden, wenn es bereits erfunden wurde? Es macht keinen Sinn, jemandem das Laufen beizubringen, wenn ein Auto zur Verfügung steht, oder das Fliegen, wenn man einen Hubschrauber hat.

Wenn wir ein Trend-Trading-System haben, sollten wir das neuronale Netzwerk auf eine Gegen-Trend-Strategie trainieren. Ein System, das auf Trends ausgelegt ist, kann nicht effektiv in Seitwärtsmärkten handeln oder Rollbacks und Umkehrungen erkennen. Natürlich können wir zwei Handelsstrategien (Trend- und Gegen-Trend) gleichzeitig auf einem Chart einsetzen, aber es ist oft sinnvoller, das neuronale Netzwerk so zu trainieren, dass es das bestehende Trading-System ergänzt.

Die Struktur des neuronalen Netzwerks

Wir haben ein zweischichtiges neuronales Netzwerk entwickelt, das aus zwei Perzeptronen in der unteren Schicht und einem Perzeptron in der oberen Schicht besteht. Das neuronale Netzwerk kann sich in einem von drei Zuständen befinden:

  • Long-Position öffnen
  • Short-Position öffnen
  • Unbestimmt

Im dritten Zustand wird die Kontrolle an das BTS übergeben, während in den ersten beiden Zuständen Handelssignale vom Netzwerk generiert werden.

Die Trainingsphasen des neuronalen Netzwerks

Das Training des neuronalen Netzwerks erfolgt in drei Phasen, wobei in jeder Phase ein Perzeptron trainiert wird. Das optimierte BTS ist in jeder Phase anwesend, damit die Perzeptronen wissen, was möglich ist.

Die getrennte Ausbildung der Perzeptronen mit dem genetischen Algorithmus ist notwendig, da dieser Algorithmus nur eine begrenzte Anzahl von Parametern auswählen kann. Da das gesamte Optimierungsverfahren innerhalb eines angemessenen Zeitrahmens abläuft, ist die Netzwerkgröße überschaubar.

Vorbereitungen für die NN-Optimierung

Bevor wir mit dem Training des neuronalen Netzwerks beginnen, sollten wir das BTS optimieren. Setzt das Anfangskapital im Tester auf 100 $ (um einen künstlichen Margin Call während der Optimierung zu vermeiden), optimiert den Parameter Balance + max Sharpe Ratio und wählt den schnellen genetischen Algorithmus zur Optimierung.

Geht nun zum Tab „Inputs“ der EA-Eigenschaften und setzt die Lotgröße für die geöffneten Positionen auf 0,01.

Die Optimierung sollte nach dem Modell „Nur offene Preise“ durchgeführt werden, da dieses Verfahren besonders schnell ist. Zudem verfügt der EA über ein neues Management für die Balken.

Erste Optimierungsphase: BTS-Optimierung

Setzt pass auf 1 und optimiert nur die Eingaben, die zur ersten Phase gehören (IDs enden auf 1). Folgende Parameter sollen optimiert werden:

  • tp1 - Take Profit für BTS, optimiert von 100 bis 1000 in Schritten von 10
  • sl1 - Stop Loss für BTS, optimiert von 100 bis 1000 in Schritten von 10
  • p1 - Periode des CCI-Indikators, optimiert von 3 bis 100 in Schritten von 1

Startet das Training über die genetische Algorithmus-Optimierung.

Zweite Phase: Training des Perzeptrons für Short-Positionen

Setzt den pass-Parameter auf 2. Entfernt die Optimierungsmarken der vorherigen Phase und sichert die Eingaben in einer Datei.

Setzt die Optimierungsmarken für die Parameter der zweiten Phase (IDs enden auf 2):

  • x12, x22, x32, x42 - Gewichtungsfaktoren des Perzeptrons für Short-Positionen, optimiert von 0 bis 200 in Schritten von 1
  • tp2 - Take Profit für das Perzeptron, optimiert von 100 bis 1000 in Schritten von 10
  • sl2 - Stop Loss für das Perzeptron, optimiert von 100 bis 1000 in Schritten von 10
  • p2 - Periode der Preisdifferenz, optimiert von 3 bis 100 in Schritten von 1

Startet das Training über die genetische Algorithmus-Optimierung.

Dritte Phase: Training des Perzeptrons für Long-Positionen

Setzt den pass-Parameter auf 3. Entfernt die Optimierungsmarken der vorherigen Phase und sichert die Eingaben in einer Datei.

Setzt die Optimierungsmarken für die Parameter der dritten Phase (IDs enden auf 3):

  • x13, x23, x33, x43 - Gewichtungsfaktoren des Perzeptrons für Long-Positionen, optimiert von 0 bis 200 in Schritten von 1
  • tp3 - Take Profit für das Perzeptron, optimiert von 100 bis 1000 in Schritten von 10
  • sl3 - Stop Loss für das Perzeptron, optimiert von 100 bis 1000 in Schritten von 10
  • p3 - Periode der Preisdifferenz, optimiert von 3 bis 100 in Schritten von 1

Startet das Training über die genetische Algorithmus-Optimierung.

Letzte Phase: Training der oberen Schicht

Setzt den pass-Parameter auf 4. Entfernt die Optimierungsmarken der vorherigen Phase und sichert die Eingaben in einer Datei.

Setzt die Optimierungsmarken für die Parameter der vierten Phase (IDs enden auf 4):

  • x14, x24, x34, x44 - Gewichtungsfaktoren des ersten Perzeptrons, optimiert von 0 bis 200 in Schritten von 1
  • p4 - Periode der Preisdifferenz, optimiert von 3 bis 100 in Schritten von 1

Startet das Training über die genetische Algorithmus-Optimierung.

Fazit

Das neuronale Netzwerk ist nun trainiert. Der EA beinhaltet außerdem eine nicht optimierbare Eingabe mn - die Magic Number, die es dem System ermöglicht, seine eigenen Aufträge von manuell oder von anderen EAs geöffneten Aufträgen zu unterscheiden. Diese Magic Number sollte einzigartig sein.

Wichtige Hinweise

  • Die Größe des Anfangskapitals wird als absolutes Drawdown multipliziert mit zwei definiert (Sicherheitsmarge).
  • Der Quellcode des EAs wurde nicht optimiert.
  • Ändere den Inhalt der Funktion basicTradingSystem(), wenn du das integrierte BTS durch einen anderen Handelsalgorithmus ersetzen möchtest.
  • Re-optimiere den EA am Wochenende, wenn die Ergebnisse der letzten Woche unprofitabel waren. Verluste weisen auf Marktveränderungen hin und erfordern eine Re-Optimierung. Wenn der EA profitabel ist, ist keine Re-Optimierung erforderlich, da der Roboter die Marktpattern gut erkennt.
Liste
Kommentar 0