Testen und Optimierung von Expert Advisors

4 Mai 2016, 11:23
Michael
0
2 423

Einführung

Der Artikel bietet eine umfassende Beschreibung des Vorgangs zum Testen und Optimieren von Expert Advisors in dem MetaTrader 4 Strategietester. Die Bedeutung solcher Informationen und die Notwendigkeit dieser Publikation darf nicht unterschätzt werden. Viele Anwender, die nur mit der MetaTrader 4 Handelsplattform beginnen, haben eine sehr vage Vorstellung davon, was und wie getan werden muss, wenn sie mit Expert Advisors arbeiten.

Fast jeden Tag (im wahrsten Sinne) wird das Forum mit Fragen von neuen Anwendern gefüllt, wie man einen Expert Advisor in dem Terminal installiert, wie man mit einem Expert Advisor anfängt, was ist Optimierung und wie kann sie in dem MetaTrader 4 Strategietester ausgeführt werden, was ist Forward Testen, usw.

Der vorgeschlagene Artikel gibt einfache und deutliche Antworten auf alle diese Fraen und einen etwas professionelleren Ansatz zur Handhabung dieser Probleme mit einem spezifischen Beispiel. Wie der Artikel sich entfaltet, finden Sie Links zu relevanten Artikeln und Seiten der MQL4.community Webseite für weitere, detailliertere Einarbeitung in den Test und Optimierung-Prozess.



Testen und Optimierung von Expert Advisors

Betrachten wir die allerersten Schritte die Sie machen müssen, wenn Sie mit Expert Advisors arbeiten. Let's consider the very first steps that you need to take when working with an Expert Advisor. Zum Zwecke der Veranschaulichung werden wir einen einfachen Expert Advisor nehmen - den Moving Average Expert Advisor, den wir geändert haben. Im Gegensatz zu der ursprünglichen in der Handelsplattform MetaTrader 4 aufgebauten Version, setzt unsere Version das Öffnen von Positionen um wenn eine Moving Average Linie gekreuzt wird von durch den Kurs, und das Schließen von Positionen, wenn es eine umgekehrte Kreuzng der anderen Moving Average Linie durch den Kurs gibt, aber mit einer anderen Periode. Unsere Version wurde auch verbessert mit einer Funktion zum Öffnen von Positionen unter Markt-Ausführung Bedingungen, da diese Programmänderung zuletzt eine große Nachfrage hatte. der Code des Expert Advisor ist im Folgenden bereitgestellt:

//+------------------------------------------------------------------+
//|                                      Moving Average_?odified.mq4 |
//|                      Copyright ɠ2013, MetaQuotes Software Corp. |
//|                                      Modified by BARS            |
//+------------------------------------------------------------------+
#define MAGICMA  20050610
//-----------------------------------------
extern int     StopLoss           = 500;
extern int     TakeProfit         = 500;
extern double  Lots               = 0.1;
extern double  MaximumRisk        = 0.02;
extern double  DecreaseFactor     = 3;
extern int     MovingPeriod_Open  = 12;
extern int     MovingPeriod_Close = 21;
extern int     MovingShift        = 1;
extern color   BuyColor           = clrCornflowerBlue;
extern color   SellColor          = clrSalmon;
//---
double SL=0,TP=0;
//-- Include modules --
#include <stderror.mqh>
#include <stdlib.mqh>
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void start()
  {
//--- If there are more than 100 bars in the chart and the trade flow is free
   if(Bars<100 || IsTradeAllowed()==false)
      return;
//--- If the calculated lot size is in line with the current deposit amount
   if(CalculateCurrentOrders(Symbol())==0)
      CheckForOpen();   // start working
   else
      CheckForClose();  // otherwise, close positions
  }
//+------------------------------------------------------------------+
//| Determines open positions                                        |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
         break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY) buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
//---- return orders volume
   if(buys>0)
      return(buys);
   else
      return(-sells);
  }
