Universelle Anlagestrategien bieten One-on-One-Optionen Handel Mentoren und Bildung für Investoren, die aktive, passive und / oder Ruhestand Einkommen zu generieren. Mit über 25 Jahren kombinierter Erfahrung und Tausenden von zufriedenen Kunden, wurde Universal Investment Strategies auf den Prinzipien der wir gehen mit Ihnen Seite an Seite jeden Schritt des Weges. Wir bemühen uns, unseren Klienten zu helfen, eine feste Wahlhandelsstrategie zu entwickeln, also können sie erfolgreich sein. Wir werden uns bemühen, Ihr Verständnis von Optionen, Handelstechniken und Disziplin zu verbessern. Lassen Sie uns Ihnen helfen, eine effektive Optionen Trader Wir verstehen, dass der Finanzmarkt kann ein einschüchternder Ort, vor allem, wenn Sie nicht richtig in finanzieller Artikulation. Doch hier bei Universal Investment Strategies nehmen wir die Angst und Einschüchterung Faktor aus den Märkten, wie unser Team von Finanzprofis mit Ihnen nach unten, was wie eine gewundene Gang der finanziellen Verwirrung scheinen kann. Wir maßgeschneidert bilden unsere pädagogische Plattform zu jedem einzelnen Klienten, während wir nur unterrichten, was theyre, das am Lernen interessiert ist. Wir machen Handelsbildung nicht nur Spaß, sondern so vorteilhaft wie möglich, so dass unsere Kunden erhalten die maximale Rentabilität für ihr Geld sowie Zeit verbracht. Unsere ClientsMetaTrader 5 - Beispiele Universal Expert Advisor: Handel in einer Gruppe und Verwalten eines Portfolios von Strategien (Teil 4) Inhaltsverzeichnis Einleitung Wir müssen oft Algorithmen erstellen, die miteinander verknüpft werden sollen, dh der Betrieb eines Algorithmus sollte nicht beeinflusst werden Durch die Aktionen anderer Algorithmen, die zur gleichen Zeit durchgeführt werden. Diese Situation tritt auf, wenn Sie mehrere Algorithmen zu einem ausführbaren ex5-Modul kombinieren müssen. Trotz seiner scheinbaren Einfachheit, diese Aufgaben haben einige bedeutende Fallstricke algorithmische Funktionen, die beim Bau der Motor der Handelsstrategien berücksichtigt werden müssen. Die CStrategy Trading Engine enthält eine Reihe von Algorithmen, die die Zusammenarbeit von zwei und mehr Trading-Strategien zu implementieren. Wir werden sie im vierten Teil dieser Reihe ausführlich besprechen. Auch werden wir ein Handelsprofil einer Gruppe von Expert Advisors, die gleichzeitig handeln, erstellen, um 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-basierten Präsentation der Strategien, sowie die Erstellung dynamisch mit der entsprechenden Methode eine Fabrik von Strategien. Das angehängte Video demonstriert den Prozess des Testens mehrerer Strategien im MetaTrader 5 Strategy Tester. Alle Strategien, die auf dem beschriebenen Trading-Engine basieren, verfügen über eine Standard-Custom-Panel, die Ihnen helfen, separate Strategien direkt aus dem Diagramm zu kontrollieren. CStrategyList Strategy Manager Der zweite Artikel der Universal Expert Advisor-Reihe beschreibt die CStrategy-Klasse und ihre Hauptmodule. Durch die Verwendung dieser Klasse und ihrer Funktionalität, die in den Modulen implementiert wird, unterhält jede ererbte Strategie eine einheitliche Handelslogik. Allerdings ist die Organisation eines Handelsprozesses mit Robotern mehr als eine bloße Ausführung von Handelsanforderungen. Es ist wichtig, ihre Zusammenarbeit, einschließlich Betrieb von mehreren Algorithmen in einem ausführbaren Ex5-Modul zu gewährleisten. Die spezielle CStrategyList-Klasse wird für diesen speziellen Zweck verwendet. Wie Sie vielleicht von seinem Namen zu erraten, bietet diese Klasse eine Liste der CStrategy-Typen Strategien, aber seine Operation ist etwas komplizierter als der Betrieb eines üblichen Daten-Container. Das Modul löst die folgenden Aufgaben: Sicherstellung des gleichzeitigen Betriebs mehrerer Handelsstrategien, die für jede Strategie-Instanz Handelsereignisse bereitstellen, indem Strategienobjekte aus der einheitlichen XML-Liste der Strategien (Daten deserialisieren) mit dem benutzerdefinierten Panel für die EA-Konfiguration erstellt werden. Hier ist die Kopfzeile der CStrategyList-Klasse: Wie Sie sehen können, sind die meisten Methoden dargestellt Handler von Handelsveranstaltungen. Sie haben Inhalte des gleichen Typs. Wir können eine von ihnen analysieren, OnBookEvent: Wie aus dem Klasseninhalt betrachtet, sucht es nach CStrategy-Strategien in der Liste und ruft ein entsprechendes Ereignis in jeder der Strategien auf. Der Betrieb von anderen Ereignismethoden ist ähnlich. Zusätzlich zum Übergeben von Ereignissen führt CStrategyList spezielle Prozeduren aus, die Strategien aus der XML-Datei laden. Weitere Informationen zur Funktionsweise finden Sie im nächsten Abschnitt. Laden von Strategien aus einer XML-Liste. Ein Portfolio von Strategien Wenn ein ausführbares ex5-Modul mehrere Handelsalgorithmen enthält, benötigen wir Werkzeuge, um ein Portfolio von Strategien zu generieren. Angenommen, zwei Algorithmen mit unterschiedlichen Parametern handeln in einem ausführbaren Modul. So konfigurieren Sie diese Parameter Das einfachste ist die Ausgabe der Parameter jeder Strategie im EA-Eigenschaftenfenster. Aber was tun, wenn viele Strategien verwendet werden, die jeweils viele Parameter haben In diesem Fall wäre die Liste der Parameter mit verschiedenen Modifikatoren, Flags, Strings und Kommentare riesig. Das ist, was das Parameterfenster eines Experten-Beraters handelte, der drei Strategien aussehen würde: 1. Die Liste der Parameter der EA Trading drei Strategien Ein Experte 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 den Fluss. Angenommen, wir wollen dieselbe Strategie mit zwei verschiedenen Parametersätzen ausführen. Was sollten wir tun Offensichtlich sind diese beiden Strategien trotz der verschiedenen Sätze von Parametern ein und dieselbe Strategie, allerdings mit unterschiedlichen Einstellungen. Anstatt jede Strategie manuell zu erstellen, können wir diese Aufgabe einer eigenen Klasse anvertrauen. Die Klasse kann automatisch ein Strategieobjekt erstellen und es ordnungsgemäß konfigurieren. Bevor eine Strategie für den Fluss erstellt wird, ist eine vollständige Beschreibung erforderlich. Die Beschreibung muss die folgenden Angaben enthalten: den Namen der Strategie eine eindeutige Strategie-ID oder ihre Magic-Nummer das Symbol die Strategie auf den Arbeitszeitrahmen der Strategie läuft eine Liste der einzigartigen Parameter der Strategien (eine individuelle Liste für jede Strategie). Die Strategiebeschreibung kann zusätzlich zu der obigen Liste weitere Eigenschaften enthalten. Der beste Weg, um eine solche Beschreibung zu geben, ist die Verwendung von XML. Die Sprache wurde als spezielles Beschreibungstool erstellt. Sie erlaubt es, komplexe Objekte bequem zu beschreiben, so dass ein Objekt wie eine Handelsstrategie in ein Text-XML-Dokument konvertiert werden kann und ein Textdokument in eine Strategie konvertiert werden kann. Zum Beispiel kann die Trading Engine auf Basis eines XML-Dokuments eine Strategie erstellen und ihre Parameter richtig konfigurieren. Um mit dieser Art von Dokumenten direkt aus MQL5 zu arbeiten, sollten wir eine spezielle XML-Parser-Bibliothek verwenden, die in der Code Base verfügbar ist. Hier ein Beispiel für die XML-Beschreibung eines Portfolios, das drei MovingAverage-Strategien mit unterschiedlichen Parametern lädt: Jede der Strategien bildet die ltStrategygt-Einheit. Dabei werden die folgenden Attribute angegeben: Symbol, Zeitrahmen, Magic und StrategyName. Aus dem obigen Beispiel sehen wir, dass jede der drei Strategien ein eigenes Symbol, eine magische Zahl und einen zeitlichen Rahmen hat. Zusätzlich zu diesen erforderlichen Parametern werden andere Strategieeigenschaften in der XML-Liste angegeben. Der Abschnitt ltTradeStateStartgt gibt den Handelsmodus zum Zeitpunkt des Starts der Strategie an. Abschnitt ltParamsgt enthält die Parameter der Strategie. Beim Start wird die Trading-Engine versuchen, die Handelsstrategien aus der obigen XML-Datei zu laden. Eine Strategie wird auf der Grundlage dieses Dokuments in der CStrategyList-Klasse in ihrer LoadStrategiesFromXML-Methode geladen und erstellt. Im Folgenden finden Sie den Inhalt dieser Methode sowie alle zugehörigen Methoden: Der interessanteste Teil der Methoden ist die Erstellung 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, die diesem Namen zugeordnet ist. Die Methode wurde statisch gemacht, um Zugriff darauf zu ermöglichen, bevor ein Strategieobjekt erstellt wird. GetStrategy wird in einer separaten Header-Datei geschrieben, denn im Gegensatz zu anderen Teilen des Trading-Engine müssen Sie es von Zeit zu Zeit, um neue Strategien, um es zu bearbeiten. Wenn Sie möchten, dass Ihre Strategie aus XML geladen wird, muss ihr Erstellungsverfahren direkt dieser Methode hinzugefügt werden. Der Quellcode dieser Header-Datei lautet wie folgt: Sobald die Strategie erstellt wurde, sollte sie mit den erforderlichen Parametern aus dem Abschnitt ltParamsgt initialisiert werden. Da die Parameter jeder Strategie eindeutig sind, ist es nicht möglich, diese Parameter auf der Ebene der Handelsmaschine zu initialisieren. Stattdessen kann die Basisklasse der Strategie die virtuelle Methode ParseXmlParams aufrufen. Wenn die Strategie diese Methode überschreibt und die Parameterliste als XML-Knoten ordnungsgemäß analysiert, kann sie die erforderlichen Werte ihrer eigenen Parameter angeben. Als Beispiel sehen Sie sich die ParseXmlParams-Methode der CMovingAverage-Strategie an, die auf zwei gleitenden Durchschnittswerten basiert (ihr Algorithmus wird im ersten Kapitel dieses Artikels beschrieben). Die Details dieser Strategie werden im dritten Artikel der Serie, die die Entwicklung von benutzerdefinierten Strategien umfasst beschrieben. Mit dem Mechanismus der Strategie-Erstellung aus einer Datei, ist es möglich, eine Reihe von Strategien einmal konfigurieren, und dann laden Sie es aus einer Datei jedes Mal. Sie können sogar noch weiter gehen und einen selbstoptimierenden Algorithmus schreiben, der die Sätze der Parameter seiner besten Läufe in einer XML-Datei speichert. Die Handelsmaschine liest diese Datei beim Start und bildet eine Reihe von Strategien auf ihrer Basis. Verwalten von Strategien mithilfe eines benutzerdefinierten Bedienfelds Aus der Sicht des Benutzers können Strategien bequem über ein spezielles benutzerdefiniertes Bedienfeld gesteuert werden. Dieses Panel würde auf einem Chart nach dem EA-Start angezeigt werden und erlaubt die Durchführung einfacher Operationen mit jedem der Handelsalgorithmen: Ändern des Strategie-Trading-Modus Kauf oder Verkauf des erforderlichen Volumens anstelle der Strategie. Die letztgenannte Option ist nützlich, wenn der EA aus irgendeinem Grund nicht die entsprechende Aktion ausgeführt hat, und Sie müssen seinen Zustand mit der aktuellen Marktsituation synchronisieren. Die Beschreibung der Klassen, die benutzerdefinierte Felder und Dialogfelder erstellen, liegt außerhalb des Umfangs des besprochenen Themas und erfordert einen separaten Artikel. Wir beschreiben nur die grundlegenden Aspekte im Zusammenhang mit dem Panel-Anschluss. Das Expert Advisor-Kontrollfeld wird in einer eigenen CPanel-Klasse implementiert, die verschiedene Steuerelemente wie Listen, Schaltflächen und Textbeschriftungen enthält. Alle Klassen für die GUI-Erstellung sind in ltdatafoldergtMQL5IncludePanel verfügbar. Um den Bedienfeldbetrieb zu gewährleisten, ist es notwendig, das Ereignis OnChartEvent direkt in der EAs-mq5-Datei zu verarbeiten. Der Handler der Diagrammereignisse befindet sich in der CStrategyList-Klasse, so dass es genügt, diesen Handler in OnChartEvent aufzurufen: Der Handler dieser Ereignisse in CStrategyList sendet sie direkt an das Panel. Nach einem Klick auf eine beliebige Schaltfläche auf dem Bedienfeld definiert sie die auszuführende Aktion und führt sie aus. Wenn wir beispielsweise eine Strategie aus der Liste der Strategien auswählen, ist der Index der aktuellen Strategie gleich dem ausgewählten, dann können Sie weitere Handelsaktionen durchführen. Zum Beispiel können Sie den Handelsmodus der gewählten Strategie ändern, indem Sie die entsprechende Option aus der Dropdown-Liste der Strategiemodi auswählen: Abb. 2. Die Liste der Modi einer ausgewählten Strategie Der Kauf und Verkauf im Auftrag der gewählten Strategie erfolgt auf die gleiche Weise. Ein Zeiger auf die Strategie ruft die Buy and Sell-Methoden der CStrategy-Basisklasse auf. Diese Methoden kaufen und verkaufen das Volumen in ihnen vergangen. In diesem Fall entspricht die magische Zahl in den durchgeführten Operationen der magischen Zahl der Strategie, so dass es unmöglich ist, den manuellen Handel von den EAs-Aktionen zu unterscheiden. Es ist anzumerken, dass die EAs-Handelslogik implementiert ist, so dass alle Positionen, die durch einen Benutzer geöffnet werden, dann von diesem Expertenratgeber im Normalmodus gehalten werden. Es verwaltet solche Positionen wie seine eigenen automatisch geöffneten Positionen. Expert Advisors Handel in einer Gruppe Wir können ein Portfolio von Handelsstrategien zusammenstellen. Die Strategien müssen Methoden enthalten, die für das Parsen von XML-Parametern verantwortlich sind, d. H. Wir müssen die ParseXmlParams-Methode überschreiben. Es ist auch notwendig, der CStrategy :: GetStrategy-Methode die entsprechende Strategie hinzuzufügen. 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 der Strategien hinzufügen. Das benutzerdefinierte Panel zeigt diese Strategien danach. Lassen Sie uns ein Portfolio von Strategien, bestehend aus der Experten-Berater, wie oben beschrieben. Beispiele für die Analyse der XML-Einstellungen für die CMovingAverage - und CChannel-Strategien sind in den Abschnitten 3.5 und 4.3 verfügbar. Der Inhalt von CStrategy :: GetStrategy für die Erstellung der beiden Strategien wird wie folgt sein: Der letzte Punkt ist, die Methode zu überschreiben, die für den vollständigen Namen der EA verantwortlich ist. Führen Sie das Overriding für die CMovingAverage-Strategie: Jetzt ist alles bereit für die Erstellung eines Portfolio von Strategien. Unser Portfolio umfasst vier Handelssysteme. Jeder von ihnen wird sein eigenes Symbol handeln. Zwei Strategien basieren auf MovingAverage, und zwei andere werden BollingerBands verwenden. Eine ausführlichere Beschreibung dieser Strategien ist im vorherigen Artikel: Universal Expert Advisor: Custom Strategies und Auxiliary Trade Classes (Teil 3). Unser XML-Portfolio wird wie folgt aussehen: Diese Datei sollte einen gemeinsamen Datenordner der MetaTrader-Plattform als Strategies. xml gespeichert werden. Hier ist der Quellcode des mq5-Moduls, das einen Expertenadvisor erstellt: Benutzerdefinierte Variablen StrategiesXMLFile und LoadOnlyCurrentSymbol werden in der CStrategyList-Klasse definiert. Sie werden in dieser Klasse verwendet, um die Liste der zu ladenden Strategien festzulegen und den Modus, der es erlaubt, die Strategien nur mit dem Symbol zu laden, das dem Namen des Instruments entspricht, auf dem der Expertenratgeber läuft. Beachten Sie außerdem, dass einige Ereignisse, wie OnBookEvent und OnTimer, nicht verwendet werden. Dies bedeutet, dass sie nicht in benutzerdefinierten Strategien verwendet werden. Die Zusammenstellung sollte erfolgreich sein. Danach ist der Expert Advisor (benannt Agent. ex5 im Projekt) betriebsbereit. Lets versuchen, es auf dem Diagramm auszuführen. Vorher müssen wir sicherstellen, dass alle verwendeten Symbole in der MetaTrader Market Watch verfügbar sind. Nach erfolgreichem Start erscheint das Expert Advisor Symbol in der oberen rechten Ecke des Diagramms. Eine weitere Schaltfläche wird der oberen linken Ecke des Diagramms hinzugefügt, um das benutzerdefinierte Bedienfeld zu maximieren. Wenn wir die Liste der EAs (benannter Agent) auf dem Panel auswählen, öffnet sich eine Liste von vier Expertenberatern: Abb. 3. Liste der geladenen Experten-Advisoren Der Screenshot enthält die Liste der Experten-Berater, die von unserer XML-Datei Strategies. xml gebildet werden. Nach einer Weile fangen die Strategien an, jede Strategie auf seinem einzelnen Symbol zu handeln. Analyse der Expert Advisor-Operation im Strategie-Tester Nachdem wir ein Portfolio von Strategien erstellt haben, können wir es im Strategie-Tester testen, um sicherzustellen, dass es ordnungsgemäß funktioniert. Es ist keine zusätzliche spezifische Aktion erforderlich, da sich die XML-Liste der Strategien im globalen Datenordner befindet, der über den Strategie-Tester zugänglich ist. Nach dem Start des Agent. ex5-EA-Moduls werden alle erforderlichen Symbole automatisch geladen. Jeder Expert Advisor führt Handelsabläufe nach seinen individuellen Handelsregeln durch und zeichnet zusätzlich seine eigenen Indikatoren. Das folgende Video zeigt das Testen eines Portfolio von Strategien auf vier verschiedenen Instrumenten: Die Simulation von CStrategy-basierten Strategien im Strategy Tester ähnelt dem Echtzeit-Trading mit diesen Strategien. Die visuelle Prüfung Option ermöglicht es Ihnen, einfach zu überprüfen, die Genauigkeit der Ein-und Ausgänge der Strategien. Fazit Wir haben Algorithmen berücksichtigt, die es erlauben, zufällige Sätze von Handelsstrategien zu schaffen. Mit diesen Sets oder Portfolios von Strategien, können Sie flexibel und effizient skalieren den Handelsprozess, während die Verwaltung mehrerer Handel Algorithmen in der gleichen ausführbaren Datei befindet. Die Algorithmen sind besonders nützlich für die Strategien, die mehrere Handelsinstrumente gleichzeitig nutzen. Mit dem vorgeschlagenen Ansatz, die Schaffung von ähnlichen Handel Algorithmen ist so einfach wie die Entwicklung herkömmlicher Handelsstrategien.
No comments:
Post a Comment