Sunday 29 January 2017

Trading Signale Generator

MetaTrader 5 - Trading Systems MQL5-Assistent: Erstellen eines Moduls für Trading-Signale Einführung MetaTrader 5 bietet ein leistungsfähiges Werkzeug für die schnelle Überprüfung von Trading-Ideen. Dies ist der Generator der Handelsstrategien des MQL5 Wizard. Die Verwendung des MQL5-Assistenten zur automatischen Erstellung von Expert Advisor-Codes ist im Artikel MQL5 Wizard: Erstellen von Expertenberatern ohne Programmierung beschrieben. Die Offenheit des Codegenerierungssystems ermöglicht es Ihnen, Ihre eigenen Klassen von Handelssignalen, Geldmanagementsystemen und nachlaufenden Modulen den Standard-Modulen hinzuzufügen. Dieser Artikel beschreibt die Prinzipien des Schreibens von Modulen von Handelssignalen, um sie beim Erstellen von Expertenberatern mit dem MQL5-Assistenten zu verwenden. Der Expert Advisor wurde mit dem MQL5 Wizard erstellt. Basiert auf vier Säulen - vier Basisklassen: Die CExpert-Klasse (oder ihre Unterklasse) ist der Hauptmotor eines Handelsroboters. Eine Instanz von CExpert enthält eine Kopie jeder Klasse: CExpertSignal. CExpertMoney und CExpertTrailing (oder deren Unterklassen): CExpertSignal ist die Basis für den Handelssignalgenerator. Eine Instanz der Klasse CExpertSignal, die in CExpert enthalten ist. Bietet eine Expert Advisor mit Informationen über die Möglichkeit der Eingabe der Markt, Ebenen der Einreise und Platzierung von Schutzaufträgen, basierend auf eingebauten Algorithmen. Die endgültige Entscheidung über die Durchführung von Handelsgeschäften wird von der EA getroffen. CExpertMoney ist die Basis für das Geld - und Risikomanagementsystem. Eine Instanz der von CExpertMoney abgeleiteten Klasse berechnet die Volumina für die Eröffnung von Positionen und die Platzierung ausstehender Aufträge. Die endgültige Entscheidung über das Volumen erfolgt durch die EA. CExpertTrailing - ist die Basis des Moduls der offenen Positionen zu unterstützen. Eine Instanz der CExpertTrailing-abgeleiteten Klasse informiert eine EA über die Notwendigkeit, Schutzaufträge einer Position zu modifizieren. Die endgültige Entscheidung über die Änderung der Bestellung erfolgt durch die EA. Darüber hinaus sind die Mitglieder der CExpert-Klasse Instanzen der folgenden Klassen: CExpertTrade (für den Handel) CIndikatoren (zur Steuerung von Indikatoren und Zeitreihen, die an der Arbeit der EA beteiligt sind). CSymbolInfo (für das Erhalten von Informationen über das Instrument) CAccountInfo (für das Erhalten von Informationen über den Zustand des Handelskontos) CPositionInfo (für das Erhalten von Informationen über Positionen) COrderInfo (für das Erhalten von Informationen über ausstehende Bestellungen) Nachstehend unter Experte verstehen wir eine Instanz von CExpert oder Seine Unterklasse. Weitere Details von CExpert und die Arbeit mit ihm wird in einem separaten Artikel beschrieben werden. 1. Basisklasse CExpertSignal Das CExpertSignal ist die Basis für den Handelssignalgenerator. Für die Kommunikation mit der Außenwelt verfügt CExpertSignal über eine Reihe von öffentlichen virtuellen Methoden: Beschreibung der Methoden 1.1. Initialisierungsmethoden: Die Init () - Methode wird automatisch nach dem Hinzufügen einer Klasseninstanz zum Experten aufgerufen. Eine Methodenüberschreibung ist nicht erforderlich. Die ValidationSettings () - Methode wird direkt vom Experten aufgerufen, nachdem alle Parameter gesetzt sind. Sie müssen die Methode außer Kraft setzen, wenn es Setup-Parameter gibt. Die überschriebene Methode muss true zurückgeben, wenn alle Optionen gültig sind (verwendbar). Wenn mindestens einer der Parameter falsch ist, muss er falsch zurückgeben (weitere Arbeit ist unmöglich). Die Basisklasse CExpertSignal hat keine einstellbaren Parameter, daher gibt die Basisklassenmethode immer true zurück, ohne irgendwelche Prüfungen durchzuführen. Die InitIndicators () - Methode implementiert die Erstellung und Initialisierung aller notwendigen Indikatoren und Zeitvorgaben. Es wird vom Experten aufgerufen, nachdem alle Parameter gesetzt sind und deren Richtigkeit erfolgreich überprüft wird. Das Verfahren sollte überschrieben werden, wenn der Handelssignalgenerator mindestens ein Kennzeichen oder Zeitreihen verwendet. Indikatoren und / oder Zeitreihen sollten durch die entsprechenden Klassen der Standardbibliothek verwendet werden. Zeiger aller Indikatoren und / oder Zeitreihen sollten der Sammlung von Indikatoren eines Experten hinzugefügt werden (ein Zeiger, der als Parameter übergeben wird). Die überschriebene Methode muss true zurückgeben, wenn alle Manipulationen mit den Indikatoren und / oder Zeitreihen erfolgreich waren (sie sind für den Einsatz geeignet). Wenn mindestens eine Operation mit den Indikatoren und / oder Zeitreihen fehlgeschlagen ist, muss die Methode false zurückgeben (weitere Arbeit ist unmöglich). Die Basisklasse CExpertSignal verwendet keine Indikatoren oder Zeitvorgaben, daher gibt die Basisklassenmethode immer true zurück, ohne irgendeine Aktion auszuführen. 1.2. Methoden zur Überprüfung des Signals der Positionsöffnung: Die CheckOpenLong () - Methode erzeugt ein Signal des Öffnens einer Langposition, wobei das Einstiegsniveau und die Ebenen der Platzierung von Schutzaufträgen definiert sind. Es wird von einem Experten aufgerufen, um festzustellen, ob es notwendig ist, eine lange Position zu öffnen. Das Verfahren muss überschrieben werden, wenn erwartet wird, dass ein Signal einer Langpositionsöffnung erzeugt wird. Das Verfahren sollte den Algorithmus zum Überprüfen des Zustandes einer Langpositionsöffnung implementieren. Wenn die Bedingung erfüllt ist, müssen den Variablen price, sl, tp und expiration (Referenzen, die als Parameter übergeben werden) entsprechende Werte zugewiesen werden und die Methode true zurückgeben. Wenn die Bedingung nicht erfüllt ist, muss die Methode false zurückgegeben werden. Die Basisklasse CExpertSignal hat keinen eingebauten Algorithmus zur Erzeugung eines Signals einer Langpositionsöffnung, daher gibt die Basisklassenmethode immer false zurück. Die CheckOpenShort () - Methode erzeugt ein Signal des Öffnens einer Short-Position, die das Einstiegsniveau und die Ebenen der Platzierung von Schutzaufträgen definiert. Es wird von einem Experten aufgerufen, um festzustellen, ob es notwendig ist, eine Short-Position zu öffnen. Das Verfahren muss überschrieben werden, wenn erwartet wird, dass ein Signal mit einer Kurzpositionsöffnung erzeugt wird. Die Methode muss den Algorithmus zur Überprüfung der Bedingung implementieren, um eine Short-Position zu öffnen. Wenn die Bedingung erfüllt ist, müssen den Variablen price, sl, tp und expiration (Referenzen, die als Parameter übergeben werden) entsprechende Werte zugewiesen werden und die Methode true zurückgeben. Wenn die Bedingung nicht erfüllt ist, muss die Methode false zurückgegeben werden. Die Basisklasse CExpertSignal hat keinen eingebauten Algorithmus zur Erzeugung eines Signals einer Positionsänderung, sodass die Methode der Basisklasse immer false zurückgibt. 1.3. Methoden der Überprüfung des Signals der Positionsschließung: Die CheckCloseLong () - Methode erzeugt ein Signal des Schließens einer langen Position, die die Ausgangsebene definiert. Es wird von einem Experten aufgerufen, um festzustellen, ob es notwendig ist, eine lange Position zu schließen. Das Verfahren muss überschrieben werden, wenn erwartet wird, dass ein Signal eines Langpositionsabschlusses erzeugt wird. Die Methode muss den Algorithmus zur Überprüfung der Bedingung implementieren, um die lange Position zu schließen. Wenn die Bedingung erfüllt ist, muss dem Variablenpreis (der Referenz, der als Parameter übergeben wird) der entsprechende Wert zugewiesen werden und die Methode true zurückgeben. Wenn die Bedingung nicht erfüllt ist, muss die Methode false zurückgegeben werden. Die Basisklasse CExpertSignal hat keinen eingebauten Algorithmus für die Erzeugung eines Signals eines Longpositionsschließens, so dass die Basisklassenmethode immer false zurückgibt. Die CheckCloseShort () - Methode erzeugt ein Signal zum Schließen einer Short-Position, das die Exit-Ebene definiert. Es wird von einem Experten aufgerufen, um festzustellen, ob es notwendig ist, eine Short-Position zu schließen. Das Verfahren muss außer Kraft gesetzt werden, wenn erwartet wird, dass ein Signal mit Kurzschließung erzeugt wird. Die Methode muss den Algorithmus zur Überprüfung der Bedingung implementieren, um eine kurze Position zu schließen. Wenn die Bedingung erfüllt ist, muss dem Variablenpreis (der Referenz, der als Parameter übergeben wird) der entsprechende Wert zugewiesen werden und die Methode true zurückgeben. Wenn die Bedingung nicht erfüllt ist, muss die Methode false zurückgegeben werden. Die Basisklasse CExpertSignal hat keinen eingebauten Algorithmus für die Erzeugung eines Signals einer Short-Positionsschließung, daher gibt die Basisklassenmethode immer false zurück. 1.4. Methoden zur Überprüfung des Signals der Positionsumkehr: Die Methode CheckReverseLong erzeugt ein Signal der Umkehrung einer Langposition, das die Stornierungsstufe und die Stufen der Platzierung von Schutzaufträgen definiert. Es wird von einem Experten aufgerufen, um festzustellen, ob es notwendig ist, eine Longposition umzukehren. Das Verfahren muss überschrieben werden, wenn erwartet wird, dass ein Signal einer Langpositionsumkehr erzeugt wird. Die Methode muss den Algorithmus zur Überprüfung des Zustands der Longpositionsumkehr implementieren. Wenn die Bedingung erfüllt ist, müssen den Variablen price, sl, tp und expiration (Referenzen, die als Parameter übergeben werden) entsprechende Werte zugewiesen werden und die Methode true zurückgeben. Wenn die Bedingung nicht erfüllt ist, muss die Methode false zurückgegeben werden. In der CExpertSignal-Basisklasse ist der folgende Algorithmus zur Erzeugung eines Long-Position-Umkehrsignals implementiert: Prüfung eines Signals, um eine Long-Position zu schließen. Prüfung auf ein Signal, um eine kurze Position zu öffnen. Wenn beide Signale aktiv sind (die Bedingungen erfüllt sind) und die geschlossenen und offenen Preise übereinstimmen, werden die Variablen price, sl, tp und expiration (Referenzen, die als Parameter übergeben werden) die entsprechenden Werte zugewiesen und die Methode true zurückgegeben. Wenn die Bedingung nicht erfüllt ist, gibt die Methode false zurück. Die CheckReverseShort-Methode generiert ein Signal der Umkehrung einer Short-Position, wobei die Umkehrstufe und die Ebenen der Platzierung der Schutzanordnungen definiert sind. Es wird von einem Experten aufgerufen, um festzustellen, ob es notwendig ist, eine Short-Position umzukehren. Das Verfahren muss überschrieben werden, wenn erwartet wird, dass ein Signal einer Langpositionsumkehr gemäß dem Algorithmus erzeugt wird, der sich von dem unterscheidet, der in der Basisklasse implementiert ist. Die Methode muss den Algorithmus zur Überprüfung des Zustands der Kurzpositionsumkehr implementieren. Wenn die Bedingung erfüllt ist, müssen den Variablen price, sl, tp und expiration (Referenzen, die als Parameter übergeben werden) entsprechende Werte zugewiesen werden und die Methode true zurückgeben. Wenn die Bedingung nicht erfüllt ist, muss die Methode false zurückgegeben werden. In der CExpertSignal-Basisklasse ist der folgende Algorithmus zur Erzeugung eines Short-Positionsumkehrsignals implementiert: Prüfung eines Signals, um eine Short-Position zu schließen. Prüfung auf ein Signal, um eine lange Position zu öffnen. Wenn beide Signale aktiv sind (die Bedingungen erfüllt sind) und die geschlossenen und offenen Preise übereinstimmen, werden die Variablen price, sl, tp und expiration (Referenzen, die als Parameter übergeben werden) die entsprechenden Werte zugewiesen und die Methode true zurückgegeben. Wenn die Bedingung nicht erfüllt ist, gibt die Methode false zurück. 1.5. Methoden zur Überprüfung des Signals einer anstehenden Auftragsänderung: Die CheckTrailingOrderLong () - Methode generiert das Signal der Änderung einer ausstehenden Bestellposition und definiert einen neuen Auftragspreis. Es wird von einem Experten aufgerufen, um festzustellen, ob es notwendig ist, einen ausstehenden Kaufauftrag zu ändern. Die Methode muss überschrieben werden, wenn erwartet wird, dass ein Änderungssignal einer anstehenden Bestellanforderung generiert wird. Die Methode muss den Algorithmus für die Überprüfung der Bedingung der Änderung einer anhängigen Bestellung zu implementieren. Wenn die Bedingung erfüllt ist, muss dem Variablenpreis (der Referenz, der als Parameter übergeben wird) der entsprechende Wert zugewiesen werden und die Methode true zurückgeben. Wenn die Bedingung nicht erfüllt ist, muss die Methode false zurückgegeben werden. Die Basisklasse CExpertSignal verfügt über keinen eingebauten Algorithmus zur Erzeugung eines Modifizierungssignals für eine anstehende Bestellung. Daher gibt die Basisklassenmethode immer false zurück. Die CheckTrailingOrderShort () - Methode generiert das Signal der Änderung eines ausstehenden Verkaufsauftrags und definiert einen neuen Auftragspreis. Es wird von einem Experten aufgerufen, um festzustellen, ob es notwendig ist, eine ausstehende Verkaufsauftrag zu ändern. Die Methode muss überschrieben werden, wenn erwartet wird, dass ein Signal zur Änderung einer ausstehenden Verkaufsreihenfolge generiert wird. Die Methode muss den Algorithmus implementieren, um den Zustand der Änderung einer ausstehenden Verkaufsorder zu überprüfen. Wenn die Bedingung erfüllt ist, muss dem Variablenpreis (der Referenz, der als Parameter übergeben wird) der entsprechende Wert zugewiesen werden und die Methode true zurückgeben. Wenn die Bedingung nicht erfüllt ist, muss die Methode false zurückgegeben werden. Die Basisklasse CExpertSignal verfügt über keinen eingebauten Algorithmus zur Erzeugung eines Modifizierungssignals eines ausstehenden Sell-Auftrags, daher gibt die Basisklassenmethode immer false zurück. 2. Entwickeln Sie Ihre eigenen Generator von Trading-Signalen Nachdem wir die Struktur der CExpertSignal-Basisklasse überprüft haben, können Sie beginnen, Ihre eigenen Trading-Signale Generator zu erstellen. Wie oben erwähnt, ist die CExpertSignal-Klasse eine Reihe von öffentlichen virtuellen Seilen - Methoden, mit denen der Experte kann die Meinung des Handelssignals Generator über den Markteintritt in die eine oder andere Richtung kennen. Daher ist es unser oberstes Ziel, eine eigene Klasse von Trading-Signalen zu erzeugen, die aus der Klasse CExpertSignal abgeleitet wird und die entsprechenden virtuellen Methoden überschreibt und die erforderlichen Algorithmen implementiert. Unser zweites Problem (das ist nicht weniger wichtig) - um unsere Klasse für den MQL5 Wizard sichtbar zu machen. Aber zuerst Dinge zuerst. 2.1. Erstellen der Klasse des Trading-Signalgenerators Zuerst erstellen wir (z. B. mit demselben MQL5-Wizard) eine Include-Datei mit der mqh-Erweiterung. Klicken Sie im Menü Datei auf Erstellen (oder drücken Sie Strg-Tastenkombination) und geben Sie die Erstellung einer enthaltenen Datei an: Abbildung 2. Erstellen einer Include-Datei mithilfe des MQL5-Assistenten Es sollte beachtet werden, dass die Datei dann vom MQL5-Assistenten erkannt wird Ein Signalgenerator, sollte es im Ordner IncludeExpertSignal erstellt werden. Um nicht in Standard-Bibliothek zu trash. Erstellen Sie unseren eigenen Ordner IncludeExpertSignalMySignals, in dem wir die Datei SampleSignal. mqh erstellen und diese Parameter im MQL5-Assistenten angeben: Abbildung 3. Einstellen der Position der Include-Datei Als Ergebnis des MQL5-Assistenten haben wir folgendes Muster: Das Folgende ist nur manuell Arbeit. Entfernen Sie die unnötigen Teile und fügen Sie, was erforderlich ist (enthalten Datei ExpertSignal. mqh der Standardbibliothek und eine Klasse Beschreibung, die jetzt leer ist). Nun ist es notwendig, die Algorithmen zu wählen. Als Grundlage für unsere Trading-Signale Generator, nehmen wir die weit verbreitete Modell Preis kreuzt den gleitenden Durchschnitt. Aber wir machen noch eine Annahme: Nach Überschreiten des gleitenden Durchschnitts bewegt sich der Preis zurück und geht erst dann in die richtige Richtung. Denken Sie dies in unserer Datei. Im Allgemeinen, wenn Sie etwas schreiben, nicht auf die Kommentare knausern. Nach einiger Zeit, das Lesen eines sorgfältig kommentierten Code wird so bequem sein. Nun können wir definieren, welche Daten benötigt werden, um Entscheidungen über die Erzeugung von Handelssignalen zu treffen. In unserem Fall ist dies der offene Preis und der Schlusskurs der vorherigen Bar und der Wert des gleitenden Durchschnitts auf dem gleichen vorherigen Bar. Für den Zugriff auf diese Daten verwenden wir die Standardbibliothekenklassen CiOpen. CiClose und CiMA. Gut diskutieren Indikatoren und Zeiten später. In der Zwischenzeit können wir eine Liste der Einstellungen für unseren Generator definieren. Zuerst müssen wir den gleitenden Durchschnitt einrichten. Diese Parameter umfassen die Periode, die Verschiebung entlang der Zeitachse, die Mittelungsmethode und den Gegenstand der Mittelung. Zweitens müssen wir das Einstiegsniveau und das Niveau der Platzierung von Schutzanordnungen und die Laufzeit eines ausstehenden Auftrags festlegen, da wir mit ausstehenden Aufträgen arbeiten werden. Alle Einstellungen des Generators werden in geschützten Datenelementen der Klasse gespeichert. Der Zugriff auf die Einstellungen erfolgt durch entsprechende öffentliche Methoden. Wir können diese Änderungen in unserer Datei enthalten: Da wir geschützte Datenelemente verwenden, müssen wir einen Klassenkonstruktor hinzufügen. In dem wir diese Daten standardmäßig initialisieren. Um die Parameter zu überprüfen, können Sie die virtuelle Methode ValidationSettings entsprechend der Beschreibung der Basisklasse überschreiben. Beschreibung der Klasse: Implementierung der ValidationSettings () - Methode: Nun, wenn wir den Großteil der Vorbereitungsarbeiten abgeschlossen haben, sprechen Sie mehr über Indikatoren und Zeitschriften. Indikatoren und Zeitreihen sind die wichtigste Informationsquelle für die Entscheidungsfindung (Sie können sicherlich die Münze werfen, oder Phasen des Mondes, aber sie sind ziemlich schwer zu formalisieren). Wie wir bereits oben definiert haben, benötigen wir die folgenden Informationen: den offenen Preis der vorherigen Bar, den engen Preis der vorherigen Bar und den Wert des gleitenden Durchschnitts auf dem gleichen vorherigen Bar. Um Zugriff auf diese Daten zu erhalten, verwenden wir die folgenden Klassen der Standardbibliothek: CiOpen -, um auf den offenen Preis der vorherigen Leiste CiClose zuzugreifen, um auf den Schlusskurs der vorherigen Leiste CiMA zuzugreifen Gleitenden Durchschnitt auf dem vorherigen Balken. Sie können fragen: Warum verwenden Sie die Indikator oder timeseries, in einer Klasse gewickelt, um eine einzelne Zahl zu erhalten Es gibt eine verborgene Bedeutung, die wir jetzt zeigen werden. So verwenden Sie die Daten eines Indikators oder Zeitreihen Zuerst müssen wir ein Kennzeichen erstellen. Zweitens müssen wir die notwendige Datenmenge in einen Zwischenpuffer kopieren. Drittens müssen wir überprüfen, ob das Kopieren abgeschlossen ist. Erst nach diesen Schritten können Sie die Daten verwenden. Verwenden der Klassen der Standardbibliothek. Vermeiden Sie die Notwendigkeit, einen Indikator zu erstellen, sich um die Verfügbarkeit von Zwischenpuffern und um das Laden oder Freigeben eines Griffs zu kümmern. Das Objekt einer entsprechenden Klasse wird das für Sie tun. Alle erforderlichen Indikatoren werden von unserem Signalgenerator während der Initialisierungsphase erzeugt und alle Indikatoren mit dem notwendigen Zwischenpuffer versehen. Außerdem können Sie, nachdem Sie ein Indikator - oder Zeitserver-Objekt in der Auflistung (Objekt einer speziellen Klasse) hinzugefügt haben, die Relevanz der Daten beenden (die Daten werden vom Experten automatisch aktualisiert). Platzieren Sie die Objekte dieser Klassen in die geschützten Datenelemente. Für jedes Objekt erstellen wir eine Methode der Initialisierung und Datenzugriffsmethode. Ermöglicht die Überschreibung der virtuellen Methode InitIndicators (gemäß der Beschreibung der Basisklasse). Beschreibung der Klasse: Implementierung der Methoden InitIndicators, InitMA, InitOpen, InitClose: Alle Vorbereitungen sind abgeschlossen. Wie Sie sehen können, ist unsere Klasse deutlich gewachsen. Aber jetzt sind wir bereit, Trading-Signale zu generieren. Abbildung 4. Handelssignale für den Kurs, der den gleitenden Durchschnitt überschreitet Wir betrachten unsere Algorithmen nochmals genauer. 1. Das Kaufsignal erscheint, wenn folgende Voraussetzungen erfüllt sind: Der Bar-Preis ist niedriger als der Wert des gleitenden Durchschnitts, der Bar-Schlusskurs ist größer als der Wert des gleitenden Durchschnitts, der gleitende Durchschnitt Steigt. In diesem Fall bieten wir an, eine ausstehende Bestellung mit den von den Einstellungen definierten Parametern zu platzieren. Dazu überschreiben wir die virtuelle Methode CheckOpenLong und füllen sie mit der entsprechenden Funktion. 2. Das Verkaufssignal erscheint, wenn folgende Voraussetzungen erfüllt sind: Der Bar-offene Preis ist größer als der Wert des gleitenden Durchschnitts, der Bar-Schlusskurs liegt unter dem Wert des gleitenden Durchschnitts, dem gleitenden Durchschnitt nimmt ab. In diesem Fall bieten wir an, eine ausstehende Verkaufsorder mit den von den Einstellungen definierten Parametern zu platzieren. Dazu überschreiben wir die virtuelle Methode CheckOpenShort und füllen sie mit der entsprechenden Funktionalität. 3. Wir werden keine Signale erzeugen, um Positionen zu schließen. Lassen Sie die Positionen durch Stop Loss Take Profit geschlossen werden. 4. Wir werden die Modifikation eines ausstehenden Auftrags entlang des gleitenden Durchschnitts in dem durch die Einstellungen angegebenen Abstand vorschlagen. Dazu überschreiben wir die virtuellen Methoden CheckTrailingOrderLong und CheckTrailingOrderShort. Füllen sie mit entsprechenden funktionalen. Beschreibung der Klasse: Implementierung der Methoden CheckOpenLong, CheckOpenShort, CheckTrailingOrderLong, CheckTrailingOrderShort: So haben wir das erste Problem gelöst. Der obige Code ist ein Quellcode der Klasse der Trading-Signale Generator, der unsere Hauptaufgabe erfüllt. 2.2. Vorbereiten einer Beschreibung der erzeugten Klasse der Handelssignale für den MQL5-Assistenten Wir lösen nun die Lösung des zweiten Problems. Unser Signal sollte vom Generator der Handelsstrategien MQL5 Wizard erkannt werden. Weve getan die erste notwendige Bedingung: weve stellte die Akte, wo es durch den MQL5 Wizard gefunden wird. Aber das ist nicht genug. Der MQL5-Assistent muss nicht nur die Datei finden, sondern auch erkennen. Dazu müssen wir dem ursprünglichen Text den Klassendeskriptor für den MQL5-Assistenten hinzufügen. Ein Klassendeskriptor ist ein Block von Kommentaren, die nach bestimmten Regeln zusammengesetzt sind. Betrachten wir diese Regeln. 1. Der Kommentarblock sollte mit folgenden Zeilen beginnen: 2. Die nächste Zeile ist ein Textdeskriptor (was wir im MQL5-Wizard bei der Auswahl des Signals sehen werden) im Format TitleltTextgt. Wenn der Text für eine Zeile zu groß ist, können Sie eine weitere Zeile hinzufügen (aber nicht mehr). In unserem Fall haben wir folgendes: 3. Dann kommt eine Zeile mit dem im Typ TypTypeType angegebenen Klassentyp. Das Feld ltTypegt muss den Signalwert haben (zusätzlich zu den Signalen kennt der MQL5-Wizard andere Klassenarten). 4. Die folgende Zeile im Format NameltNamegt ist der Kurzname des Signals (wird vom MQL5 Wizard verwendet, um die Namen der globalen Variablen des Experten zu generieren). Wir erhalten folgendes: 5. Der Name einer Klasse ist ein wichtiges Element der Beschreibung. In der Zeile mit dem Format ClassltClassNamegt muss der Parameter ltClassNamegt mit dem Namen unserer Klasse übereinstimmen: 6. Wir füllen diese Zeile nicht aus, sondern müssen vorhanden sein (dies ist eine Verknüpfung zum Sprachreferenzabschnitt): 7. Weiter , Gibt es Beschreibungen der Signal-Setup-Parameter. Dies ist ein Satz von Zeilen (die Anzahl der Zeilen entspricht der Anzahl der Parameter). Das Format jeder Zeile lautet ParameterltNameOfMethodgt, ltTypeOfParametergt, ltDefaultValuegt. Hier ist unser Satz von Parametern: 8. Der Kommentar-Block sollte mit den folgenden Zeilen enden: Läßt den Deskriptor zum Quellcode hinzufügen. Nun, das ist alles. Das Signal ist betriebsbereit. Für den Generator Trading-Strategien MQL5 Wizard in der Lage sein, unser Signal zu verwenden, sollten wir neu starten MetaEditor (MQL5 Wizard scannt den Ordner IncludeExpert nur beim Booten). Nach dem Neustart von MetaEditor. Kann das erzeugte Modul der Handelssignale im MQL5-Assistenten verwendet werden: Abbildung 5. Der erzeugte Generator von Handelssignalen im MQL5-Assistenten Die im Abschnitt der Beschreibung der Parameter des Handelssignalgenerators angegebenen Eingabeparameter sind nun verfügbar: Abbildung 6 Eingabeparameter des erzeugten Generators von Handelssignalen im MQL5-Wizard Die besten Werte der Eingangsparameter der implementierten Handelsstrategie finden Sie mit dem Strategy Tester des MetaTrader 5 Terminals. Der Generator der Handelsstrategien des MQL5 Wizard vereinfacht das Testen von Handelsideen erheblich. Der Code des erzeugten Experten basiert auf den Klassen der Handelsstrategien der Standardbibliothek, die für die Erstellung bestimmter Implementierungen von Handelssignalklassen, Geld - und Risikomanagementklassen und Positionsträgerklassen verwendet werden. Der Artikel beschreibt, wie Sie Ihre eigene Klasse von Handelssignalen mit der Umsetzung von Signalen auf die Überquerung des Preises und den gleitenden Durchschnitt zu schreiben, und wie man es auf den Generator der Handelsstrategien des MQL5-Assistenten. Sowie beschreibt die Struktur und das Format der Beschreibung der generierten Klasse für die MQL5 Wizard. Ranked wie die 1 Live Trading Room für Forex amp Binär-Optionen kopieren 2015 Binäre Optionen Trading Signals. Alle Rechte vorbehalten. U. S. Government Required Disclaimer - Aktien, Optionen, binäre Optionen, Forex und Future Handel hat große potenzielle Belohnungen, sondern auch ein großes potenzielles Risiko. Sie müssen sich der Risiken bewusst sein und bereit sein, sie zu akzeptieren, um in Aktien, binäre Optionen oder Terminmärkte zu investieren. Dont Handel mit Geld, die Sie nicht leisten können, vor allem mit gehebelten Instrumenten wie binäre Optionen Handel, Futures-Trading oder Forex-Handel zu verlieren. Diese Website ist weder eine Aufforderung noch ein Angebot zum Kauf von Aktien, Futures oder Optionen. Es wird nicht vertreten, dass ein Konto ähnliche oder ähnliche Gewinne oder Verluste erzielt, wie die auf dieser Website besprochenen. Die bisherige Wertentwicklung eines Handelssystems oder einer Methodik ist nicht notwendigerweise ein Hinweis auf zukünftige Ergebnisse. Sie könnten Ihr ganzes Geld schnell auch zu verlieren: schlechte Marktbedingungen, mechanische Fehler, emotionale induzierte Fehler, News-Überraschungen und Gewinn-Releases. EARNINGS HAFTUNGSAUSSCHLUSS JEDE MÖGLICHKEIT IST GEMACHT, DIESES PRODUKT UND IHR POTENZIAL ZUR KONZEPT ZU VERTRETEN. ES GIBT KEINE GARANTIE, DASS SIE JEDES GELD MIT DEN TECHNIKEN UND IDEEN ODER SOFTWARE MIT DIESER WEBSEITE VERWENDEN KÖNNEN. BEISPIELE IN DIESER SEITE SIND NICHT ZUR VERGEWENDUNG ODER GARANTIE VON ERGEBNIS. EARNING POTENZIAL IST VÖLLIG ABHÄNGIG AN DER PERSON MIT DEN INFORMATIONEN, DIE DIESE SEITE, DIE IDEEN UND DIE TECHNIKEN ENTHALTEN. WIR KÖNNEN DIESES NICHT ALS EIN GET RICH SCHEM. Ihr Niveau des Erreichens DIE ERGEBNISSE IN DIESER SEITE BEANSPRUCHT hängt von der Zeit SIE DEN Ideen und Techniken WIDMEN ERWÄHNT, Ihre Finanzen, Wissen und verschiedene Fähigkeiten. DA DIESE FAKTOREN NACH DEN EINZELNEN ABWEICHEN, können wir nicht garantieren IHR ERFOLG ODER Einkommen. NOR SIND WIR FÜR IRGENDEINE IHRE MASSNAHMEN VERANTWORTLICH. MATERIAL IN DIESER SEITE KÖNNEN Informationen enthalten, die ZUKUNFTSGERICHTETE AUSSAGEN ENTHALTEN, DIE UNSERE ERWARTUNGEN ODER Prognosen zukünftiger Ereignisse ergeben. SIE KÖNNEN DIESE AUSSAGEN DURCH DIE TATSACHE KENNEN, DASS SIE KEINE STARK ZU HISTORISCHEN ODER AKTUELLEN FAKTEN ENTHALTEN. Sie verwenden Wörter wie antizipieren SCHÄTZEN, erwarten, planen, beabsichtigen, planen, glauben und anderen Wörtern und Begriffen mit ähnlicher Bedeutung IN VERBINDUNG MIT EINEM BESCHREIBUNG POTENZIELLER ERGEBNIS oder die finanzielle Performance. JEGLICHE ZUKUNFTSGERICHTETE AUSSAGEN hier oder auf eine unserer Vertriebs MATERIAL SOLLEN AN DIE STELLUNGNAHME DES ERTRAGSPOTENZIAL EXPRESS. Viele Faktoren wird wichtig sein, in Ihrer aktuellen ERGEBNISSE UND FESTSTELLUNG keine Garantien gemacht, dass Sie die Ergebnisse ähnlich wie bei uns erreicht oder ANYBODY ELSES, in der Tat keine Garantien GEMACHT, dass Sie alle Ergebnisse aus unseren Ideen und Techniken in unser Material erreichen. ClickBank ist eine eingetragene Marke von Keynetics Inc., einer Delaware Corporation. Binaryoptionstradingsignals ist nicht mit Keynetics Inc. in irgendeiner Weise verbunden und Keynetics Inc. sponsert oder genehmigt kein binaryoptionstradingsignals Produkt. Keynetics Inc. gibt keine Meinung über die Richtigkeit der Aussagen von binaryoptionstradingsignals in den Materialien auf dieser Webseite.


No comments:

Post a Comment