MetaTrader 5 herunterladen

Hat Dir der Artikel gefallen?
Teile ihn mit den anderen -
poste einen Link zu diesem Beitrag!

Nutze neue Möglichkeiten der Plattform MetaTrader 5

Die Modellierung der Requotes im Tester und die Stabilitätsanalyse des Expert Advisors

31 März 2016, 09:56
Murashov Anton
0
243

Einführung

Der eingebaute Strategie-Tester im Client Terminal Meta Trader 4 ist ein sehr guter Prüfung /Qualitätsbewertungsinstrument einer Trading-Strategie, der in Expert Advisor realisiert wurde. Aber in diesem aktuellen Zeitpunkt hat der meiner Meinung nach zwei sehr kritische Besonderheiten. Erstens verwendet er nicht die reale History der Ticks nach einem Instrument, sondern modelliert sie auf Basis der Ein-Minuten-Bars. Zweitens berücksichtigt er nicht das Phänomen, dass Broker ziemlich oft requotes machen, insbesondere bei kleinen Handelsvolumen oder bei sehr großen, und auch bei "dünnen" Low-liquiden Markten. Wenn man nicht in der Lage ist, seinen Experte unter den Bedingungen der möglichen Requotes zu prüfen, führt es zur Auftauche der "Grails", die auf Spikes, Sprünge und Nichtmarktlichen Preisen handeln. Es wurde schon erklärt, und mehrmals bewiesen, dass eine solche Strategie auf einem realen Konto nicht profitabel sein kann, aber ist es leider oft schwierig, zu erkennen, ob Ihr Expert Advisor auf "Sprünge" spielt oder nicht. Auf einem History-Chart mit Trades, die zu ihm hinzugefügt wurden, kann man manchmal sehen, dass der Tester Trades auf Sprünge öffnet, aber es nicht immer klar, und man kann nicht voraussichtlich sagen, ob die Requote-Strategie in diesen Momenten ineffektiv sein wird oder wird einfach nur die Rentabilität senken. In diesem Artikel werde ich meine eigene Methode erklären, dieses Problem zu lösen.



Annahmen und Definitionen der notwendigen Konzepte

Requote - ist die Antwort des Brokers auf den Order, den Sie an den Handel-Server gesendet haben. Diese Antwort informiert darüber, dass der Preis (in dem Sie versuchen, einen Trade zu öffnen) ist nicht mehr aktuell. Es passiert oft auf Low-liquiden oder volatilen Märkten, wo der Preis sich erheblich während der Bearbeitung Ihrer Anfrage im Terminal ändern kann. Auch Requotes kommen sehr oft vor, wenn Sie versuchen, Orders bei Spikes und Nichtmarktlichen Preisen zu öffnen.


Nehmen wir an, dass der Expert Advisor nur Orders wie OP_SELL und OP_BUY öffnet und schließt. Im Allgemeinen ändert es nichts, aber es macht einige Funktionen einfacher.

Die Modellierung der Requotes im Strategie-Tester


