MetaTrader 5 herunterladen

Test Visualisierung: Handelshistorie

26 Januar 2016, 13:00
Andrey Khatimlianskii
0
329

1. Motivation

Beginnend mit Build 196 bietet das MetaTrader 4 Client Terminal eine Test-Visualisierungsfunktion. Sie ermöglicht das Kontrollieren von Expert Advisor Tests auf einem völlig neuen Niveau. Nun kann der Trading-Programmierer jede Aktion von seinem oder ihrem Expert Advisor beobachten, durch prüfen seiner Operationen in der Historie!

Sie können über die Verwendung des Visualisierers unter Testing of Expert Advisors in the MetaTrader 4 Client Terminal: An Outward Glance lesen. In meinem vorherigen Artikel mit dem Namen Testing Visualization: Functionality Enhancement, wurde beschrieben wie eine "Trade" Registerkarte für das Testen realisiert wird. Wir werden die "Kontohistorie" Registerkarte hier hinzufügen.


2. Die Aufgabe und wie sie verwirklicht wird

Zunächst einmal müssen wir uns darüber im Klaren sein, dass wir keine Schattenkopie der "Kontohistorie" erstellen können. Um sie zu erstellen, müssten wir ein komplettes Programm mit der Verwendung von DLLs schreiben. Aber wir benötigen dies überhaupt nicht, da die "Testergebnis" Registerkarte des Testers fast alle Informationen über die gemachten Operationen enthält.

Unsere Aufgabe ist es aktuelle Informationen darzustellen. Dies kann sehr praktisch sein, wenn die Arbeit des Expert Advisor analysiert wird. Es besteht während der gesamten Zeit keine Notwendigkeit zwischen den Registerkarten zu wechseln.

Da es nicht sehr viel Platz auf dem Monitor gibt und die Einrichtung einer Scrollfunktion keine sehr einfache Aufgabe ist, werden wir nur die jüngsten Ereignisse darstellen.

Was übrig bleibt, ist daran zu erinnern, dass ein Unterfenster erstellt wird, in dem die Historie angezeigt wird, es notwendig ist einen Inkator zu erstellen und dem Chart hinzuzufügen, das Template mit dem Namen Tester.tpl zu erstellen oder im Template <Expert Template< (Sie können den Indikator direkt aus diesem Artikel herunterladen).

Ein Template für das Testen speichern

Ein Template für das Testen speichern

Nun können wir anfangen den Expert Advisor vorzubereiten.

Das ist nicht sehr schwierig, entweder:

  • Speichern Sie die VisualTestingTools.mq4 Datei im Verzeichnis mit dem Namen ...\MetaTrader 4\experts\include\.
  • Fügen Sie die #include <VisualTestingTools.mq4> Zeile dem Expert hinzu - nun ist der Dateiinhalt in den Code des Experts eingefügt, und.
  • Fügen Sie die Experten init() und start() Funktionen den Aufrufen für die für Tradinghistorie-Aktualisierung verantwortlichen Funktionen hinzu.


...
double _Commission = 0.0; string _Comment = ""; datetime _Expiration = -1;
 
#include <VisualTestingTools.mq4>
 
int init()
  {
    if(FastEMAPeriod >= SlowEMAPeriod) 
        return(-1);
    vTerminalInit();
    vHistoryInit();
    return(0);
  }
 