//+------------------------------------------------------------------+
//| Calculates the optimum lot size                                  |
//+------------------------------------------------------------------+
double LotsOptimized()
  {
   double lot=Lots;
   int    orders=HistoryTotal(); // history orders total
   int    losses=0;              // number of loss orders without a break
//---- select lot size
   lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- calcuulate number of loss orders without a break
   if(DecreaseFactor>0)
     {
      for(int i=orders-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
           {
            Print("Error in history!");
            break;
           }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL)
            continue;
         //----
         if(OrderProfit()>0)
            break;
         if(OrderProfit()<0)
            losses++;
        }
      if(losses>1)
         lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
     }
//---- return lot size
   if(lot<0.1)
      lot=0.1;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Position opening function                                        |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   double ma;
   int    res;
//---- go trading only for first tiks of new bar
   if(Volume[0]>1)
      return;
//---- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod_Open,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---- sell conditions
   if(Open[1]>ma && Close[1]<ma)
     {
      if(StopLoss>0)
         SL=Bid+Point*StopLoss;
      if(TakeProfit>0)
         TP=Bid-Point*TakeProfit;
      res=WHCOrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,SL,TP,"Moving Average",MAGICMA,0,SellColor);
      if(res<0)
        {
         Print("Error when opening a SELL order #",GetLastError());
         Sleep(10000);
         return;
        }
     }
//---- buy conditions
   if(Open[1]<ma && Close[1]>ma)
     {
      SL=0;TP=0;
      if(StopLoss>0)
         SL=Ask-Point*StopLoss;
      if(TakeProfit>0)
         TP=Ask+Point*TakeProfit;
      res=WHCOrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,SL,TP,"Moving Average",MAGICMA,0,BuyColor);
      if(res<0)
        {
         Print("Error when opening a BUY order #",GetLastError());
         Sleep(10000);
         return;
        }
     }
//----
  }
//+------------------------------------------------------------------+
//| Position closing function                                        |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   double ma;
//---- go trading only for first tiks of new bar
//(start working at the first tick of the new bar)
   if(Volume[0]>1) return;
//---- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod_Close,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      //---- check order type 
      if(OrderType()==OP_BUY)
        {
         if(Open[1]>ma && Close[1]<ma)
            OrderClose(OrderTicket(),OrderLots(),Bid,3,BuyColor);     break;
        }
      if(OrderType()==OP_SELL)
        {
         if(Open[1]<ma && Close[1]>ma)
            OrderClose(OrderTicket(),OrderLots(),Ask,3,SellColor);     break;
        }
     }
  }
//+-------------------------------------------------------------------+
//| Opens positions in Market Execution mode                          |
//+-------------------------------------------------------------------+
int WHCOrderSend(string    symbol,
                 int       cmd,
                 double    volume,
                 double    price,
                 int       slippage,
                 double    stoploss,
                 double    takeprofit,
                 string    comment,
                 int       magic,
                 datetime  expiration,
                 color     arrow_color)
  {
   int ticket=OrderSend(symbol,cmd,volume,price,slippage,0,0,comment,magic,expiration,arrow_color);
   int check=-1;
   if(ticket>0 && (stoploss!=0 || takeprofit!=0))
     {
      if(!OrderModify(ticket,price,stoploss,takeprofit,expiration,arrow_color))
        {
         check=GetLastError();
         if(check!=ERR_NO_MQLERROR)
            Print("OrderModify error: ",ErrorDescription(check));
        }
     }
   else
     {
      check=GetLastError();
      if(check!=ERR_NO_ERROR)
         Print("OrderSend error: ",ErrorDescription(check));
     }
   return(ticket);
  }
//+------------------------------------------------------------------+

Laden Sie die angehängte des Datei Moving Average_Мodify Expert Advisor herunter. Die heruntergeladene Datei muss in den \MQL4\experts\ Ordner des MetaTrader 4 Handelsterminal platziert werden. Zum Beispiel, wenn Sie das Terminal unter C:\Program Files\MetaTrader 4\ installiert haben, müssen Sie den Expert Advisor in C:\Program Files\MetaTrader 4\MQL4\experts platzieren. Danach starten (Neustart) das Terminal.