Lassen Sie uns ein Ziel stellen, Requotes mit der vorher gegebenen Wahrscheinlichkeit während der Orders-Öffnung und Schließung zu modellieren. Vor allem lassen Sie uns eine spezielle externe Variable einfügen, die die Eintrittswahrscheinlichkeit unserer künstlichen Requote eingeben wird. Nach meiner Beobachtung ist die Wahrscheinlichkeit des Requotations auf Low-liquiden Paaren ungefähr 90% - deshalb lassen Sie uns diesen Wert für die Analyse des Expert Advisors nehmen.
extern int RQF_TEST = 90;
Da wir die Funktion MathRand verwenden werden, die einen beliebigen Wert zurückliefern wird, ist es besser, die Folge von Pseudozufallszahlen zu initialisieren. Zu diesem Zweck wird die Funktion MathSrand am Anfang der Arbeit des Expert Advisors ausgeführt. Um die genaue Information über die Generierung der Zufallswerte und den Zweck dieser Funktion zu erfahren, können Sie das Referenzbuch über MQL 4 Sprache lesen. Ich sage bloß, dass wir trotz der Zufallszahlen aus der Funktion MathRand das gleiche Ergebnis bei jeder Überprüfung einer Strategie bekommen werden, wenn wir MathSrand nicht verwenden. Was wir uns eigentlich nicht wünschen:
int start()
  {
    //----
    MathSrand(TimeCurrent());
Danach müssen wir unsere eigenen Funktionen OrderSend und OrderClose schreiben. Nennen wir sie MyOrderSend und MyOrderClose:
int MyOrderSend(int req_prob, string symbol, int cmd, double volume, double price, 
                int slippage, double stoploss, double takeprofit, 

                string comment="", int magic=0, datetime expiration=0, 
                color arrow_color=CLR_NONE)
  {
    if(IsTesting() && (MathRand() % 100) < req_prob && (cmd == OP_SELL || cmd == OP_BUY))
        return (-1); //modelling requote
    return(OrderSend(symbol, cmd, volume, price, slippage, stoploss, takeprofit, 
           comment, magic, expiration, arrow_color));
  }
 
bool MyOrderClose(int req_prob, int ticket, double lots, double price, int slippage,
                  color Color=CLR_NONE)
  {
    if(IsTesting() && (MathRand() % 100) < req_prob)
        return (false); //modelling requote
    return (OrderClose(ticket, lots, price, slippage, Color));
  }
Jetzt ersetzen wir alle OrderSend und OrderClose Funktionen im EA mit MyOrderSend und MyOrderClose, hierbei geben wir die eingefügte externe Variable RQF_TEST als erstes Argument. Unten gibt es ein Beispiel aus meinem eigenen EA.

OrderClose -> MyOrderClose:
if(MyOrderClose(RQF_TEST, ticket, amount, Bid, 0, Blue)) 
// PREV: if(OrderClose(ticket, amount, Bid, 0, Blue))
  {
    Print("Skalpel: Order #" + ticket + " closed! (BUY, " + Bid + ")");
            //... Something
  }
else
  {
    // Requote or something like this
    Print("Skalpel: Error while closing order #" + ticket + " (BUY)!");
    // ... Something
  }
OrderSend -> MyOrderSend:
ticket = MyOrderSend(RQF_TEST, Symbol(), OP_BUY, amount, Ask, 0, 
                     Bid-StopLoss*Point, Bid+TakeProfit*Point, 
                     NULL, EXPERT_MAGIC, 0, Blue);
// PREV: OrderSend(Symbol(), OP_BUY, amount, Ask, 0, Bid - StopLoss*Point, 
// Bid+TakeProfit*Point, NULL, EXPERT_MAGIC, 0, Blue);
 
if(ticket > 0)
    Print("Skalpel: Order #" + ticket + " opened! (BUY)");
else
    Print("Skalpel: Error while placing order."); 
    // ... Requote or something like this

Schlussfolgerungen und die Analyse der Ergebnisse

Vor allem muss der Wert der Variable RQF_TEST erklärt werden. Eben der legt die Anzahl von Requotes für 100 Trades und kann den Wert von 0, wenn überhaupt keine Requotes gibt, bis zu 100 nehmen, wenn es absolut unmöglich ist, einen Order zu öffnen oder zu schließen. Wenn RQF_TEST gleich 90 ist, wie im Beispiel, bedeutet das, dass etwa 90 Versuche von 100, der Trades zu öffnen oder zu schließen mit Misserfolg endet, das heißt, es wird requote modelliert.

Eigentlich sind die Ergebnisse, die bei verschiedenen Werten von RQF_TEST bekommen wurden, zeigen die Stabilität Ihrer Strategie vor Requotes und vor Unterschieden in den Ticks aus dem Tester und dem Broker.

Wenn die Ergebnisse verschlechtern und RQF_TEST wächst, ist es notwendig, die Zweckmäßigkeit einer solchen Strategie zu überprüfen, da die Signalen gegen Requotes bedeuten, dass Sie auf scharfen, vorübergehenden Spikes spielen oder es ist scalpings. Und zu welchen Ergebnissen solche EAs bringen können, wurde schon viel geschrieben.

Als Beispiel lassen Sie uns Balance-Charts von einem klassischen Experten betrachten, mit verschiedenen Werten von RQF_TEST und der auf Spikes funktioniert. Der Expert Advisor wurde aus dem Artikel "Mein erster Graal" (https://www.mql5.com/de/articles/1413) genommen und wurde etwas für die Visualisierung verarbeitet. Alle Orders des Typs limit werden durch normaler marktübliche Weise realisiert, und auch Parameter werden so genommen, damit Charts deutlich die Verschlechterung beim Requoting zeigen könnten.

Keine reqoutes (RQF_TEST = 0):


In 90 Fällen von 100 gibt es eine requote (RQF_TEST = 90):


Offensichtlich ist die Situation äußerst bedauerlich. Vor allem unter der Bedingung, dass die getestete EURCHF ein extrem illiquide Paar ist und Requotes kommen da sehr oft vor, auch auf den ruhigen Märkten, geschweige denn der Spikes. Von daher ist die Zweckmäßigkeit unseres EAs gleich 0, trotz des sehr schönen Charts, auch wenn es Requotation nicht gibt.


Bemerkungen und Ergänzungen

Eigentlich ist es ziemlich schwierig, den EA zu finden, der wegen Requotes von profitabel zu unrentabel werden könnte. Ich war lange auf der Suche nach einem solchen Expert Advisor, der seine Qualität deutlich am Balance-Chart für eine lange Zeit zeigen konnte. Normalerweise Requotation (sogar auf dem Niveau von 50%) reduziert die Anzahl der Trades und generell den Gewinn, obwohl das Chart von außen genauso aussehen wird (konstant). Die Erklärung ist dazu sehr einfach - wenn der Broker Ihnen die Ordersöffnung bei 90 Fällen von 100 bei Spikes verbietet, dann bekommen Sie einen Gewinn von ein paar Scalpings in 10%, und eigentlich auch nur bis zu einem Zeitpunkt, in dem Ihnen die Verwendung der EAs verbieten wird. Wenn Sie sich daran erinnern, wurde eine solche Situation schon in meinem Artikel "Mein erster Graal" beschrieben. Aber selbst wenn wir davon ausgehen, dass der Broker uns nicht stört (was kaum möglich ist), ist der 10-fache Rückgang des Gewinns (und es ist genau diese Anzahl auf dem Niveau von 90% bei Requotation - der EA wird einfach 90 Spikes von 100 überspringen) macht aller Vorteile des "Grals" wertlos - er wird weniger rentabel sein, anstatt die Bankeinlagen.

Übersetzt aus dem Russischen von MetaQuotes Software Corp.
Originalartikel: https://www.mql5.com/ru/articles/1442

Beigefügte Dateien |
Graal2.mq5 (23.82 KB)
Expert Advisors Basierend auf Beliebten Handelssystemen und Alchemie der Handelsroboter Optimierung (Forts.) Expert Advisors Basierend auf Beliebten Handelssystemen und Alchemie der Handelsroboter Optimierung (Forts.)

In diesem Artikel fährt der Autor fort mit dem Analysieren der Umsetzung von Algorithmen einfachster Handelssysteme und beschreibt einige relevante Einzelheiten der Verwendung von Optimierungsergebnissen. Der Artikel wird nützlich sein für beginnende Trader und EA-Autoren.

Vergleichende Analyse von 30 Indikatoren und Oszillatoren Vergleichende Analyse von 30 Indikatoren und Oszillatoren

Der Artikel beschreibt einen Expert Advisor, der es ermöglicht die Durchführung der vergleichenden Analyse von 30 Indikatoren und Oszillatoren, mit dem Ziel ein effektives Paket aus Indizes für das Trading zu bilden

Probleme bei der technischen Analyse Probleme bei der technischen Analyse

Derzeit ist die technische Analyse zusammen mit der fundamentalen Analyse, ist die wichtigste Methode, die Aktienmärkte zu analysieren. Als eine Methode der Vorhersage der Dynamik bei Börsenpreisen hat die technische Analyse eine große Menge von Nachteilen, und einige von ihnen werfen Zweifel an ihrer praktischen Anwendbarkeit.

Was ist ein Martingale?? Was ist ein Martingale??

Kurze Beschreibung zu den verschiedenen Arten von Illusionen, die bei Martingal-Spiel entstehen. Es werden auch Illusionen betrachtet, welche bei der Anwendung der Martingale-Strategie oder bei dem Missbrauch des Spaykings und seinen Methoden entstehen können.