int start()
  {
    if(FastEMAPeriod >= SlowEMAPeriod)
        return(-1);
    vTerminalRefresh();
    vHistoryRefresh();
 
    int _GetLastError = 0;
...


3. Testen

Lassen Sie uns nun versuchen den neuen Experten zu testen. Dafür öffnen wir das Strategietester Fenster, wählen den CrossMACD_DeLuxe_VisualHistory im Experten Menü und drücken Sie dessen Eigenschaften-Taste.

Strategietester Fenster

Strategietester Fenster

Der Experte hat einige neue externe Variablen erhalten - sie werden in enthaltenen Datei mit dem Namen VisualTestingTools.mql4 deklariert. Einige von ihnen sind für die Steuerung der "Terminal" Registerkarte gedacht, aber die meisten von ihnen sind gemeinsam:

  • TerminalRows - die maximale Anzahl der angezeigten "Terminal" Zeilen. Wenn Sie die TerminalRows = 0 einstellen, wird das Terminal nicht aktualisiert.
  • HistoryRows - die maximale Anzahl der angezeigten "Kontohistorie" Zeilen. Wenn Sie die HistoryRows = 0 einstellen, wird die Kontohistorie nicht aktualisiert.
  • BigText - stellen Sie true ein, wenn Sie die Schrift vergrößern wollen.
  • SignalPoints - der Abstand in Punkten, beginnend bei dem StopLoss, Stop Profit und Eröffnungspreis Feldern von Pending Ordern wird hervorgehoben. Zum Beispiel, wenn SignalPoints = 10 ist, wird das Stop Loss Feld seine Farbe ändern, wenn der Preis bei einem 10-Punkte Abstand vom Stop Loss der Position ist.
  • ShowCancelled - stellen Sie true ein, wenn Sie gelöschte Ordern in Ihrer Handelshistorie sehen möchten.
  • ShowExpired - stellen Sie true ein, wenn Sie abgelaufene Pending Ordern in Ihrer Handelshistorie sehen möchten.
  • MainColor - Farbe von Überschriften und Kontohistorie, sowie der Konto-Informationsleiste (Kontostand, Equity, ...) des Terminals.
  • BuyColor - Farbe der Informationen über Buy Positionen.
  • BuyOPColor - Farbe des Eröffnungspreis Felds der Terminal Registerkarte. Diese Farbe wird die Hauptfarbe ersetzen, wenn der aktuelle Preis sich dem Eröffnungspreis von Buy Stop und Buy Limit Ordern nähert.
  • BuySLColor - für die Terminal Registerkarte: Farbe, die die Hauptfarbe ersetzt, wenn der Preis sich dem Stop Loss Niveau von Buy Positionen nähert, für die Kontohistorie Registerkarte: Farbe, die die Hauptfarbe ersetzt, wenn die Buy Position durch den Stop Loss geschlossen wurde.
  • BuyTPColor - das gleiche wie BuySLColorm angewendet für den Take Profit von Positionen.
  • SellOPColor, SellSLColor und SellTPColor - das gleiche für Sell Positionen.

Stellen Sie die gewünschten Werte von Variablen ein und drücken Sie OK. Prüfen Sie, ob die Visualisierung eingeschaltet ist und beginnen Sie zu testen:

Test Visualisierung: 'Terminal' und 'Kontohistorie' Fenster wurden geladen

Der EA hat eine Position eröffnet, und diese wird im 'Terminal' Fenster visualisiert

Sobald die Position geschlossen wurde, wird sie in die 'Kontohistorie' verschoben und wird durch eine andere ersetzt. Beachten Sie, dass das Stop Loss Feld in Rot hervorgehoben ist - die Position wurde durch den Stopp Loss geschlossen.

Die zweite Position wurde durch den Take Profit geschlossen. Beachten Sie, dass die neueste Position oben in der Kontohistorie angezeigt wird. So sehen Sie immer die jüngsten Ereignisse.

So sieht unser virtuelles Terminal nach einigen Minuten aus.


4. Mögliche Probleme

Das in dem Artikel Testing Visualization: Functionality Enhancement beschriebene Problem gilt auch für den vHistory Indikator: Wenn der Indikator nicht im zweiten Unterfenster im Template durch den Tester verwendet wird, sollte der ordnungsgemäße Ablauf von verantwortlichen Funktionen für die Kontohistorie durch die explizit angegebene Unterfenster-Nummer bereitgestellt werden:

vHistory_win = WindowFind( "vHistory" );
    if ( IsTesting() ) { vHistory_win = 2; }


5. Fazit

Screenshots, die zeigen wie die Registerkarte Kontohistorie in verschiedenen unten angegebenen Situationen aussieht.

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

Beigefügte Dateien |
vHistory.mq4 (0.78 KB)
Haltepunkte im Tester: Es ist möglich! Haltepunkte im Tester: Es ist möglich!

Dieser Artikel befasst sich mit Haltepunkt-Emulation beim Durchlaufen des Testers, Debug-Informationen werden angezeigt.

Erstellen eines Automatischen Handelssystems Erstellen eines Automatischen Handelssystems

Sie müssen zugeben, dass es verlockend klingt - Sie werden stolzer Besitzer eines Programms, das für Sie innerhalb von Minuten ein profitables Automatisches Handelssystem (AHS) entwickeln kann. Alles was Sie machen müssen, ist die wünschenswerten Eingaben und die Eingabetaste drücken. Und - hier ist es, Sie testen Ihr AHS und erwarten Sie positive Auszahlungen. Während andere Menschen tausende Stunden investieren, um dieses einzigartige AHS zu entwickeln, das sie "fürstlich bedient", klingt diese Aussage, gelinde gesagt, ziemlich gewagt. Auf der einen Seite sieht dies ein wenig überlebensgroß aus... Allerdings, nach meiner Meinung, kann dieses Problem gelöst werden.

Grundsätze der Zeit-Transformation im Intraday-Trading Grundsätze der Zeit-Transformation im Intraday-Trading

Dieser Artikel enthält das Konzept der operativen Zeit, das es ermöglicht einen gleichmäßigeren Kursfluss zu erhalten. Er enthält außerdem den Quellcode des geänderten Moving Average, mit einem Ausgleich für diese Zeit-Transformation.

Übertragen eines Indikator Code in einen Expert Advisor Code. Allgemeine Strukturelle Regelungen von Expert Advisor und Anzeigefunktionen Übertragen eines Indikator Code in einen Expert Advisor Code. Allgemeine Strukturelle Regelungen von Expert Advisor und Anzeigefunktionen

Dieser Artikel befasst sich mit den Möglichkeiten einen Indikator-Code in einen Expert Advisor Code zu übertragen, mit dem Schreiben von Expert Advisors ohne Aufrufe spezifischer Indikatoren und mit dem gesamten Quellcode für die Kalkulation benötigter Indikatorwerte innerhalb des Expert Advisor. Der Artikel vermittelt eine allgemeine Systematik von Expert Advisor Änderungen, und die Idee zum Aufbau einer Anzeigefunktion, basierend auf einem benutzerdefinierten Indikator. Der Artikel ist für Leser gedacht, die bereits Erfahrung mit Programmieren in der MQL4 Sprache haben.