Die Datei des Expert Advisor - Moving Average_Мodify - sollte auf der linken Seite erscheinen, im dem NavigatorFenster->Expert Advisors.

Starten Sie den Strategietester aus dem Menü (Strg + R) des MetaTrader 4 Handelsterminal. Weitere Schritte werden wie folgt sein (siehe Screenshot unten):

  • Von der "Expert Advisor" Dropdown Liste wählen Sie unseren Experten Moving_Average_Modify.
  • Von der "Symbol" Liste wählen Sie das Währungspaar für unsere Tests, z.B. EURUSD.
  • Von der "Periode" Liste wählen Sie den Zeitrahmen, wie H1.
  • Aktivieren Sie "Zeitraum" und stellen Sie den Zeitintervall an, der zum Testen und Optimieren verwendet wird, z.B. von 01.08.2008 bis 01.05.2009. Der Grund, warum wir 01.05. wählen müssen, anstatt des aktuellen Datums, wird ihnen bald klar werden.
  • Von der "Modell" Liste wählen Sie den "Open Preis" Modus.

Wir sollten ein paar Worte zu diesem Modus sagen. Wird in diesem Modus gearbeitet, werden die Signale zum Öffnen und Schließen von Positionen nur bei der Eröffnung des nächsten neuen Balken erhalten. Dies ist der Markteintritt Modus, bereitgestellt im Funktionsalgorithmus unseres Expert Advisor! Weitere Informationen über Modellierungsmodi finden Sie in dem Artikel mit dem Titel "Strategy Tester: Modellierungsmodi beim Testen von Handelsstrategien".

Gehen wir weiter zum Testen. Vorerst werden wir die Standardparameter in den Expert Advisor Einstellungen verwenden. Klicken Sie auf "Start" in der unteren rechten Ecke des Strategietesters und bereiten sie vor die Testergebnisse anzuzeigen, sobald der Fortschrittsbalken das Ende erreicht. Um die Ergebnisse zu sehen, öffnen Sie die Registerkarte "Bericht" des Strategietesters. Alternativ können Sie das Kontostand Diagramm des Testdurchlaufs öffnen - die "Diagramm" Registerkarte (siehe Screenshot oben).

Leider sind die Ergebnisse ziemlich belastend. Unsere erste Einzahlung neigt ständig auf Null... Wir können die verallgemeinerten Statistiken dieses Testdurchlaufs in der Registerkarte "Bericht" anzeigen. Für unerfahrene Anwender kann es nützlich sein, sich vertraut zu machen mit dem Artikel "Was bedeuten Zahlen im Bericht über den Expertentest".

Fazit: Unser Expert Advisor kann keine Gewinne machen im Handel des angegebenen Symbols und Zeitrahmen, mit den standardmäßig. Wir müssen solche Parameterwerte finden, die es dem Expert Advisor ermöglichen rentabel zu sein!

Mit anderen Worten, "Optimierung bedeutet, das Ermitteln solcher Parameter für das gewählte Handelssystem, die es ermöglichen die besten Ergebnisse zu erzielen" (siehe den How Not to Fall into Optimization Traps? Artikel).

Im Optimierungsmodus wird der Expert Advisor wiederholt mit verschiedenen externen Variablen ausgeführt, die nach dem Schema variieren, das wir in den Expert Advisor-Einstellungen festgelegt haben : Startwert-Schritt-Stopp-Wert. Der MetaTrader 4 Strategietester Ihnen mehrere Parameter gleichzeitig zu optimieren. Nun müssen wir die Optimierungsparameter festlegen. Dazu klicken Sie auf die "Expert Advisor Optionen" Schaltfläche (die obere rechte Schaltfläche) und öffnen Sie das Register "Eingaben":

