Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
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
Expert Advisors

MTC Сombo - Experte für den MetaTrader 5

Veröffentlicht:
Vladimir Karputov
Ansichten:
942
Rating:
(33)
Veröffentlicht:
2017.02.08 16:08
Aktualisiert:
2018.06.27 15:57
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Unten führe ich die Beschreibung des Autors mit meinen kleinen Korrekturen, denn wir verwenden bereits fünfstellige Währungspaare.

Die Aufgabe für diese Handelsstrategie lautet wie folgt:

Nehmen wir an, dass wir ein grundlegendes Handelssystem habenGHS. Wir müsse ein neuronales Netz (NN) entwickeln und trainieren so, dass es Aktionen durchführen kann, zu welchen das GHS nicht fähig ist. Als Ergebnis möchten wir ein Handelssystem bekommen, das aus zwei kombinierten und einander ergänzenden GHS und NN besteht.

Mit anderen Worten muss das Rad nicht neu erfunden werden. Warum sollte man jemandem das Rennen beibringen, wenn es Autos gibt, oder das Fliegen beibringen, wenn es Hubschrauber gibt? 

Wenn wir eine Handelsstrategie haben, die auf einem Trend basiert, dann muss man dem neuronalen Netz nur eine Strategie gegen Trend eintrainieren. Denn ein Trend-Handelssystem kann nicht im Seitwärtsmarkt angemessen handeln oder Richtungswechsel oder Umkehr erkennen. Man kann natürlich zwei automatische Handelsstrategien nehmen: eine Trend-Strategie und eine Gegentrend-Strategie, und auf einem Chart handeln lassen. Aber von der anderen Seite kann man dem neuronalen Netz eintrainieren, ein Handelssystem zu ergänzen.

Für diesen Zweck wurde ein zweischichtiges neuronales Netz entworfen, das aus zwei Perzeptronenin der unteren Schicht und einem Perzeptron in der oberen Schicht besteht. 
Das neuronale Netz kann drei Zustände haben:

  1. Eröffnung einer Long-Position
  2. Eröffnung einer Short-Position
  3. Undefiniert

Der dritte Zustand bedeutet, dass die Kontrolle an das GHS übermittelt wurde.

Das Training des neuronalen Netzes ist in drei Phasen aufgeteilt, in jeder Phase wird ein Perzeptron trainiert. In jeder Phase muss auch das optimierte GHS vorhanden sein, damit die Perzeptronen wissen, wozu es fähig ist.

Das getrennte Training der Perzeptronen durch das genetische Algorithmus ist mit einem Mangel des Algorithmus selbst verbunden, und zwar mit der begrenzten Zahl der Eingabeparameter, die mithilfe des Algorithmus ausgewählt werden. Jede Trainigsphase ist konsequent und das neuronale Netz ist nicht zu groß, deswegen nimm der Optimierungsprozess nicht sehr viel Zeit in Aspruch.

Aber die allererste Etappe vor dem Trainieren des neuronalen Netzes besteht in der Optimierung des grundlegenden Handelssystems.

Um Verwirrungen zu vermeiden, wird die Nummer der Phase im Eingabeparameter "pass" geschrieben. Die Identifierer der Eingabeparameter, die der Nummer der Phase entsprechen, enden auf eine Zahl, die dieser Nummer gleich ist.

Vorbereitung auf die Optimierung und das Training des neuronalen Netzes.

Setzen wir die Ersteinzahlung im Strategietester auf $100 (um keinen künstlichen Margincall während der Optimierung zu verursachen), Parameter der Optimierung - Balance + max Sharpe Ratio, Optimierungstyp - Fast genetic algorithm. 

Öffnen wir den Reiter "Eingabeparameter" der Eigenschaften des Excpert Advisors. 
Legen wir die Lotgröße für die zu eröffnenden Positionen fest, indem wir den Identifier "lots" auf 0.01 setzen.

Die Optimierung wird im Modus "Nur Eröffnungspreise" durchgeführt. Die Methode wurde für seine Schnelligkeit ausgewählt sowie weil es im Algorithmus die Kontrolle über neue Balken vorhanden ist.

Die erste Phase der Optimierung. Optimierung des GHS:

Setzen wir den pass Parameter auf 1. 
Optimieren wir nur die Eingabeparameter, die der ersten Phase entsprechen, deren Identifier mit einer Eins enden. Wählen wir nur diese Parameter aus und löschen wir Häkchen gegenüber allen anderen Parametern.

tp1 - Take Profit des GHS, wird in einem Bereich von 100 bis 1000 optimiert, Schritt=10
sl1 - Stop Loss des GHS, wird mit den Werten in einem Bereich von 100 bis 1000 optimiert, Schritt=10
p1 - Periode des CCI Oszillators, der im Handelssystem verwendet wird. Der Parameter wird mit den Werten in einem Bereich von 3 bis 100 optimiert, Schritt=1

Starten wir das Training durch die Optmierung des genetischen Algorithmus. 

Zweite Phase. Das Training des Perzeptrons, das für Short-Positionen zuständig ist:

Setzen wir den pass Parameter auf 2, was der Nummer der Phase entspricht. 
Entfernen wir die Häkchen, die wir während der vorherigen Phase aktiviert haben. Speichern wir die Eingabeparameter für alle Fälle in einer Datei.

Setzen wir Häkchen der Optimierung für die Parameter der zweiten Phase, dessen Identifier also mit einer Zwei enden:

