MetaTrader 5 - Beispiele. Universal Expert Advisor Trading-Modi von Strategien Teil 1. Verschiedene Aufgaben können auftreten, während die Implementierung automatisierter Trading-Algorithmen, einschließlich der Analyse des Marktumfelds, um Markteintrittssignale zu interpretieren und das Schließen einer bestehenden Position Eine weitere mögliche Aufgabe ist die Kontrolle über Expert Beraterbetriebe und ordnungsgemäße Handhabung von Handelsfehlern Schließlich ist es eine Aufgabe des einfachen und bequemen Zugangs zu Marktdaten und Handelspositionen des Expert Advisor Alle diese Aufgaben werden direkt im Expert Advisor Quellcode implementiert. Auf der anderen Seite sollten wir uns trennen Der technische Teil des Handelsprozesses und die Idee, die in den kundenspezifischen Expertenberatern implementiert wird Mit dem objektorientierten Ansatz können wir diese beiden wesentlich unterschiedlichen Handelsaufgaben trennen und die Umsetzung des Handelsprozesses einer besonderen, allen Strategien gemeinsamen Maßstäbe anvertrauen Wird manchmal auch als Trading Engine bezeichnet. Dies ist der erste Artikel in der Reihe von Artikeln, die den Betrieb eines solchen Motors beschreiben, der als Universal Expert Advisor bezeichnet werden kann. Dieser Name vereinheitlicht einen Satz von Klassen, die eine einfache Entwicklung von Handelsalgorithmen ermöglichen Eine übliche Aufzählung von Positionseingabe - und - ausgangsbedingungen Sie müssen dem Expert Advisor keine erforderlichen Daten und Handelslogiken hinzufügen, zB Positionssuche, die alle erforderlichen Prozeduren durch die Handelsmaschine durchgeführt werden. Das Material für den vorgeschlagenen Artikel ist umfangreich Aufgeteilt in vier Teile Hier sind die Details dieser Teile. Part 1 Trading-Modi von Strategien Sie sind in diesem Artikel beschrieben Der erste Teil beschreibt das ursprüngliche Positionsmanagement-Konzept auf der Grundlage von Trading-Modi Eine Expert Advisor Trading-Logik kann leicht definiert werden mit Trading-Modi An Expert Advisor in diesem Stil geschrieben ist einfach zu debuggen Die Logik dieser EAs wird universell und gleichermaßen, was auch die Verwaltung solcher Strategien erleichtert Die Ideen in diesem Material ausgedrückt sind universell und erfordern keine zusätzliche objektorientierte Programmierung Dies bedeutet, unabhängig davon, ob Sie werden die Menge der angebotenen Bibliotheken verwenden oder nicht, dieses Material kann für Sie nützlich sein. Part 2 Das Event Model und Trading Strategy Prototyp Dieser Abschnitt beschreibt ein originelles Event-Modell auf der Grundlage zentraler Event-Handling Es bedeutet, dass alle Ereignisse an einem Ort gesammelt werden Der EA-Handelslogik, die sie verarbeitet Auch Ereignisse sind multi-currency Zum Beispiel, wenn ein Expert Advisor auf dem EURUSD-Chart läuft, ist es möglich, ein Ereignis eines neuen Tick von GBPUSD zu erhalten. Dieses Event-Modell kann äußerst nützlich sein, wenn Entwicklung von Expertenberatern, die mehrere Finanzinstrumente handeln In diesem Teil werden wir auch die Basisklasse der CStrategy-Trading-Engine und die CPositionMT5-Klasse beschreiben, die eine Position in MetaTrader darstellt. 5.Part 3 Custom Strategies and Auxiliary Trade Classes Das Material umfasst den Prozess von Benutzerdefinierte Expert Advisor Entwicklung Aus diesem Artikel erfahren Sie, wie Sie einen Expert Advisor durch eine einfache Aufzählung von Positionseingabe und Exit-Bedingungen erstellen. Dieser Teil beschreibt auch verschiedene Hilfsalgorithmen, die den Zugang zu Handelsinformationen erheblich vereinfachen können. Part 4 Trading in einer Gruppe und Verwalten eines Portfolios von Strategien Dieser Teil enthält eine Beschreibung spezieller Algorithmen zur Integration mehrerer Handelslogiken in ein einziges ausführbares Ex5-Modul. Es beschreibt auch Mechanismen, mit denen eine Reihe von benutzerdefinierten Strategien mit einer XML-Datei erstellt werden kann. Verfahren zum Öffnen neuer Positionen Und das Verwalten vorhandener Ones. Um den in diesem Artikel angebotenen Ansatz zu verstehen, werden wir zunächst versuchen, ein klassisches Handelssystem zu beschreiben, das auf zwei gleitenden Durchschnitten basiert, von denen eine eine kurze Mittelungsperiode hat und die zweite eine lange Periode hat Gleitender Durchschnitt mit einer großen Periode der Mittelung ist langsamer als der gleitende Durchschnitt mit einer kleineren Periode der Mittelung Trading Regeln sind einfach, wenn der schnell gleitende Durchschnitt über dem langsamen ist, ist die EA zu kaufen Umgekehrt, wenn der schnell gleitende Durchschnitt unter dem ist Langsame, die EA ist zu verkaufen Die folgende Tabelle zeigt unsere Strategie schematisch. Fig 1 Die Tabelle eines Handelssystems auf zwei gleitenden Durchschnitten basiert. Die rote Linie zeigt die schnell einfache gleitende Durchschnitt mit einer Periode von 50 Die blaue Linie zeigt die langsam Gleitender Durchschnitt mit einer Periode von 120 Wenn sie sich kreuzen, sind mit blauen gepunkteten Linien markiert, die Richtung der Expert Advisor Position kehrt aus der Sicht der nicht-algorithmischen Ansatz, die Beschreibung ist genug für jeden Händler zu verstehen, wie man damit handeln Strategie Allerdings ist diese Beschreibung nicht genug für die Erstellung eines Expert Advisor auf der Grundlage dieser Strategie. Let s betrachten Handeln Aktionen, die die EA müsste zu einer Zeit, wenn die schnelle MA kreuzt die langsame von unten nach oben. Wenn die EA hat Eine offene Short-Position, wenn sich die MAs schneiden, sollte diese Position geschlossen werden. Die Existenz einer offenen Long-Position sollte überprüft werden Wenn es keine lange Position gibt, sollte man geöffnet werden Wenn eine lange Position bereits existiert, sollte nichts getan werden Gegenüber Crossover, wenn die schnelle MA die langsame von oben nach unten kreuzt, sollten entgegengesetzte Aktionen durchgeführt werden. Wenn die EA eine offene Long-Position hat, wenn sich die MAs schneiden, sollte diese Position geschlossen werden. Die Existenz einer offenen Short-Position sollte überprüft werden Wenn es keine Short-Position gibt, sollte man geöffnet werden Wenn eine Short-Position bereits existiert, sollte nichts getan werden. Wir haben vier Handelsaktionen, um den Handelsprozess der Strategie zu beschreiben. Zwei Handelsaktionen beschreiben die lange Position Eröffnung und Aufrechterhaltung von Regeln Zwei andere Aktionen Beschreiben die Short-Position Eröffnung und Aufrechterhaltung Regeln Es scheint, dass eine Vier-Action-Sequenz ist zu viel für die Beschreibung eines solchen einfachen Handelsprozess In der Tat, Long-Position Einträge übereinstimmen mit der Short-Position Ausgänge in unserer Strategie, so wäre es nicht Einfacher zu kombinieren sie zu einem handelnden oder zumindest logischen handeln Nein, es würde nicht zu beweisen, dass wir die Bedingungen unserer anfänglichen Strategie ändern. Jetzt unsere Strategie wird verschiedene Sätze von Moving Averages für Käufe und verkauft verwenden Zum Beispiel eine lange Position Wird geöffnet, wenn der schnelle Moving Average mit einer Periode von 50 kreuzt die langsame mit einer Periode von 120 Und eine kurze Position wird geöffnet werden, wenn die schnelle Moving Average mit einer Periode von 20 kreuzt die langsame mit einer Periode von 70 Jetzt kaufen Signale unterscheiden sich von Verkaufssignalen, die sie zu verschiedenen Zeiten, in verschiedenen Marktsituationen auftreten werden. Die vorgeschlagenen Regeln sind nicht nachgedacht Strategien verwenden oft Spiegelbedingungen für Einreise und Ausstieg in eine lange Position bedeutet, ein kurzes zu verlassen und umgekehrt Sind auch möglich, und wenn wir einen universellen Prototyp eines Expertenberaters erstellen wollen, müssen wir dies berücksichtigen, also werden wir vier Regeln haben. Weiterhin werden wir unsere Handlungen aus einem anderen Blickwinkel betrachten. Die folgende Tabelle zeigt den Handelsbetrieb Typ Kauf oder Verkauf und der Handelstyp öffnen oder schließen Die Tabellenzellen enthält einen bestimmten Satz von Aktionen. BuyInit SellInit BuySupport SellSupport. Table 2 Expert Advisor Trading Modes. All Trading-Modi werden durch die praktische Umsetzung in MQL mit einer speziellen Struktur ENUMTRADESTATE gegeben Hier ist seine Beschreibung. Diese Modi erlauben alle Expert Advisor entwickelt unter dem vorgeschlagenen Ansatz für die Flexibilität zu verbinden und trennen Handelsmodule, so um es zu einem oder anderen Trading-Modus auf der fly. CTradeState Trading-Modus switch. Using Trading-Modi, die Expert Advisor Wird immer in der Lage sein zu verstehen, zu welchem Zeitpunkt, um bestimmte Aktionen durchzuführen. Allerdings sollte dieser Zeitpunkt für jeden Expert Advisor einzeln bestimmt werden. Die Handelsmoduskontrolle ist besonders erforderlich, wenn der Handel mit dem FORTS-Bereich des MICEX FORTS-Handels mehrere spezifische Merkmale aufweist Hauptsache davon erfolgt Clearing zweimal täglich, von 14 00 bis 14 03 Zwischenräumung und von 18 45 bis 19 00 Hauptclearing Es ist ratsam, dass Expert Advisors keine Handelsabläufe während des Clearing durchführen kann. Natürlich, wenn ein EA nur ausführt Operationen mit der Ankunft von neuen Ticks oder Bildung von neuen Bars, wird es nicht funktionieren, während der Markt geschlossen ist, weil keine neuen Zitate empfangen werden Aber viele Experten Berater arbeiten in bestimmten Intervallen mit einem Timer Für solche EAs, Kontrolle über Handelsaktionen ist Wesentlich Darüber hinaus können manchmal Trades an Wochenenden und Feiertagen durchgeführt werden, und einige Forex Broker erlauben den Handel auch an Wochenenden Allerdings aufgrund der geringen Volatilität solcher Tage, sowie ihre geringe statistische Signifikanz, sollten diese Tage besser übersprungen werden. Anyway, Kontrolle über Trading-Modi ist eine notwendige Vorgehensweise für jeden professionellen algorithmischen Trader Diese Aufgabe kann dem speziellen CTradeState-Modul übertragen werden Dieses Modul ist als MQL5-Klasse implementiert und seine Aufgabe ist es, den Trading-Modus entsprechend der aktuellen Zeit zurückzugeben Die aktuelle zeit entspricht der löschzeit, das modul kehrt den TRADEWAIT-Zustand zurück Wenn es an der Zeit ist, alle Positionen zu schließen, wird das Modul TRADESTOP zurückgeben. S beschreibt seine Betriebs - und Konfigurationsmethoden genauer Hier ist der Header dieser Klasse Hauptaufgabe dieser Klasse ist es, in den aktuellen Modus der Strategie zurückzukehren, für die es notwendig ist, seine GetTradeState-Methode aufzurufen. Bevor das Modul den Zustand zurückgeben kann, sollte dieser Zustand mit der SetTradeState-Methode hinzugefügt werden. Der Modul-Operationsalgorithmus Ähnelt der Registerkarte Zeitplan des MetaTrader 5 Testagenten. Fig 3 Die Registerkarte Zeitplan im MetaTrader 5 Testagent. In diesem Fenster können Sie die Wochentage festlegen, in denen der Agent Aufgaben aus dem MQL5 Cloud Network The CTradeState ausführen kann Klasse funktioniert in ähnlicher Weise, aber ermöglicht es Ihnen, einen der fünf Werte von ENUMTRADESTATE für jeden Bereich zu setzen. Um besser zu verstehen, wie man CTradeState verwendet, lassen Sie uns das Modul der Handelsstaaten konfigurieren Für den täglichen Betrieb auf dem FORTS-Markt, der Autor von Der Artikel verwendet die folgende Konfiguration als table. Countable Data Brief. Wird von uns seit Juli 2014 verfolgt Im Laufe der Zeit wurde es so hoch wie 15 243 599 in der Welt eingestuft Die ganze Zeit war es im Besitz von Universal Trading Strategies of UNIVERSAL TRADING STRATEGIES PTY LTD wurde es von Dreamscape Networks. Utscorp wurde gehostet Niedrigste Google-Pagerank und schlechte Ergebnisse in Bezug auf Yandex topischen Zitat-Index Wir fanden, dass ist schlecht sozialisiert in Bezug auf jedes soziale Netzwerk Laut Siteadvisor und Google sichere Browsing Analytics, ist eine recht sichere Domain ohne Besucher Bewertungen. Worldwide Audience. It scheint, dass Verkehr auf dieser Seite ist zu niedrig, um angezeigt zu werden, sorry. Traffic Analysis. It scheint, dass die Anzahl der Besucher und Seitenaufrufe auf dieser Seite zu niedrig ist, um angezeigt zu werden, sorry. Subdomains Traffic Shares. Hat keine Subdomains mit erheblichem Verkehr. Ist noch nicht wirksam in seiner SEO-Taktik hat es Google PR 0 Es kann auch bestraft werden oder fehlt wertvolle eingehende Links. MetaTrader 5 - Beispiele. Universal Expert Advisor Trading in einer Gruppe und Verwaltung eines Portfolios von Strategien Teil 4.Table of Contents. We Müssen oft Algorithmen erstellen, die miteinander verknüpft werden sollen, dh der Betrieb eines Algorithmus sollte nicht durch die Aktionen anderer Algorithmen beeinflusst werden, die zur gleichen Zeit durchgeführt werden. Diese Situation tritt auf, wenn man mehrere Algorithmen zu einem ausführbaren Ex5-Modul kombinieren muss Scheinbare Einfachheit, diese Aufgaben haben einige signifikante Fallstricke algorithmische Merkmale, die bei der Erstellung der Engine von Handelsstrategien berücksichtigt werden müssen. Die CStrategy Trading Engine umfasst eine Reihe von Algorithmen, die die Zusammenarbeit von zwei und mehr Trading-Strategien implementieren Wir werden sie im Detail in Der vierte Teil dieser Serie Auch wir erstellen ein Trading-Profil eine Gruppe von Expert Advisors Handel gleichzeitig, um die Handelsrisiken zu diversifizieren Die CStrategyList-Klasse ein Container von CStrategy-Typ-Strategien gehört zu den Algorithmen, die gleichzeitigen Betrieb von Strategien Die Klasse ermöglicht das Hochladen der XML Basierte Präsentation der Strategien, sowie erstellen sie dynamisch mit der entsprechenden Methode eine Fabrik von Strategien. Das beigefügte Video zeigt den Prozess der Prüfung mehrerer Strategien in der MetaTrader 5 Strategie-Tester Alle Strategien auf der Grundlage der beschriebenen Trading-Engine haben eine Standard-benutzerdefinierte Panel , Die Ihnen helfen, einzelne Strategien direkt aus dem Chart zu kontrollieren. CStrategyList Strategy Manager. Der zweite Artikel der Universal Expert Advisor-Serie beschrieb die CStrategy-Klasse und ihre Hauptmodule Durch den Einsatz dieser Klasse und ihre Funktionalität in den Modulen implementiert, jeder geerbt Strategie unterhält eine einheitliche Handelslogik Allerdings ist die Organisation eines Handelsprozesses mit Robotern mehr als nur eine bloße Ausführung von Handelsanfragen. Es ist wichtig, ihre Zusammenarbeit zu sichern, einschließlich der Bedienung mehrerer Algorithmen in einem ausführbaren Ex5-Modul. Die spezielle CStrategyList-Klasse wird verwendet Dieser besondere Zweck Wie Sie vielleicht von seinem Namen raten, bietet diese Klasse eine Liste der Strategien des CStrategy-Typs, aber ihre Bedienung ist etwas komplizierter als die Bedienung eines üblichen Datencontainers. Das Modul löst die folgenden Aufgaben. Gleichzeitiger Betrieb mehrerer Handelsstrategien. Delivering Handelsveranstaltungen zu jeder Strategie instance. creating Strategie-Objekte aus der vereinheitlichten XML-Liste der Strategien Daten Deserialisierung. interaktion mit dem benutzerdefinierten Panel für EA-Konfiguration verwendet. Hier ist der Header der CStrategyList Klasse. Sie können sehen, die meisten Methoden Präsentiert Handler von Fachveranstaltungen Sie haben Inhalte des gleichen Typs Lassen Sie s analysieren eine von ihnen, OnBookEvent. As aus dem Klasseninhalt gesehen, sucht es nach CStrategy Strategien in der Liste und ruft ein passendes Ereignis in jeder der Strategien Die Operation von Andere Ereignismethoden sind ähnlich. Zusätzlich zur Weitergabe von Ereignissen führt CStrategyList spezielle Prozeduren aus, die Strategien aus der XML-Datei laden. Weitere Informationen darüber, wie es funktioniert, lesen Sie bitte den nächsten Abschnitt. Laden von Strategien aus einer XML-Liste Ein Portfolio von Strategien Ausführbare Ex5-Modul enthält mehrere Trading-Algorithmen, wir brauchen Werkzeuge, um ein Portfolio von Strategien zu generieren Angenommen, dass zwei Algorithmen mit unterschiedlichen Parametern in einem ausführbaren Modul handeln Wie man diese Parameter konfiguriert Die einfachste Sache ist, die Parameter jeder Strategie im EA-Eigenschaftenfenster auszugeben Aber was zu tun ist, wenn viele Strategien verwendet werden, von denen jeder viele Parameter hat In diesem Fall wäre die Liste der Parameter mit verschiedenen Modifikatoren, Flags, Strings und Kommentare wäre riesig Das ist, was die Parameter Fenster eines Expert Advisor Trading drei Strategien würde Sehen Sie wie. Fig 1 Die Liste der Parameter des EA Trading drei Strategien. AN Expert Advisor können noch mehr Strategien In diesem Fall könnte die Liste der Parameter unvorstellbare Größe haben Der zweite wichtige Aspekt des Portfolio-Trading ist die Schaffung von Strategien auf dem Fluss Angenommen Dass wir die gleiche Strategie mit zwei verschiedenen Sätzen von Parametern laufen wollen Was sollen wir tun Offensichtlich sind diese beiden Strategien trotz der unterschiedlichen Parametersätze ein und dieselbe Strategie, wenn auch mit unterschiedlichen Einstellungen Statt jede der Strategien manuell zu erstellen, Wir können diese Aufgabe einer separaten Klasse anvertrauen Die Klasse kann automatisch ein Strategieobjekt erstellen und sie ordnungsgemäß konfigurieren. Vor dem Erstellen einer Strategie auf dem Fluß ist es notwendig, ihre vollständige Beschreibung anzugeben. Die Beschreibung muss die folgenden Angaben enthalten Strategie. a eine einzigartige Strategie-ID oder seine Magic-Nummer. das Symbol der Strategie läuft auf. Bearbeitungszeitraum der Strategie. a Liste der einzigartigen Parameter der Strategien eine individuelle Liste für jede Strategie. Strategy Beschreibung kann andere Eigenschaften zusätzlich zu den oben genannten enthalten List Der beste Weg, um eine solche Beschreibung zur Verfügung zu stellen, ist die Verwendung von XML Die Sprache wurde als spezielles Beschreibungstool erstellt. Es erlaubt, komplexe Objekte bequem zu beschreiben, so dass ein Objekt wie eine Handelsstrategie in ein Text-XML-Dokument und einen Text konvertiert werden kann Dokument kann in eine Strategie konvertiert werden. Beispielsweise kann die Trading Engine auf Basis eines XML-Dokuments eine Strategie erstellen und ihre Parameter ordnungsgemäß konfigurieren. Um diese Art von Dokumenten direkt aus MQL5 zu bearbeiten, sollten wir eine spezielle XML-Parser-Bibliothek verwenden Die Code-Base. Hier ist ein Beispiel für die XML-Beschreibung eines Portfolios, das drei MovingAverage-Strategien mit verschiedenen Parametern lädt. Jeder der Strategien bildet die Strategie-Einheit Die folgenden Attribute sind darin spezifiziert Symbol, Zeitrahmen, Magie und StrategyName Aus dem obigen Beispiel , Sehen wir, dass jede der drei Strategien ein eigenes Symbol, eine magische Zahl und einen Zeitrahmen hat. Zusätzlich zu diesen erforderlichen Parametern werden in der XML-Liste weitere Strategieeigenschaften angegeben. TradeStateStart gibt den Trading-Modus zum Zeitpunkt der Strategie-Einführung an. Section Params enthält Die Parameter der Strategie. Bei der Inbetriebnahme wird die Trading Engine versuchen, die Trading-Strategien aus der obigen XML-Datei zu laden Eine Strategie wird geladen und erstellt auf der Grundlage dieses Dokuments in der CStrategyList-Klasse in ihrer LoadStrategiesFromXML-Methode Im Folgenden sind die Inhalte dieser Methode , Sowie aller verwandten Methoden. Der interessanteste Teil der Methoden ist die Schaffung einer Strategie mit der speziellen statischen Methode CStrategy GetStrategy Der Name der Strategie sollte als Parameter übergeben werden Die Methode gibt eine bestimmte Instanz der Strategie zurück Mit diesem Namen verknüpft Die Methode wurde statisch gemacht, um den Zugriff darauf zu ermöglichen, bevor ein Strategieobjekt erstellt wird. GetStrategy wird in einer separaten Header-Datei geschrieben, denn im Gegensatz zu anderen Teilen der Trading Engine müssen Sie es von Zeit zu Zeit bearbeiten, um neue hinzuzufügen Strategien dazu Wenn Sie möchten, dass Ihre Strategie aus XML geladen wird, muss ihre Erstellungsprozedur direkt zu dieser Methode hinzugefügt werden. Der Quellcode dieser Header-Datei ist wie folgt. Wenn die Strategie erstellt wurde, sollte sie mit den erforderlichen Parametern initialisiert werden Aus dem Params-Abschnitt Da die Parameter jeder Strategie eindeutig sind, ist es nicht möglich, diese Parameter auf der Ebene der Trading-Engine zu initialisieren. Stattdessen kann die Basisklasse der Strategie die virtuelle Methode aufrufen ParseXmlParams Wenn die Strategie diese Methode überschreibt und dann überschreibt Ordnungsgemäß analysiert die Liste der Parameter als XML-Knoten zu ihm, wird es in der Lage sein, die erforderlichen Werte der eigenen Parameter zu spezifizieren Als Beispiel, schauen Sie sich die ParseXmlParams-Methode der CMovingAverage-Strategie, die auf zwei gleitenden Durchschnitten basiert, wird ihr Algorithmus beschrieben Im ersten Kapitel dieses Artikels. Die Details dieser Strategie sind im dritten Artikel der Serie beschrieben, die die Entwicklung von kundenspezifischen Strategien umfasst. Mit dem Mechanismus der Strategie-Erstellung aus einer Datei, ist es möglich, eine Reihe von Strategien zu konfigurieren Einmal, und dann laden Sie es aus einer Datei jedes Mal, wenn Sie noch weiter gehen können und schreiben Sie einen selbstoptimierenden Algorithmus, der die Sätze von Parametern seiner besten Läufe in eine XML-Datei speichert Die Trading-Engine liest diese Datei beim Start und wird eine Satz von Strategien auf seiner Basis. Management-Strategien mit einem benutzerdefinierten Panel. Von der Sicht des Benutzers, Strategien können bequem gesteuert werden, mit einem speziellen benutzerdefinierten Panel Dieses Panel würde auf einem Diagramm nach dem EA-Start angezeigt werden und würde die Durchführung einfach Operationen mit jedem der Trading-Algorithmen, die die Strategie Trading-Modus. Betrieb oder verkaufen das erforderliche Volumen anstelle der Strategie. Die letztere Option ist nützlich, wenn die EA nicht die entsprechende Aktion aus irgendeinem Grund ausführen, und Sie müssen ihre zu synchronisieren Staat mit der aktuellen Marktsituation. Description von Klassen, die benutzerdefinierte Panels und Dialogfelder erstellen, liegt außerhalb des Umfangs des diskutierten Themas und erfordert einen separaten Artikel Wir beschreiben nur die grundlegenden Aspekte im Zusammenhang mit der Panel-Verbindung. Das Expert Advisor Control Panel ist Implementiert in einer separaten CPanel-Klasse, die verschiedene Steuerelemente wie Listen, Schaltflächen und Text-Labels enthält Alle Klassen für die Gui-Erstellung sind im Datafolder verfügbar MQL5 Include Panel Um den Panel-Betrieb zu gewährleisten, ist es notwendig, das OnChartEvent-Event direkt im EA s mq5 zu behandeln File Der Handler von Chart-Events befindet sich in der CStrategyList-Klasse, also genügt es, diesen Handler in OnChartEvent aufzurufen. Der Handler dieser Events in CStrategyList sendet sie direkt an das Panel. Upon einen Klick auf eine beliebige Schaltfläche auf dem Panel, definiert es Die Aktion, die durchgeführt werden soll und führt sie aus. Wenn wir z. B. eine Strategie aus der Liste der Strategien auswählen, ist der Index der aktuellen Strategie gleich der ausgewählten, dann können Sie weitere Handelsaktionen durchführen Trading-Modus der gewählten Strategie durch die Auswahl der entsprechenden Option aus der Dropdown-Liste der Strategie-Modi. Fig 2 Die Liste der Modi einer ausgewählten Strategie. Buying und Verkauf im Namen der ausgewählten Strategie wird auf die gleiche Weise durchgeführt Ein Zeiger auf Die Strategie ruft die Kauf - und Verkaufsmethoden der CStrategy-Basisklasse auf Diese Methoden kaufen und verkaufen das in ihnen übergebene Volumen. In diesem Fall entspricht die magische Zahl in den Operationen der magischen Nummer der Strategie, so dass es unmöglich ist, manuell zu unterscheiden Handel von den EA s Aktionen. Es sollte darauf hingewiesen werden, dass die EA s Handelslogik implementiert ist, so dass alle Positionen von einem Benutzer geöffnet werden dann von diesem Expert Advisor im normalen Modus gepflegt Es verwaltet solche Positionen wie seine eigenen automatisch geöffnet Positionen. Expert Berater Trading in einer Gruppe. Wir können ein Portfolio von Handelsstrategien zusammenstellen Die Strategien müssen Methoden enthalten, die für das Analysieren von XML-Parametern verantwortlich sind, dh wir müssen die ParseXmlParams-Methode überschreiben. Es ist auch notwendig, die Schaffung eines geeigneten Typs der Strategie hinzuzufügen CStrategy GetStrategy-Methode Schließlich müssen wir eine XML-Datei mit einer Liste von Strategien und deren Parametern erstellen. Danach wird die CStrategyList-Klasse Instanzen von Strategien erstellen und sie zu ihrer Liste von Strategien hinzufügen. Das Custom Panel zeigt diese Strategien danach an. Lassen Sie uns ein Portfolio von Strategien erstellen, die aus den oben beschriebenen Expertenberatern bestehen. Beispiele für das Analysieren von XML-Einstellungen für die CMovingAverage - und CChannel-Strategien finden Sie in den Abschnitten 3 5 und 4 3.Der Inhalt der CStrategy GetStrategy für die Erstellung der beiden Strategien wird sein Wie folgt. Die letzte Berührung ist, um die Methode verantwortlich für den EA s vollständigen Namen überschreiben Führen Sie die übergeordneten für die CMovingAverage Strategie. Jetzt ist alles bereit für die Schaffung eines Portfolios von Strategien Unser Portfolio umfasst vier Handelssysteme Jeder von ihnen wird seine eigenen handeln Symbol Zwei Strategien werden auf MovingAverage basieren, und zwei andere werden BollingerBands verwenden Eine detailliertere Beschreibung dieser Strategien ist im vorherigen Artikel verfügbar Universal Expert Advisor Custom Strategies und Auxiliary Trade Classes Teil 3.Our XML Portfolio wird wie folgt sein. Diese Datei Sollte ein gemeinsamer Datenordner der MetaTrader-Plattform gespeichert werden. Hier ist der Quellcode des mq5-Moduls, das einen Expert Advisor erstellt. Custom Variablen StrategiesXMLFile und LoadOnlyCurrentSymbol sind in der CStrategyList-Klasse definiert Sie werden in dieser Klasse für die Angabe der Liste von verwendet Strategien zu laden, und der Modus, der erlaubt, nur laden Sie die Strategien mit dem Symbol gleich dem Namen des Instruments der Expert Advisor läuft auf Auch beachten Sie, dass einige Ereignisse, wie OnBookEvent und OnTimer, nicht verwendet werden Dies bedeutet, dass sie werden Nicht in kundenspezifischen Strategien verwendet werden. Die Zusammenstellung sollte erfolgreich sein Danach ist der Expert Advisor, der im Projekt benannt ist, bereit für den Einsatz. Lass es versuchen, es auf dem Diagramm zu laufen. Vor diesem müssen wir sicherstellen, dass alle verwendeten Symbole im MetaTrader verfügbar sind Market Watch Nach erfolgreichem Start erscheint das Expert Advisor Icon in der oberen rechten Ecke des Diagramms Eine weitere Schaltfläche wird in die obere linke Ecke des Diagramms hinzugefügt, um das benutzerdefinierte Panel zu maximieren Wenn wir die Liste der EAs namens Agent auf dem Panel auswählen, Eine Liste von vier Expert Advisors wird öffnen. Fig 3 Liste der geladenen Expert Advisors. The Screenshot Features der Liste der Expert Advisors von unserer XML-Datei gebildet Nach einer Weile werden die Strategien beginnen, jede Strategie auf seinem individuellen Symbol. Analyzing Expert Advisor Operation In der Strategie Tester. Wie ein Portfolio von Strategien generiert, können wir es im Strategy Tester testen, um sicherzustellen, dass es ordnungsgemäß funktioniert Keine zusätzliche spezifische Aktion erforderlich ist, da die XML-Liste der Strategien befindet sich im globalen Datenordner, zugänglich durch die Strategy Tester Nach dem Start des EA-Moduls werden alle benötigten Symbole automatisch geladen. Jeder Expert Advisor führt Handelsabläufe nach seinen individuellen Handelsregeln durch und zieht zusätzlich einen eigenen Indikator an. Das untenstehende Video zeigt das Testen eines Portfolio von Strategien Auf vier verschiedenen Instrumenten. Simulation von CStrategy-basierte Strategien in der Strategy Tester ist ähnlich wie Echtzeit-Handel mit diesen Strategien Die visuelle Test-Option ermöglicht es Ihnen, die Genauigkeit der Einträge und Ausgänge der Strategien leicht zu überprüfen. Wir haben Algorithmen erlaubt, zufällig zu erstellen Sätze von Handelsstrategien Mit diesen Sets oder Portfolios von Strategien können Sie den Handelsprozess flexibel und effizient skalieren und gleichzeitig mehrere Trading-Algorithmen verwalten, die sich im selben ausführbaren Modul befinden. Die Algorithmen sind besonders nützlich für die Strategien, die mehrere Trading-Instrumente gleichzeitig nutzen Ansatz, die Schaffung von ähnlichen Trading-Algorithmen ist so einfach wie die Entwicklung von konventionellen Handelsstrategien.
No comments:
Post a Comment