Auf der linken Seite aktivieren Sie die Kontrollkästchen der Parameter, die wir optimieren werden und setzen deren Anfangs- und Stop-Werte, sowie den Schritt in die "Anfangswert", "Stop" und "Schritt" Spalten. Der Screenshot zeigt, welche Parameter wir optimieren (ermitteln) werden:

  • StopLoss - Stop Loss (start=400 Punkte, step=10 Punkte, stop=1500 Punkte).
  • TakeProfit - Take Profit.
  • MovingPeriod_Open - MA Periode zum Position Öffnen.
  • MovingPeriod_Close - MA Periode zum Position Schließen.

Die Anfangs- und Stop-Werte für die Optimierung sind auf dem gesunden Menschenverstand basierend eingestellt. Für EURUSD Н1, scheint es durchaus sinnvoll zu sein, die Werte wie im Screenshot oben gezeigt einzustellen. Bitte beachten Sie, dass wir in diesem Fall fünfstellige Kurse in MetaTrader 4 haben.

Die Optimierung in dem "Open Preis" -Modus ist sehr schnell. So können wir es uns leisten alle vier ausgewählten Parameter gleichzeitig zu optimieren. Schließen Sie das "Expert Eigenschaften" Fenster mit "OK" und in dem Strategietester aktivieren Sie die "Optimierung" Box auf der rechten Seite. Klicken Sie dann auf "Start" in der unteren rechten Ecke des Strategietesters. Die Optimierung ist jetzt im Gange.

Sie können den Vorgang visuell überwachen, mit den Strategietester Registerkarten "Ergebnisse der Optimierung" und "Optimierungsdiagramm". Wenn grüne Flächen anstelle des Optimierungsdiagramms angezeigt werden, empfehlen wir, dass Sie das Häkchen bei der "zweidimensionale Fläche - Raum" Option in dem erscheinenden Fenster deaktivieren.

Nach Abschluss der Optimierung (wenn der Fortschrittsbalken das Ende erreicht), öffnen Sie die Strategietester Registerkarte "Ergebnisse der Optimierung" und ändern Sie die Größe indem Sie seinem oberen Rand nach oben ziehen. Danach klicken Sie auf die zweite Spalte "Profit", um die Durchlaufergebnisse in absteigender Reihenfolge zu ordnen. Wir werden in der Lage sein, folgendes zu sehen:

Wie der Screenshot vermuten lässt, führen einige Kombinationen von Expert Advisor Parametern zu dem maximalen Gewinn von $ 4.658. Allerdings, beeilen Sie sich nicht diese Parameter in unserem Expert Advisor einzustellen. In Anbetracht des Gewinnwerts, ist der Rückgang zu groß! Für den Anfang sollten wir die Ergebnisse verwenden, um die am besten geeignete Kombination von maximalem Gewinn und angemessenem Rückgang zu wählen. Deshalb müssen wir den Durchlauf 2406 mit dem Gewinnwert von $ 2.715 und dem minimalen relativen Rückgang von 19,83% zu nehmen.

Klicken Sie rechts auf dieser Zeile. Es wird ein Fenster geöffnet, in dem Sie auf "Eingangsparameter festlegen" klicken sollten. Wenn dies geschieht, werden die ausgewählten Parameter automatisch in den Expert Advisor eingestellt. Klicken Sie auf die Schaltfläche "Start" in der unteren rechten Ecke des Strategietesters. Nach Abschluss des Tests (Durchlauf), öffnen Sie die Registerkarte "Bericht" um die Testergebnisse zu überprüfen.

  • Ursprüngliche Einzahlung 1,000.00
  • Nettoprofit gesamt 2,705.40
  • Bruttoprofit 7,520.57
  • Bruttoverlust -4,815.17
  • Profitfaktor 1.56
  • Erwartetes Ergebnis 15.37
  • Maximaler Rückgang 413.08 (11.48%)
  • Relativer Rückgang 19.88% (399.50)
  • Anzahl an Trades 176
  • Short positionen (davon gewonnen %) 80 (41.25%)
  • Long positionen (davon gewonnen %) 96 (32.29%)
  • Größter Gewinntrade 142.10
  • Größter Verlusttrade -87.10
  • Durchschnitt Gewinntrade 117.51
  • Durchschnitt Verlusttrade -42.99
  • Maximum Gewinntrades in Folge (Gewinn in Geld) 4 (567.62)
  • Maximum Verlusttrades in Folge (Verlust in Geld) 8 (-310.27)
  • StopLoss=870; TakeProfit=1420; Lots=0.1; MaximumRisk=0.02; DecreaseFactor=3; MovingPeriod_Open=37; MovingPeriod_Close=54; MovingShift=1;

