Friday 13 January 2017

Adaptive Trading Strategien

Trading Signals Trading Signale für SP Futures Die ATS Trading Signals sind so konzipiert, dass die kurzfristigen Trends der SPES Futures 1 Handelstag im Voraus vorherzusagen. Die am Abend heruntergeladenen Trading-Signale gelten am Tagessitz am folgenden Börsentag. Trading-Signale von einzelnen Modellen sowie Ensembles von Modellen sind enthalten. Die durchschnittliche Handelszeit für einzelne Modelle reicht von 3 bis 350 Handelstagen. Trading-Systeme, die mit Ensembles von einzelnen Modellen gebaut werden, bieten Vorhersagen der kurzfristigen, mittelfristigen und langfristigen Trends. Technische Indikatoren Die technischen Indikatoren von ATS sind so konzipiert, dass sie führende Indikatoren für die Entwicklung der täglichen Sicherheitspreise sind. Die SIP-Indikatoren (Stock Index Predictors) wurden als Voraussage für die SPES-Futures-Kontrakte entworfen. Das SIP-Indikatorset umfasst die folgenden sieben Indikatoren: Kauf Pressure Sell Pressure Net Pressure Hoher Kauf Pressure Hoher Verkauf Pressure Advancing Druck sinkende Druck Die ATS-Indikatoren können zusammen mit der entsprechenden Sicherheit mit einer Anwendung wie AmiBroker Charted werden. Die Vorhersagekraft der Indikatoren kann leicht ausgewertet werden. Ein weiterer Ansatz ist die Verwendung der Indikatoren als Eingaben beim Bau neuronaler Netzwerkmodelle. Es gibt viele Möglichkeiten. So laden Sie die Trading-Signale ATS Mercury ist die Anwendung, die zum Herunterladen der ATS Trading Signale und Indikatoren verwendet wird. Diese Anwendung wird kostenlos zur Verfügung gestellt. ATS Mercury wird mit der Standardbenutzer-ID des Gastes installiert. Das Gastkonto kann eine Historie der ATS-Indikatoren herunterladen, wird aber um einen Handelstag verzögert. Zum Beispiel, wenn Sie das Gastkonto verwenden, um die Signalwerte an einem Mittwochabend herunterzuladen, werden nur Signale bis Dienstag (der vorherige Handelstag) verfügbar sein. Hinweis: Die Signaldateien werden standardmäßig im Ordner C: DataATS Indicators gespeichert. Trading-Strategie Beispiel Der SIP2-Nettodruck (SIP2NP) wurde erstmals am 30. Mai 2012 zusammen mit den anderen SIP2-Indikatoren veröffentlicht. Die Handelsstrategie soll die SP-Futures lang sein, wenn der SIP2NP-Indikator größer oder gleich 0,6 ist, und den Markt kurz, wenn er kleiner oder gleich -0,6 ist. Alle Geschäfte sind hypothetisch gefüllt MOC am Handelstag nach dem Tag der Aktualisierung der Systeme. Die durch diese einfache Regel generierte Eigenkapitalkurve folgt. Die kumulierten Gewinne sind in Punkten und enthalten keine Provisionen oder Schlupf. SIP2NP angewendet auf die SP-Futures Das obige Diagramm ist auf 652015 aktualisiert. Der Prozentsatz des perfekten Handels ist 18,65 und das Handelssystem ist auf dem Markt etwa 28 der Zeit. Sie können die Indikatoren herunterladen und diese Handelsstrategie weiter mit ATS Mercury erkunden. Abonnenten des SP Trading Signals und des SIP Indicator Service können aktuelle Signalwerte herunterladen. Wenn Sie sich anmelden möchten, können Sie dies auf der Seite Produktkäufe tun. HINWEIS. Hypothetische oder simulierte Leistungsergebnisse haben inhärente Einschränkungen. Im Gegensatz zu einem tatsächlichen Performance-Datensatz, simulierte Ergebnisse nicht repräsentieren tatsächlichen Handel. Da die Geschäfte nicht tatsächlich durchgeführt worden sind, können die Ergebnisse unter - oder überkompensiert werden für die Auswirkungen, wenn überhaupt, auf bestimmte Marktfaktoren, wie etwa einen Mangel an Liquidität. Simulierte Handelsprogramme im Allgemeinen unterliegen auch der Tatsache, dass sie mit dem Nutzen der Nachsicht konzipiert sind. Es wird nicht vertreten, dass ein Konto ähnliche Gewinne oder Verluste wie die dargestellten erzielt. Die bisherige Performance unserer Handelssysteme, Handelssignale und Modellierungssoftware, ob tatsächlich oder durch simulierte historische Tests von Handelsstrategien angegeben, ist kein Hinweis auf zukünftige Ergebnisse. 0169 Copyright 2008-2016 AdaptiveTradingSystemsMetaTrader 5 - Trading Systems Adaptive Trading Systeme und deren Verwendung im MetaTrader 5 Client Terminal Einführung Hunderttausende Trader weltweit nutzen die von MetaQuotes Software Corp. entwickelten Handelsplattformen Technologische Überlegenheit auf der Grundlage der Erfahrungen von vielen Jahren und die besten Software-Lösungen. Viele Menschen haben bereits neue Chancen geschätzt, die mit der neuen MQL5-Sprache verfügbar geworden sind. Wesentliche Merkmale sind die hohe Leistungsfähigkeit und die Möglichkeit der objektorientierten Programmierung. Darüber hinaus haben viele Händler mit dem Erscheinen des Multi-Currency-Strategie-Testers im MetaTrader 5-Client-Terminal einzigartige Tools für die Entwicklung, das Lernen und die Nutzung komplexer Handelssysteme erworben. Automated Trading Championship 2010 startet im Herbst Tausende von Trading-Roboter in MQL5 geschrieben werden, um daran teilzunehmen. Ein Expert Advisor, der den maximalen Gewinn während des Wettbewerbs gewinnt, wird gewinnen. Aber welche Strategie wird am effektivsten erscheinen Der Strategietester des MetaTrader 5-Endgeräts ermöglicht es, die besten Parameter zu finden, mit denen das System während eines bestimmten Zeitraums den maximalen Gewinn erzielt. Aber es kann in der Realität getan werden Die Idee des virtuellen Tradings, der mehrere Strategien in einem Expert Advisor verwendet, wurde im Wettbewerb der Expertenberater in einem Expert Advisor Artikel betrachtet, der seine Implementierung in MQL4 enthält. In diesem Artikel werden wir zeigen, dass die Schaffung und Analyse von adaptiven Strategien hat sich deutlich vereinfacht in MQL5 aufgrund der Nutzung der objektorientierten Programmierung. Klassen für die Arbeit mit Daten - und Handelsklassen der Standardbibliothek. 1. Adaptive Trading-Strategien Die Märkte ändern sich ständig. Handelsstrategien brauchen ihre Anpassung an die aktuellen Marktbedingungen. Die Werte der Parameter, die die maximale Rentabilität der Strategie ergeben, können ohne Verwendung der Optimierung durch sequentielle Änderung von Parametern und Analyse der Testergebnisse gefunden werden. Abbildung 1 zeigt die Eigenkapitalkurven für zehn Expert Advisors (MA3 MA93), die jeweils von der Strategie der gleitenden Durchschnittswerte gehandelt werden, jedoch mit unterschiedlichen Perioden (3, 13, 93). Die Prüfung wurde bei EURUSD H1 durchgeführt, der Testzeitraum ist 4.01.2010-20.08.2010. Abbildung 1. Diagramme der Eigenkapitalkurven von zehn Expertenberatern auf dem Konto Wie Sie an der Abbildung 1 sehen können, hatten die Expertenberater in den ersten zwei Wochen der Arbeit nahezu die gleichen Ergebnisse, aber ihre Gewinne stiegen deutlich an. Am Ende der Testperiode zeigten die Expertenberater mit den Perioden 63, 53 und 43 die besten Handelsergebnisse. Der Markt hat die besten gewählt. Warum sollten wir seiner Wahl nicht folgen Was passiert, wenn wir alle zehn Strategien in einem einzigen Experten-Advisor kombinieren, die Möglichkeit eines virtuellen Tradings für jede Strategie bieten und regelmäßig (zB am Anfang jeder neuen Leiste) die beste Strategie für das Reale bestimmen Handel und Handel in Übereinstimmung mit seinen Signalen Die Ergebnisse der erhaltenen adaptiven Strategie sind in Abbildung 2 dargestellt. Die Eigenkapitalkurve des Kontos mit adaptivem Handel wird mit der roten Farbe dargestellt. Beachten Sie, dass während mehr als der Hälfte der Periode die Form der Eigenkapitalkurve für die adaptive Strategie die gleiche ist wie die der MA63-Strategie, die scheinbar der Gewinner ist. Abbildung 2. Eigenkapitalkurven auf dem Konto mit der adaptiven Strategie, die Signale von 10 Handelssystemen verwendet Die Bilanzkurven haben die gleiche Dynamik (Abbildung 3): Abbildung 3. Bilanzkurven der adaptiven Strategie, die Signale von 10 Handelssystemen verwendet Der Strategien ist im Moment rentabel, sollten die adaptiven Systeme nicht handeln. Das Beispiel eines solchen Falles ist in der Figur gezeigt. 4 (Zeitraum vom 4. bis 22. Januar 2010). Abbildung 4. Die Zeitspanne, in der die adaptive Strategie aufgrund des Fehlens von profitablen Strategien die Eröffnung neuer Positionen eingestellt hat Ab dem Januar 2010 zeigt die MA3-Strategie die beste Wirksamkeit. Da der MA3 (blau) den maximalen Geldbetrag in diesem Moment verdiente, folgte die adaptive Strategie (rot) seinen Signalen. In der Zeit vom 8.-20. Januar hatten alle betrachteten Strategien ein negatives Ergebnis, weshalb die adaptive Strategie keine neuen Handelspositionen eröffnete. Wenn alle Strategien ein negatives Ergebnis haben, ist es besser, weg vom Handel zu bleiben. Dies ist die wichtige Sache, die stoppen unrentablen Handel und halten Sie Ihr Geld sparen können. 2. Implementierung der Adaptive Trading-Strategie In diesem Abschnitt werden wir die Struktur der adaptiven Strategie betrachten, die den virtuellen Handel unter Verwendung mehrerer Handelsstrategien gleichzeitig durchführt und nach den Signalen die rentabelste für den realen Handel wählt. Beachten Sie, dass die Verwendung des objektorientierten Ansatzes die Lösung dieses Problems wesentlich erleichtert. Zuerst werden wir den Code des adaptiven Expert Advisors untersuchen, dann einen detaillierten Einblick in die CAdaptiveStrategy nehmen, in der die Funktionalität des adaptiven Systems implementiert wird, und dann werden wir die Struktur der CSampleStrategy - Klasse zeigen Basisklasse der Handelsstrategien, in denen die Funktionalität des virtuellen Handels implementiert wird. Weiters sollten wir den Code von zwei seiner Kinder betrachten - den CStrategyMA - und CStrategyStoch-Klassen, die die Strategien des Handels durch gleitende Mittelwerte und den stochastischen Oszillator repräsentieren. Nach der Analyse ihrer Struktur youll in der Lage, leicht zu schreiben und fügen Sie eigene Klassen, die Ihre Strategien zu verwirklichen. 2.1. Code des Expertenberaters Der Code des Expertenberaters sieht sehr einfach aus: Die ersten drei Zeilen definieren die Eigenschaften des Programms. Dann kommt die Include-Direktive, die dem Preprocessor mitteilt, die CAdaptiveStrategy. mqh-Datei aufzunehmen. Angle Klammern spezifizieren, dass die Datei aus dem Standardverzeichnis genommen werden sollte (normalerweise ist es terminalfolderMQL5Include). Die nächste Zeile enthält die Deklaration des AdaptiveExpert-Objekts (Instanz der Klasse CAdaptiveStrategy) und den Code des OnInit. Die OnDeinit - und OnTick-Funktionen des Expert Advisor bestehen aus den Aufrufe der entsprechenden Funktionen ExpertOnInit, ExpertOnDeInit und ExpertOnTick sowie dem AdaptiveExpert-Objekt. 2.2. Die Klasse CAdaptiveStrategy Die Klasse des adaptiven Expert Advisor (Klasse CAdaptiveStrategy) befindet sich in der Datei CAdaptiveStrategy. mqh. Beginnen wir mit den Include-Dateien: Der Grund, warum wir die ArrayObj. mqh-Datei enthalten, ist die Bequemlichkeit der Arbeit mit Klassen verschiedener Strategien mit dem Objekt der CArrayObj-Klasse, die ein dynamisches Array von Zeigern für die Klasseninstanzen darstellt, die von der Basis erzeugt werden Klasse CObject und seine Kinder. Dieses Objekt wird die mallstrategies Array, wird es ein Container von Handelsstrategien verwendet werden. Jede Strategie wird als Klasse dargestellt. In diesem Fall haben wir die Dateien enthalten, die die CStrategyMA - und CStrategyStoch-Klassen enthalten, die die Strategien des Handels darstellen, indem sie Durchschnitte verschieben und durch den stochastischen Oszillator handeln. Für die Anforderung von Eigenschaften aktueller Positionen und für die Durchführung von Handelsoperationen verwenden wir die Klassen CPositionInfo und CTrade der Standardbibliothek, deshalb werden die Dateien "PositionInfo. mqh" und "Trade. mqh" hinzugefügt. Werfen wir einen Blick in die Struktur der CAdaptiveStrategy-Klasse. Um einen einheitlichen Ansatz für die Objekte verschiedener Klassen zu implementieren, werden die Handelsstrategien (bzw. die Instanzen ihrer Klassen) im dynamischen Array mallstrategies (des CArrayObj-Typs) gespeichert, der als Container der Klassen der Strategien verwendet wird. Dies ist der Grund, warum die Klasse der Handelsstrategien SampleStrategy aus der CObject-Klasse hervorgebracht wird. Die ProceedSignalReal-Funktion implementiert die Synchronisation von Richtung und Volumen einer realen Position mit der gegebenen Richtung und dem Volumen: Beachten Sie, dass es einfacher ist, mit der Handelsposition unter Verwendung der Handelsklassen zu arbeiten. Wir haben die Objekte der CPositionInfo - und CTrade-Klassen für die Anforderung der Eigenschaften der Marktposition bzw. für die Durchführung von Handelsoperationen verwendet. Die Funktion RealPositionDirection fordert die Parameter der reellen offenen Position an und gibt ihre Richtung zurück: Nun sollten die Hauptfunktionen der AdaptiveStrategy-Klasse untersucht werden. Beginnen wir mit der ExpertOnInit: - Funktion Die Menge der Handelsstrategien wird in der ExpertOnInit-Funktion vorbereitet. Zunächst wird das Objekt des dynamischen Arrays mallstrategies erstellt. In diesem Fall haben wir zehn Instanzen der CStrategyMA-Klasse erstellt. Jeder von ihnen wurde initialisiert (in diesem Fall setzen wir verschiedene Perioden und erlaubten den virtuellen Handel) mit der Initialisierungsfunktion. Anschließend setzen wir mit der SetStrategyInfo-Funktion das Finanzinstrument, den Strategienamen und den Kommentar. Falls erforderlich, können wir mit der Funktion SetStops (TP, SL) einen Wert (in Punkten) von Take Profit und Stop Loss festlegen, der während des virtuellen Tradings ausgeführt wird. Wir haben diese Zeile kommentiert. Sobald die Strategieklasse erstellt und angepasst wird, fügen wir sie dem Container mallstrategies hinzu. Alle Klassen von Handelsstrategien sollten die CheckTradeConditions () - Funktion haben, die die Prüfungen der Handelsbedingungen durchführt. In der Klasse der adaptiven Strategie wird diese Funktion am Anfang jeder neuen Leiste aufgerufen, so dass wir den Strategien die Möglichkeit geben, die Werte der Indikatoren zu überprüfen und die virtuellen Handelsoperationen durchzuführen. Anstelle von zehn angegebenen Bewegungsdurchschnitten (3, 13, 23, 93) können wir Hunderte von Bewegungsdurchschnitten addieren (Instanzen, wenn die CStrategyMA-Klasse): Oder wir können die Klassen der Strategie hinzufügen, die nach den Signalen des stochastischen Oszillators arbeitet Die CStrategyStoch-Klasse): In diesem Fall enthält der Container 10 Strategien von gleitenden Mittelwerten und 5 Strategien des stochastischen Oszillators. Die Instanzen von Klassen von Handelsstrategien sollten die Kinder der CObject-Klasse sein und die CheckTradeConditions () - Funktion enthalten. Es ist besser, sie von der CSampleStrategy-Klasse zu erben. Klassen, die Handelsstrategien implementieren, können unterschiedlich sein und ihre Zahl ist nicht begrenzt. Die ExpertOnInit-Funktion endet mit der Liste der Strategien, die in dem mallstrategies-Container vorhanden sind. Beachten Sie, dass alle Strategien im Container als die Kinder der CSampleStrategy-Klasse betrachtet werden. Die Klassen der Handelsstrategien CStrategyMA und CStrategyStoch sind ebenfalls ihre Kinder. Der gleiche Trick wird in der ExpertOnDeInit-Funktion verwendet. Im Container rufen wir die SaveVirtualDeals-Funktion für jede Strategie auf, in der sie die Historie der ausgeführten virtuellen Deals speichert. Wir verwenden den Namen der Strategie für den Dateinamen, der als Parameter übergeben wird. Dann deaktisieren wir die Strategien, indem wir die Funktion Deinitialization () aufrufen und den mallstrategies-Container löschen: Wenn Sie die virtuellen Deals der Strategien nicht kennen müssen, entfernen Sie die Zeile, in der tStrategy. SaveVirtualDeals aufgerufen wird. Beachten Sie, dass bei der Verwendung des Strategie-Testers die Dateien im Verzeichnis testerdirectoryFiles gespeichert werden. Betrachten wir die ExpertOnTick-Funktion der Klasse CAdaptiveStrategy, die jedes Mal aufgerufen wird, wenn ein neues Tick kommt: Der Code ist sehr einfach. Jede Strategie, die sich im Container befindet, muss in der Lage sein, das aktuelle Finanzergebnis seiner virtuellen Positionen unter Verwendung der aktuellen Preise neu zu berechnen. Dies geschieht durch Aufruf der Funktion UpdatePositionData (). Hier nennen wir wiederum die Strategien als Erben der CSampleStrategy-Klasse. Alle Handelsoperationen werden am Anfang einer neuen Leiste ausgeführt (die IsNewBar () - Funktion ermöglicht die Bestimmung dieses Momentes sowie die anderen Methoden zum Überprüfen neuer Leiste). In diesem Fall bedeutet das Ende des Bildens eines Balkens, dass sich alle Daten des vorherigen Balkens (Preise und Indikatorwerte) nicht mehr ändern, sodass er in Übereinstimmung mit den Handelsbedingungen analysiert werden kann. Zu allen Strategien geben wir die Möglichkeit, diese Überprüfung durchzuführen und ihre virtuellen Handelsoperationen durch Aufruf ihrer CheckTradeConditions Funktion durchzuführen. Nun sollten wir die erfolgreichste Strategie unter allen Strategien im mallstrategies-Array finden. Um es zu erledigen, verwendeten wir das Performance-Array, Werte, die von der StrategyPerformance () - Funktion jeder Strategie zurückgegeben werden, werden hineingelegt. Die Basisklasse CSampleStrategy enthält diese Funktion als Differenz zwischen den aktuellen Werten von Virtual Equity und Balance. Die Suche nach dem Index der erfolgreichsten Strategie wird mit der ArrayMaximum-Funktion durchgeführt. Wenn die beste Strategie hat einen negativen Gewinn im Moment und es hat keine offenen Positionen, dann ist es besser, nicht zu handeln, das ist der Grund, warum wir die Funktion verlassen (siehe Abschnitt 1). Weiterhin fordern wir die Richtung der virtuellen Position dieser Strategie (bestdirection) an. Weicht sie von der aktuellen Richtung der realen Position ab, so wird die aktuelle Richtung der realen Position (mit der ProceedSignalReal-Funktion) entsprechend der besten Richtungsrichtung korrigiert. 2.3. Klasse CSampleStrategy Strategien, die in dem mallstrategies-Container platziert wurden, wurden als Erben der CSampleStrategy-Klasse betrachtet. Diese Klasse ist die Basis für die Handelsstrategien, die die Umsetzung des virtuellen Handels beinhaltet. In diesem Artikel werden wir einen vereinfachten Fall der virtuellen Handel Umsetzung, die Swaps arent aken zu berücksichtigen. Die Klassen von Handelsstrategien sollten von der CSampleStrategy-Klasse übernommen werden. Lets zeigen die Struktur dieser Klasse. Wir werden nicht analysieren, seine detaillierte Beschreibung, weitere Informationen finden Sie in der CSampleStrategy. mqh Datei. Dort finden Sie auch die Funktion zum Überprüfen neuer Balken - IsNewBar. 3. Klassen von Handelsstrategien Dieser Abschnitt widmet sich der Struktur von Klassen von Handelsstrategien, die im adaptiven Expertenrat eingesetzt werden. 3.1. Klasse CStrategyMA - Strategie des Handels durch verschiebende Durchschnitte Die CStrategyMA-Klasse ist ein Kind der CSampleStrategy-Klasse, in dem die gesamte Funktionalität des virtuellen Handels implementiert wird. Der geschützte Abschnitt enthält interne Variablen, die in der Klasse der Strategie verwendet werden. Diese sind: mhandle - Handle des iMA - Indikators, mperiod - Periode des gleitenden Durchschnitts, mvalues ​​- Array, das in der Funktion CheckTradeConditions verwendet wird, um aktuelle Werte des Indikators zu erhalten. Der öffentliche Teil enthält drei Funktionen, die die Umsetzung der Handelsstrategie ermöglichen. Funktionsinitialisierung. Die Strategie wird hier initialisiert. Wenn Sie Indikatoren erstellen müssen, erstellen Sie diese hier. Funktion Deinitialisierung. Die Strategie wird hier deinitialisiert. Die Griffe der Blinker werden hier freigegeben. Funktion heckTradeConditions. Dabei überprüft die Strategie die Handelsbedingungen und erzeugt Handelssignale, die für den virtuellen Handel verwendet werden. Zur Durchführung von virtuellen Handelsoperationen wird die SetSignalState-Funktion der CStrategy-Elternklasse als eines von vier der folgenden Handelssignale bezeichnet: Das Signal zum Öffnen einer Langposition (SIGNALOPENLONG) Das Signal zum Öffnen einer Short-Position (SIGNALOPENSHORT) Das Signal zum Schließen einer Long-Position (SIGNALCLOSELONG) Das Signal zum Schließen einer Short-Position (SIGNALCLOSESHORT) Das Konzept ist einfach - anhand von Indikatorzuständen und Preisen wird der Signaltyp (newstate) bestimmt, danach der aktuelle Zustand der virtuellen Handel wird angefordert (mit der Funktion GetSignalState) und wenn sie nicht gleich sind, wird die Funktion SetSignalState zur Korrektur der virtuellen Position aufgerufen. 3.2. Klasse CStrategyStoch - die Strategie des Handels durch Stochastik Der Code der Klasse, die den Handel auf der Basis des Schnittpunkts der Haupt - und Signalleitungen des iStochastic-Oszillators durchführt, ist unten angegeben: Die einzigen Unterschiede zwischen der Struktur der CStrategyStoch-Klasse Und die von CStrategyMA sind die Initialisierungsfunktion (verschiedene Parameter), die Art des verwendeten Indikators und die Handelssignale. Damit Sie Ihre Strategien im Adaptive Expert Advisor einsetzen, sollten Sie sie in Form von Klassen dieses Typs umschreiben und in den mallstrategies-Container laden. 4. Ergebnisse der Analyse der adaptiven Handelsstrategien In diesem Abschnitt wurden einige Aspekte der praktischen Anwendung der adaptiven Strategien und Methoden zur Verbesserung dieser Aspekte diskutiert. 4.1. Verbesserung des Systems mit Strategien, die inverse Signale nutzen Verschieben von Durchschnitten sind nicht gut, wenn es keine Trends gibt. Weve traf bereits diese Situation - in Abbildung 3 sehen Sie, dass es innerhalb des Zeitraums vom 8.-20. Januar keinen Trend gab, so dass alle 10 Strategien, die gleitende Durchschnitte im Handel verwenden, einen virtuellen Verlust hatten. Das adaptive System stoppte den Handel als Folge der Abwesenheit einer Strategie mit positivem Geld verdient. Gibt es eine Möglichkeit, diesen negativen Effekt zu vermeiden, können wir unseren 10 Strategien (MA3, MA13, MA93) weitere 10 Klassen CStrategyMAinv hinzufügen. Deren Handelszeichen umgekehrt sind (die Bedingungen sind die gleichen, aber SIGNALOPENLONGSIGNALOPENSHORT und SIGNALCLOSELONGSIGNALCLOSESHORT tauschten ihre Plätze aus). So haben wir neben zehn Trendstrategien (Instanzen der CStrategyMA-Klasse) weitere zehn Counter-Trend-Strategien (Instanzen der CStrategyMAinv-Klasse). Das Ergebnis der Verwendung des adaptiven Systems, das aus zwanzig Strategien besteht, ist in der Abbildung 5 dargestellt. Abbildung 5. Diagramme des Eigenkapitals auf Rechnung der adaptiven Strategie, die 20 Handelssignale verwendet: 10 gleitende Durchschnitte CAdaptiveMA und 10 gespiegelte CAdaptiveMAinv Wie Sie können Siehe die Abbildung 5, während der Periode, in der alle CAdaptiveMA-Strategien ein negatives Ergebnis hatten, nach den CAdaptiveMAinv-Strategien dem Expert Advisor erlaubt, unerwünschte Drawdowns zu Beginn des Handels zu vermeiden. Abbildung 6. Zeitspanne, in der die adaptive Strategie die Signale von Counter-Trend-CAdaptiveMAinv-Strategien verwendet Diese Art von Ansatz mag inakzeptabel erscheinen, da ein Verlust der Einzahlung nur eine Frage der Zeit ist, wenn eine Gegen-Trendstrategie verwendet wird. Doch in unserem Fall waren nicht mit einer einzigen Strategie beschränkt. Der Markt weiß, welche Strategien im Augenblick wirksam sind. Die starke Seite der adaptiven Systeme ist der Markt deutet auf sich selbst, welche Strategie verwendet werden sollte und wann es verwendet werden sollte. Es gibt eine Möglichkeit, von der Logik der Strategien zu abstrahieren - wenn eine Strategie wirksam ist, dann ist die Art, wie sie funktioniert, von keiner Bedeutung. Der adaptive Ansatz nutzt das einzige Kriterium für den Erfolg einer Strategie - ihre Wirksamkeit. 4.2. Ist es wert, die Signale der schlechtesten Strategie umzukehren Der Trick mit der oben gezeigten Inversion führt zu einem Gedanken über die mögliche Möglichkeit, die Signale der schlechtesten Strategie zu nutzen. Wenn eine Strategie unrentabel ist (und das schlimmste an dem), dann können wir einen Gewinn erhalten, indem wir in umgekehrter Richtung handeln können wir eine Verliererstrategie in ein profitables durch eine einfache Änderung ihrer Signale umwandeln Um diese Frage zu beantworten, müssen wir ändern ArrayMaximum mit ArrayMinimum in der ExpertOnTick () - Funktion der CAdaptiveStrategy-Klasse sowie die Umsetzung der Richtungsänderung durch Multiplikation des Werts der BestDirection-Variablen mit -1. Darüber hinaus müssen wir die Einschränkung des virtuellen Handels im Falle negativer Effektivität kommentieren (da wir das Ergebnis der schlechtesten Strategie analysieren werden): Diagramm des Eigenkapitals des adaptiven Expertenberaters, der die umgekehrten Signale der schlechtesten Strategie verwendet Die in der Abbildung 7 dargestellt sind: Abbildung 7. Diagramme des Eigenkapitals auf den Konten von zehn Strategien und dem adaptiven System, das die umgekehrten Signale des schlechtesten Systems verwendet In diesem Fall war die am wenigsten erfolgreiche Strategie die meiste Zeit diejenige, die auf der Kreuzung beruhte Der gleitenden Mittelwerte mit der Periode 3 (MA3). Wie Sie an der 7 sehen können, existiert die umgekehrte Korrelation zwischen MA3 (blau) und der adaptiven Strategie (rot gefärbt). Aber das finanzielle Ergebnis des adaptiven Systems nicht beeindrucken. Das Kopieren (und das Umkehren) der Signale der schlechtesten Strategie führt nicht zur Verbesserung der Effektivität des Handels. 4.2. Warum die Bunch of Moving Averages ist nicht so effektiv wie es Scheint Anstelle von 10 gleitende Durchschnitte können Sie viele von ihnen, indem Sie weitere hundert CStrategyMA Strategien mit unterschiedlichen Zeiträumen, um die mallstrategies Container verwenden. Um es zu tun, ändern Sie leicht den Code in der Klasse CAdaptiveStrategy: Allerdings sollten Sie verstehen, dass eng bewegte Durchschnitte wird unweigerlich schneiden der Führer wird sich ständig ändern und das adaptive System schaltet seine Zustände und openclose Positionen häufiger als es notwendig ist. Als Ergebnis werden die Eigenschaften des adaptiven Systems schlechter werden. Sie können es auf eigene Faust sicherstellen, indem Sie die statistischen Merkmale des Systems (Registerkarte Ergebnisse des Strategie-Testers) vergleichen. Es ist besser, adaptive Systeme nicht auf der Grundlage vieler Strategien mit engen Parametern zu machen. 5. Was sollte berücksichtigt werden Die mallstrategies Container können Tausende von vorgeschlagenen Strategien enthalten, können Sie sogar alle Strategien mit verschiedenen Parametern jedoch hinzufügen, um die Automated Trading Championship 2010 gewinnen. Sie müssen die erweiterte Geld-Management-System zu entwickeln. Beachten Sie, dass wir das Handelsvolumen gleich 0,1 Lose für das Testen auf Historiendaten (und im Kode der Klassen) verwendet haben. 5.1 So erhöhen Sie die Profitabilität des Adaptive Expert Advisor Die CSampleStrategy-Klasse hat die virtuelle Funktion MoneyManagementCalculateLots: Um das Volume für den Handel zu verwalten, können Sie die statistischen Informationen über die Ergebnisse und Merkmale von virtuellen Deals, die im mdealshistory-Array aufgezeichnet werden, verwenden. Wenn Sie die Lautstärke erhöhen (z. B. um sie zu verdoppeln, wenn die letzten virtuellen Deals in mdealshistory profitabel sind oder verringern), sollten Sie den zurückgegebenen Wert auf die entsprechende Weise ändern. 5.2 Die Statistik für die Berechnung der Strategieleistung verwenden Die Funktion StrategyPerformance (), die in der CSampleStrategy-Klasse implementiert ist, dient zur Berechnung der Strategieleistung. Die Formel für die Effektivität einer Strategie kann komplexer sein und beispielsweise die Effektivität einschließen Die Effektivität von Deals, Gewinnen, Drawdowns usw. Die Berechnung der Effektivität des Eintritts, des Austritts und der Effektivität von Deals (die entryeff, exiteff und tradeeff Felder der Strukturen des mdealshistory Arrays) erfolgt automatisch während der Virtuellen Handel (siehe die CSampeStrategy-Klasse). Diese statistischen Informationen können verwendet werden, um Ihre eigenen, komplexeren Raten der Wirksamkeit der Strategie. Als Effektivitätsmerkmale können Sie beispielsweise den Gewinn der letzten drei Transaktionen nutzen (verwenden Sie das posProfit-Feld aus dem Archiv der Deals mdealshistory): Wenn Sie diese Funktion ändern möchten, ändern Sie sie nur in der CSampleStrategy-Klasse Gleiches gilt für alle Handelsstrategien des adaptiven Systems. Allerdings sollten Sie daran denken, dass der Unterschied zwischen Eigenkapital und Saldo ist auch ein guter Faktor der Wirksamkeit. 5.3 Verwenden von Take Profit und Stop Loss Sie können die Effektivität von Handelssystemen ändern, indem Sie feste Stop-Level festlegen (indem Sie die SetStops-Funktion aufrufen, um die Stop-Levels für virtuelle Trades festzulegen). Wenn die Ebenen angegeben werden, wird das Schließen virtueller Positionen automatisch durchgeführt. Diese Funktionalität wird in der CSampleStrategy-Klasse implementiert. In unserem Beispiel (siehe 2.2, die Funktion der Klassen der gleitenden Mittelwerte) wird die Funktion der Einstellung der Stopp-Pegel kommentiert. 5.4. Periodische Zeroisierung der kumulativen virtuellen Profit Der adaptive Ansatz hat den gleichen Nachteil wie gemeinsame Strategien haben. Wenn die führende Strategie zu verlieren beginnt, beginnt das adaptive System auch zu verlieren. Das ist der Grund, warum manchmal müssen Sie die Ergebnisse der Arbeit aller Strategien zu nivellieren und alle ihre virtuellen Positionen zu schließen. Dazu werden in der CSampleStrategy-Klasse folgende Funktionen implementiert: CheckPoint dieser Art kann von Zeit zu Zeit, z. B. nach jedem N-Balken, verwendet werden. Sie sollten sich daran erinnern, dass das adaptive System kein Gral ist (USDJPY H1, 4.01.2010-20.08.2010): Abbildung 8. Bilanz und Eigenkapitalkurven des adaptiven Systems, das die Signale der besten 10 Strategien (USDJPY H1) Eigenkapital verwendet Kurven aller Strategien sind in Abbildung 9 dargestellt. Abbildung 9. Eigenkapitalkurven auf dem Konto mit dem adaptiven System auf der Grundlage von 10 Strategien (USDJPY H1) Wenn es keine rentablen Strategien im adaptiven System gibt, ist es nicht effektiv. Nutze gewinnbringende Strategien. Wir sollten eine andere wichtige und interessante Sache betrachten. Achten Sie auf das Verhalten der adaptiven Strategie am Anfang des Handels: Abbildung 10. Equity-Kurven auf dem Konto mit 10 Strategien der adaptiven Strategie Zuerst hatten alle Strategien negative Ergebnisse und die adaptive Strategie gestoppt Handel dann begann es zu wechseln Zwischen Strategien, die ein positives Ergebnis hatten und dann wurden alle Strategien wieder unrentabel. Alle Strategien haben die gleiche Balance am Anfang. Und nur nach einer Weile, eine oder andere Strategie wird ein Führer, so empfiehlt es sich, eine Beschränkung in der adaptiven Strategie setzen, um den Handel an den ersten Bars zu vermeiden. Ergänzen Sie dazu die ExpertOnTick-Funktion der CAdaptiveStrategy-Klasse mit einer Variablen, die bei jeder neuen Bar erhöht wird. Am Anfang, bis der Markt die beste Strategie wählt, sollten Sie weg vom realen Handel bleiben. Schlussfolgerungen In diesem Artikel haben wir ein Beispiel für das adaptive System betrachtet, das aus vielen Strategien besteht, von denen jeder seinen eigenen virtuellen Handel tätigt. Der reale Handel wird in Übereinstimmung mit den Signalen einer profitabelsten Strategie im Moment durchgeführt. Durch die Verwendung des objektorientierten Ansatzes, Klassen für die Arbeit mit Daten und Handelsklassen der Standard-Bibliothek, schien die Architektur des Systems einfach und skalierbar jetzt können Sie leicht erstellen und analysieren die adaptive Systeme, die Hunderte von Handelsstrategien gehören. Ps Zur komfortablen Analyse des Verhaltens adaptiver Systeme ist die Debug-Version der CSampleStrategy-Klasse beigefügt (das adaptive-systems-mql5-sources-debug-en. zip Archiv). Der Unterschied dieser Version ist die Erstellung von Textdateien während ihrer Arbeit enthalten sie die zusammenfassenden Berichte über die Dynamik der Veränderung der virtuellen Gleichgewicht der Strategien im System enthalten.


No comments:

Post a Comment