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

Test Visualisierung: Kontostand Charts

MetaTrader 4Tester | 19 Februar 2016, 06:57
1 070 0
Andrey Khatimlianskii
Andrey Khatimlianskii

Einführung

Ich denke, es ist nicht nur mein Wunsch, die Informationen über den Kontostand während des Tests im Visualisierungs-Modus in einer informativeren Form anzuzeigen.
Wie viel war der Betrag der freien Margin vor dem Öffnen der letzten Position? In welche Richtung läuft die Kontostand-Kurve? Wie groß war der Drawdown auf das Eigenkapital am letzten Tag?

Einige dieser Fragen wurden in den Artikeln Test Visualisierung: Funktionalität Erweiterung und Test Visualisierung: Handels-Historie. Aber sie enthalten kein Tool für die schnelle und einfache Anzeige der Informationen über das Konto. In diesem Artikel werden wir Programme zum Zeichnen von Diagrammen des Kontostands während des Tests im Visualisierungs-Modus besprechen. Als ein Bespiel werden wir Kontostand und Kapital Diagramme begutachten. Außerdem enthält der Artikel Anweisungen für den Aufbau von Diagrammen anderer Konto-Attribute.



Ist es einfach?

Man könnte denken, was ist einfacher, als einen Indikator zu schreiben, der den Kontostand anzeigt? Der einzige Puffer ist durch den letzten bekannten Wert des Kontostands nach dem Erhalt von Balken erfüllt. Das ist der Algorithmus.
Es gibt da aber ein Problem: der Indikator, angezeigt im Test Visualisierungs-Chat, hat keinen Zugriff auf den Stand des getesteten Kontos. Alle Funktionen, die für diese Information verantwortlich sind, geben den Wert des Echtgeld Kontos zurück.
In diesem Artikel erfahren wir, wie wir diese "Besonderheit" vermeiden. Zu diesem Zweck müssen wir:

  • die Informationen über den Kontostand von dem Expert Advisor erhalten,
  • ihn an den Indikator übergeben und ihn visualisieren.

Für die Übergabe der Daten verwenden wir Global Variablen des Terminals, und für ihre Visualisierung - Standard-Funktionen benutzerdefinierter Indikatoren.



Es ist einfach!

Wir müssen dem Expert Advisor, der getestet wird, einen Code zum Speichern des Kontostands in die Golabal Variable hinzufügen. Alles, was wir tun müssen, ist eine Zeile am Anfang der Funktion start() hinzuzufügen:

int start()
{
   // saving the last value of the balance into the global variable
   GlobalVariableSet( "vGrafBalance", AccountBalance() );
 
   // Expert Advisor code
 
   return(0);
}


Der Indikator-Code ist nicht viel schwieriger:

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Blue
 
double balance[];
 
int init()
{
    IndicatorShortName( "vGrafBalance" );
    IndicatorDigits( 2 );
 
    SetIndexStyle( 0, DRAW_LINE );
    SetIndexBuffer( 0, balance );
    SetIndexLabel( 0, "Balance" );
}
int start()
{
    balance[0] = GlobalVariableGet( "vGrafBalance" );
    return(0);
}

Das ist alles! Jetzt können wir den Indikator, die neue Version des Expert Advisor kompilieren und den Test starten!

Nach dem Klick auf die Start Schaltfläche und dem Anhängen des Indikators an das Chart, werden wir in etwa dieses sehen:




Sie sehen, die Kontostand-Kurve reflektiert reale Änderungen - beim Schließen jedes Trades ändert sich ihr Wert.



Was kann noch gemacht werden?

Alle andere Diagramme werden auf die gleiche Weise aufgebaut:

  • fügen Sie dem Expert Advisor eine Zeile hinzu, die den Wert der benötigten Global Variable aktualisiert,
  • erstellen Sie einen einfachen Indikator, der den Wert dieser Variable ausliest und auf dem Chart wiedergibt.

Beachten Sie, dass der Name der Variable für jede Eigenschaft einzigartig sein muss, d.h. er darf nicht identisch mit den Namen anderer Variablen sein.
Außerdem sollte er identisch sein mit dem Namen der Variable, die der Indikator ausliest.


Das zweite Beispiel zeigt, wie man ein Kapital-Diagramm dem Kontostand-Diagramm hinzufügt.
Der Code des Expert Advisor:

int start()
{
   // saving the last value of the balance into the global variable
   GlobalVariableSet( "vGrafBalance", AccountBalance() );
   // saving the last value of the equity into the global variable 
   GlobalVariableSet( "vGrafEquity", AccountEquity() );
 
   // Expert Advisor code
 
   return(0);
}


The indicator code:

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
 
double equity[];
 
int init()
{
    IndicatorShortName( "vGrafEquity" );
    IndicatorDigits( 2 );
 
    SetIndexStyle( 0, DRAW_LINE );
    SetIndexBuffer( 0, equity );
    SetIndexLabel( 0, "Equity" );
}
int start()
{
    equity[0] = GlobalVariableGet( "vGrafEquity" );
    return(0);
}

Anwendungsbeispiel:




Wir können einen Indikator an den anderen anhängen, um die Korrelation zweier Eigenschaften anzuzeigen:




Fazit

Der Artikel beschreibt den Vorgang des Erstellens eines Indikators, der den Kontostand visualisiert. Wir haben die einfachsten Indikatoren untersucht - Kontostand- und Kapital-Indikatoren.
Síe können jedes andere Diagramm erstellen: Prozentsatz profitabler Trades, erwartete Auszahlung, durchschnittliche Lot-Größe oder Gewinn einer Position in Punkten - es ist alles verfügbar.

Die Informationen können sehr schön dargestellt werden!


Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/1487

MT4TerminalSync - System für die Synchronisation von MetaTrader 4 Terminals MT4TerminalSync - System für die Synchronisation von MetaTrader 4 Terminals
Dieser Artikel widmet sich dem Thema "Erweitern der Möglichkeiten von MQL4 Programmen mit Funktionen des Betriebssystems und anderen Mitteln der Programmentwicklung". Der Artikel beschreibt ein Beispiel eines Programmsystems, das die Aufgabe der Synchronisierung mehrerer Terminal-Kopien, basierend auf einer einzelnen Quellvorlage, umsetzt.
Atypisches Automatisiertes Trading Atypisches Automatisiertes Trading
Erfolgreiches und komfortables Trading mit der MT4 Plattform ohne detaillierte Marktanalyse - ist das möglich? Kann solches Trading in der Praxis umgesetzt werden? Ich meine, ja. Insbesondere in Bezug auf automatisiertes Trading!
Interaktion zwischen MetaTrader 4 und Matlab über CSV Dateien Interaktion zwischen MetaTrader 4 und Matlab über CSV Dateien
Schritt-für-Schritt Anleitungen wie man einen Daten-Arrays Austausch zwischen MetaTrader 4 und Matlab über CSV Dateien organisiert.
Einführung in die Theorie der Fuzzylogik Einführung in die Theorie der Fuzzylogik
Die Fuzzylogik geht über die üblichen Grenzen der mathematischen Logik und der Mengentheorie hinaus. Der vorliegende Artikel erläutert die Hauptprinzipien dieser Theorie und beschreibt die Inferenz-Systeme vom Typ Mamdani und Sugeno. Darüber hinaus werden im Artikel Beispiele zur Umsetzung unscharfer Modelle anhand dieser zwei Systeme durch die Mittel der FuzzyNet Bibliothek für MQL5 angeführt.