Wie stabil sind diese Ergebnisse? Wird der Expert Advisor in Echtzeit mit den gleichen Ergebnissen handeln, wie er es gezeigt, wenn er in dem Strategietester läuft? Diese Fragen können zu einem gewissen Grad während dem sogenannten Forward Test beantwortet werden!

Ich erinnere Sie daran, dass wir die Prüfung und Optimierung Zeitraum vom 01.08.2008 bis zum 01.05.2009 festgelegt haben. Wir haben uns bewusst die Optimierung über das Intervall von August 2008 bis zum aktuellen Datum zu vermeiden, Trainieren den Expert Advisor über das angegebene Zeitintervall. Nun ist es Zeit eine "Prüfung" zu machen und zu sehen, wozu der Expert Advisor in der Lage ist.

Das heißt, ihn mit den gleichen Parametern außerhalb des Optimierungszeitraums zu testen - von 02.05. bis 08.06.2009! Es ist üblich, einen solchen Testlauf ein "Forward-Test" zu nennen, im Gegensatz zu dem vorherigen - Backtest.

Forward Testergebnisse ermöglichen es uns, zuversichtlicher und objektiv die Aussichten für den Echtzeit-Handel für unseren Expert Advisor zu bewerten. Ich werde Sie nicht noch länger zu warten lassen und schließlich einen forwad-Test durchführen, wie oben beschrieben. Dazu müssen wir das Zeitintervall in dem Strategietester von 02.05.2009 bis heute (8. Juni) einstellen und klicken auf "Start"! Hier sind die Ergebnisse:

  • Ursprüngliche Einzahlung 1,000.00
  • Nettoprofit gesamt 348.44
  • Bruttoprofit 1,049.34
  • Bruttoverlust -700.90
  • Profitfaktor 1.50
  • Erwartetes Ergebnis 8.93
  • Maximaler Rückgang 287.60 (20.82%)
  • Relativer Rückgang 20.82% (287.60)
  • Anzahl an Trades 39
  • Short Positionen (davon gewonnen %) 22 (59.09%)
  • Long Positionen (davon gewonnen %) 17 (70.59%)
  • Größter Gewinntrade 42.00
  • Größter Verlusttrade -89.00
  • Durchschnitt Gewinntrade 41.97
  • Durchschnitt Verlusttrade -50.06
  • Maximum Verlusttrades in Folge (Verlust in Geld) 6 (251.90)
  • Maximum consecutive losses (loss in money) 3 (-267.00)

Was für ein überraschendes Ergebnis! Dies ist sehr selten beim ersten Durchlauf und völlig unerwartet. Der Forward-Test hat einen sehr guten Gewinn gezeigt, aber nicht ohne den Rückgang. Idealerweise sollten die Verlust-Trades, welche die höchsten Rückgang-Werte ergaben in dem Chart mit dem Strategietester Darstellungsmodus überprüft werden. Jeder Leser dieses Artikels kann diese oben beschriebenen Schritte wiederholen (in MetaTrader 4 Alpari) und sehen, dass alle angezeigten Ergebnisse ganz anständig sind. Als Bemerkung am Rande, ein ähnlicher Forward-Test mit rentablen Optimierungsparametern und einem größeren Rückgang (3061 und 771,95) produzierte viel schlechtere Ergebnisse.

