English Русский 中文 Español 日本語 Português
Test Visualisierung: Handelshistorie

Test Visualisierung: Handelshistorie

MetaTrader 4Tester | 26 Januar 2016, 13:00
900 0
Andrey Khatimlianskii
Andrey Khatimlianskii

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 Ltd.
Originalartikel: https://www.mql5.com/ru/articles/1452

Schnellere Berechnungen mit dem MQL5 Cloud Network Schnellere Berechnungen mit dem MQL5 Cloud Network
Wie viele Kerne hat Ihr Computer zu Hause? Wie viele Computer können Sie zur Optimierung einer Handelsstrategie nutzen? Hier zeigen wir Ihnen, wie Sie das MQL5 Cloud Network nutzen können, um Berechnungen zu beschleunigen, indem Sie mit einem einzigen Mausklick Zugriff auf Rechenleistung aus aller Welt erhalten. Die Phrase "Zeit ist Geld" wird von Jahr zu Jahr relevanter und wir können es uns nicht leisten, etliche Stunden oder Tage auf wichtige Berechnungen zu warten.
Benutzerdefinierte grafische Bedienelemente. Teil 3. Formen Benutzerdefinierte grafische Bedienelemente. Teil 3. Formen
Dies ist der letzte der drei Beiträge, die sich grafischen Bedienelementen widmen. Er behandelt die Erstellung der Hauptkomponente der grafischen Oberfläche – der Form – und ihre Verwendung in Kombination mit anderen Bedienelementen. Zusätzlich zu den Formklassen wurden die Klassen CFrame, CButton und CLabel der Bibliothek von Bedienelementen hinzugefügt.
Erstellen Ihrer eigenen grafischen Panels in MQL5 Erstellen Ihrer eigenen grafischen Panels in MQL5
Die Benutzerfreundlichkeit eines MQL5-Programms basiert gleichermaßen auf seinem Funktionsreichtum und einer ausgefeilten grafischen Benutzeroberfläche. Das Äußere ist manchmal wichtiger als ein schneller und stabiler Betrieb. Hier sehen Sie Schritt für Schritt, wie Sie Ihre eigenen Anzeigefelder auf Basis der Klassen aus der Standardbibliothek erstellen können.
Benutzerdefinierte grafische Bedienelemente. Teil 2. Bibliothek von Bedienelementen Benutzerdefinierte grafische Bedienelemente. Teil 2. Bibliothek von Bedienelementen
Der zweite Beitrag der Serie "Benutzerdefinierte grafische Bedienelemente" führt eine Bibliothek von Bedienelementen für den Umgang mit den wichtigsten Problemen ein, die bei der Interaktion zwischen einem Programm (Expert Advisor, Script, Indikator) und einem Benutzer auftreten. Die Bibliothek enthält zahlreiche Klassen (CInputBox, CSpinInputBox, CCheckBox, CRadioGroup, CVSсrollBar, CHSсrollBar, CList, CListMS, CComBox, CHMenu, CVMenu, CHProgress, CDialer, CDialerInputBox, CTable) und Beispiele für ihren Gebrauch.