x12, x22, x32, x42 — Gewichtungskoeffizienten des Perzeptrons, der Short-Positionen erkennt. Wird mit den Werten in einem Bereich von 0 bis 200 optimiert, Schritt=1. 
tp2 - TakeProfit von Positionen, die durch den Perzeptron eröffnet werden. wird mit den Werten in einem Bereich von 100 bis 1000 optimiert, Schritt=10
sl2 - StopLoss von Positionen die durch den Perzeptron eröffnet werden. Der Parameter wird mit Werten von 100 bis 1000 mit Schritt=10 optimiert
p2 - Periode der Werte des Unterschieds zwischen den Preisen, die vom Perzeptron analysiert wird. Der Parameter wird mit den Werten in einem Bereich von 3 bis 100 optimiert, Schritt=1.

Starten wir das Training durch die Optmierung des genetischen Algorithmus.

Dritte Phase. Training des Perzeptrons, der für Long-Positionen zuständig ist:

Den pass Parameter setzen wir auf 3, was der Nummer der Phase entsprich. 
Entfernen wir die Häkchen, die wir während der vorherigen Phase setzt haben. 
Speichern wir die in der vorherigen Phase erhaltenen Eingabeparameter für alle Fälle in einer Datei. 

Setzen wir Häkchen der Optimierung für die Parameter der dritten Phase, dessen Identifier also mit einer Drei enden:

x13, x23, x33, x43 - Gewichtungskoeffizienten des Perzeptrons, der Long-Positionen erkennt. Wird mit den Werten in einem Bereich von 0 bis 200 optimiert, Schritt=1. 
tp3 - TakeProfit von Positionen, die durch den Perzeptron eröffnet werden. wird mit den Werten in einem Bereich von 100 bis 1000 optimiert, Schritt=10
sl3 - StopLoss von Positionen die durch den Perzeptron eröffnet werden. Der Parameter wird mit Werten von 100 bis 1000 mit Schritt=10 optimiert
p3 - Periode der Werte des Unterschieds zwischen den Preisen, die vom Perzeptron analysiert wird. Der Parameter wird mit den Werten in einem Bereich von 3 bis 100 optimiert, Schritt=1.

Starten wir das Training durch die Optmierung des genetischen Algorithmus. 

Die letzte vierte Phase.

Das Training der ersten Schicht, mit anderen Worten des Perzeptrons, der in der oberen Schicht liegt:

Den pass Parameter setzen wir auf 4, was der Nummer der Phase entspricht. 
Entfernen wir die Häkchen, die wir während der vorherigen Phase setzt haben. 
Für alle Fälle speichern wir die in der vorherigen Phase erhaltenen Eingabeparameter in einer Datei.

Setzen wir Häkchen der Optimierung für die Parameter der vierten Phase, dessen Identifier also mit einer Vier enden:

x14, x24, x34, x44 - Gewichtungskoeffizienten des Perzeptrons der ersten Schicht. Wird mit den Werten in einem Bereich von 0 bis 200 optimiert, Schritt=1. 
p4 - Periode der Werte des Unterschieds zwischen den Preisen, die vom Perzeptron analysiert wird. Der Parameter wird mit den Werten in einem Bereich von 3 bis 100 optimiert, Schritt=1.

Starten wir das Training durch die Optmierung des genetischen Algorithmus. 

Das war es, das neuronale Netz ist nun trainiert.

Die Strategie hat ein weiteres Eingabeparameter, der sich nicht optimieren lässt: mn, die magische Nummer, mit anderen Worten der Identifier der Position, damit das Handelssystem seine Orders mit anderen Orders, die manuell oder von anderen EAs eröffnet wurden, nicht verwechselt. Der Wert der magischen Nummer muss einzigartig sein und darf nicht mit den magischen Nummern der Positionen übereinstimmen, die nicht von diesem Expert Advisor eröffnet wurden.

P.S.

  • Die Größe der Ersteinzahlung werden als absoluter Drawdown multipliziert mit zwei berechnet, d.h. mit . 
  • Der Expert Advisor in der Quelldatei wurde nicht optimiert 
  • Wenn es notwendig ist, das integrierte Handelssystem durch den Algorithmus eines anderen Systems zu ersetzen, muss man den Inhalt der basicTradingSystem() Funktion modifizieren.
  • Der Expert Advisor wird am Wochenende erneut optimiert, d.h. am Samstag oder am Sonntag, aber nur in dem Fall, wenn es während der voreherigen Woche Verluste erzielt wurden. Verluste weisen darauf hin, dass sich die Situation auf dem Markt verändert hat, und der Expert Advisor erneut optimiert werden muss. Gewinne bedeuten, dass der EA nicht neu optimiert werden muss, und kann Marktmuster relativ gut erkennen.


Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/16762

MFI_Histogram_Round_HTF MFI_Histogram_Round_HTF

Der MFI_Histogram_Round Indikator mit der Option, Zeitrahmen in den Eingabeparametern auszuwählen.

Exp_GTakeProfit Exp_GTakeProfit

Ein Expert Advisor für das Schließen aller Positionen in dem Fall, wenn der Gesamtgewinn auf diesen Positionen den in den Eingabevariablen festgelegten Limit von Gewinnen übersteigt.

Exp_GStop Exp_GStop

Ein Expert Advisor für das Schließen aller Positionen in dem Fall, wenn der Gesamtgewinn auf diesen Positionen den in den Eingabevariablen festgelegten Limit von Gewinnen übersteigt oder, wenn der Gesamtverlust auf diesen Positionen den in den Eingabevariablen festgelegten Limit von Verlusten übersteigt.

WPR_Histogram_Round_HTF WPR_Histogram_Round_HTF

Der WPR_Histogram_Round Indikator mit der Option, Zeitrahmen in den Eingabeparametern auszuwählen.