Aber lassen Sie Ihre Hoffnungen noch nicht zu hoch steigen. Eine objektive Bewertung der Leistung des Expert Advisor erfordert eine Reihe von solchen Forward-Tests die über historische Daten ausgeführt werden. Eine gute und klare Beschreibung aller notwendigen Schritte und die allgemeine Bewertung der Ergebnisse, wird in den Artikeln der Reihe mit dem Titel "Expert Advisors Basierend auf Beliebten Handelssystemen und Alchemie der Handelsroboter Optimierung" zur Verfügung gestellt.

Hier möchten wir die Leser mit den ersten grundlegenden Schritten für die Arbeit mit Expert Advisors vertraut machen. Lassen Sie uns zu dem hohen Rückgang-Wert zurückgehen, den wir in dem Durchlauf des Forward-Test sahen. Das Chart zeigt, dass der Rückgang nach 18.05.2009 - Trades 18 bis 20 auftrat. Wir werden versuchen, die Situation in dem Strategietester Visualisierungsmodus zu überwachen, und ändern den Modus in dem "Modell" Feld "Jeder Tick" für Übersichtlichkeit. Der Visualisierungs-Modus ermöglicht es uns, die Zeit-Geschwindigkeit zu steuern (das heißt Kurs-Vorschubrate). Stellen Sie das Datum vom 18.05.2009 und klicken Sie auf "Start".

Das ist es, was wir über den verlustbringenden Teil der historischen Daten sehen können:

Der deutliche Rückgang wurde durch drei aufeinanderfolgende verlierende SELL Trades verursacht. Sie waren nicht in der Richtung des Trends, und zeigen sofort den Hauptnachteil unseres Expert Advisor: seinen Betriebsalgorithmus ist zu primitiv. Wir müssen mindestens einen grundlegenden Trendfilter hinzufügen und/oder den Einstiegsmechanismus für Long- und Short-Trades in einer mehr oder weniger die gleichen Weise, wie in dem Artikel "Atypisches Automatisiertes Trading" vorgeschlagen wird. Allerdings fallen diese Fragen aus dem Rahmen dieses Artikels.

Fazit

Wir haben die grundlegenden Arbeitsmethoden für das Testen und die Optimierung von Expert Advisors in dem Strategietester beschrieben. Um ein besseres Verständnis und weitere Erfahrungen mit solchen Tests zu gewinnen, können Sie die "So können Sie Ihre eigenen Optimierungskriterien implementieren" und "Out-of-sample Optimization and Testing" Artikel prüfen.

Abschließend wollen wir einige der am häufigsten gestellten Fragen berücksichtigen, die neue Anwender in der Regel haben, wenn sie EAs testen.

1. Was verursacht die Unterschiede in den Ergebnissen der gleichen Tests bei verschiedenen Handelszentren?

Der Unterschied in den Testergebnissen bei verschiedenen Handelszentren wird durch Kursdifferenzen verursacht. Jeder Broker hat seine eigenen Quellen für Kurs-Feeds. Dies führt zu Preisunterschieden, die sich dann in den Testergebnissen wiederspiegelt.

2. Warum produzieren die gleichen Tests, die in dem gleichen Handelszentrum laufen, unterschiedliche Ergebnisse?

Unterschiedliche Ergebnisse die bei dem gleichen Handelszentrum erzielt werden, können durch verschiedene Ursachen hervorgerufen werden, die am häufigsten sind: Floating Spread - es hat eine sehr starke Auswirkungen auf die Ergebnisse, vor allem, wenn auf den unteren Zeitrahmen getestet wird und der JEDER TICK Modus verwendet wird. Der MetaTrader 4 Strategietester speichert den letzten Spread-Wert. Der Spread könnte in dem nächsten Durchlauf geändert haben und das Testergebnis wird folglich unterschiedlich sein.

3. Was verursacht den Unterschied in Ergebnisse, wenn in der "jedem Tick" und "Open Preise" Modus getestet wird?

