Test Visualisierung: Kontostand Charts

Andrey Khatimlianskii | 19 Februar, 2016

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!