Die Sache ist, dass, wenn der Expert Advisor auf Ticks basiert arbeitet, erhält und analysiert er Daten auf jedem Tick, während er bei einem neuen Balken nur Daten erhält und Signale sendet wenn er auf Eröffnungs-Kurse basiert arbeitet, mit allen Konsequenzen, die damit gekommen. .. Fazit: Es ist wichtig, zu bestimmen, wie der Expert Advisor tätig ist, und den Strategietester in dem entsprechenden Modus zu starten.

4. Warum werden keine Positionen durch den Expert Advisor geöffnet?

Zunächst sollten Sie das Strategietester-Journal öffnen. Es wird einen möglichen Fehlercode anzeigen. Die Code Interpretation ist im Fehlercodes Abschnitt zu finden.

Hoffentlich hat dieser Artikel viele Fragen der neuen Nutzer der Handelsplattform MetaTrader 4 beantwortet. Die unerfahrenen Anwender haben die Möglichkeit, ein klein wenig Erfahrung zu gewinnen, indem sie (wiederholt) auf eigene Faust durch die oben beschriebenen Schritte gehen und die grundlegende Fähigkeit für zukünftige Experimente bekommen!

er Artikel wurde unter Verwendung der im Text verwiesenen Materialien vorbereitet, sowie die Informationen von der How to run an Expert Advisor? Seite von I.Kim's Webseite.

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

Beigefügte Dateien |
Erweiterte Analyse eines Handelskonto Erweiterte Analyse eines Handelskonto

Der Artikel befasst sich mit dem automatischen System zur Analyse jedes Handelskontos im MetaTrader 4 Terminal. Technische Aspekte eines erzeugten Berichts und Interpretation der erhaltenen Ergebnisse werden berücksichtigt. Schlussfolgerungen über verbessernde Handelsfaktoren werden nach einer umfangreichen Prüfung des Berichts gezogen. Das MQLab™ Graphic Report Skript wird zur Analyse verwendet.

Lite_EXPERT2.mqh: Expert Advisor Umsetzungsbeispiele Lite_EXPERT2.mqh: Expert Advisor Umsetzungsbeispiele

In diesem Artikel fährt der Autor fort, die Leser mit den Lite_EXPERT2.mqh vertraut zu machen mit echten Expert Advisor Umsetzungsbeispielen. Der Artikel befasst sich mit der Idee der Verwendung von schwebenen Pending Ordern und Pending Ordern die von Trade zu Trade dynamisch variieren, die bestimmt werden auf Average True Range (ATR) Indikatorwerte.

Offline Charts in dem Neuen MQL4 Offline Charts in dem Neuen MQL4

Das aktualisierte MQL4 hat das neue Format zum Speichern historischer Daten und stellt die geeignete MqlRates Struktur für die komfortable Aufbewahrung der Zeit-, Öffnung-, Tief-, Hoch-, Schluss- und Volumen-Werte bereit. Seit vielen Jahren haben Trader ihre MQL4 Anwendungen entwickelt, die ihre Daten in HST-Dateien sammeln und speichern um Offline-Charts zu erzeugen. Wir können Ihnen versichern, dass alle zuvor kompilierten EX4 Dateien im neuen MetaTrader 4 Terminal auf die gleiche Weise wie zuvor funktionieren.

Datenstruktur in MetaTrader 4 Build 600 und Höher Datenstruktur in MetaTrader 4 Build 600 und Höher

MetaTrader 4 Build 600 verfügt über die neue Struktur und Position der Client-Terminal-Dateien. Nun sind MQL4 Anwendungen in separaten Verzeichnissen nach dem Programmtyp (Expert Advisors, Indikatoren oder Skripte) platziert. In den meisten Fällen werden Terminal-Daten nun in einem speziellen Datenordner vom Terminal Installationsort getrennt gespeichert. In diesem Artikel werden wir im Detail beschreiben, wie Daten übertragen werden, sowie die Gründe für das neue Speichersystem einzuführen.