Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Bibliotheken

CTradeStatistics - Bibliothek für den MetaTrader 5

Ansichten:
950
Rating:
(48)
Veröffentlicht:
2016.05.12 08:18
\MQL5\Scripts\ \MQL5\Include\
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Die CTradeStatistics Klasse enthält alle Berechnungen für die ENUM_STATISTICS Enumerationsparameter.

Alle Parameter, ausgenommen dem Drawdown, können mit dieser Klasse auf Basis von historischen Transaktionsdaten berechnet werden.

Der Hauptzweck dieser Klasse ist die Umgehung der Einschränkung der Funktion TesterStatistics(), d.h., das es nun möglich ist, alle statistischen Daten während des Tests und auch außerhalb des Strategietesters zu erhalten.

Ein Beispiel für die Verwendung außerhalb des Testers

Alle Parameter werden durch den Aufruf von CTradeStatistics::Calculate() berechnet. Nach einer erfolgreichen Ausführung dieser Funktion, sind die Ergebnisse über den Aufruf von verschiedenen Methoden, deren Namen gleich sind mit denen der statistischen Parameter, zugänglich. 

Beispielcode:

CTradeStatistics m_stat;

if(m_stat.Calculate()) PrintFormat("LR Correlation: %.2f",m_stat.LRCorrelation());
else Print(m_stat.GetLastErrorString());

Ergebnis:

2012.09.13 08:52:19 TradeStatistics (EURUSD,H1) LR Correlation: 0.97

 

Die CTradeStatistics::PrintStatistics()-Funktion kann dazu verwendet werden alle Ergebnisse in das Log zu schreiben.

if(m_stat.Calculate()) PrintStatistics();

Ein einfaches Beispiel für die Verwendung dieser Klasse kann in dem Skript TradeStatistics.mq5 nachgesehen werden.

Das TradeStatisticsPanel panel (Bedienfeld) wurde für eine bessere Darstellung der Ergebnisse entwickelt. 

Ein Beispiel für die Verwendung innerhalb des Testers:

Um eine fehlerfreie Berechnung des Drawdowns erhalten zu können, sollte die Funktion CTradeStatistics::CalculateEquityDD() verwendet werden.

Beispielcode:

#include <CTradeStatistics.mqh>
CTradeStatistics m_stat;

//+----------------------------------------------------------------
//| Expert Initialisierungs-Function                                   |
//+----------------------------------------------------------------
int OnInit()
  {
   m_stat.CalculateEquityDD(CALC_INIT);

   return(0);
  }
//+----------------------------------------------------------------
//| Expert deinitialization Funktion                                 |
//+----------------------------------------------------------------
void OnDeinit(const int reason)
  {
   m_stat.CalculateEquityDD(CALC_DEINIT);

   if(m_stat.Calculate())m_stat.PrintStatistics();

  }
//+----------------------------------------------------------------
//| Expert tick Funktion                                             |
//+----------------------------------------------------------------
void OnTick()
  {
   m_stat.CalculateEquityDD(CALC_TICK);

  }

Beachten Sie, dass Sie alle Werte der statistischen Indikatoren zu jeder Zeit im Programm abrufen können und nicht nur am Ende des Testlaufes mit den Funktionen OnTester() oder OnDeinit(). Alle Berechnungen können in der MethodeOnTrade() aktualisiert werden, wie es auch das folgende Beispiel zeigt:

void OnTrade()
  {
//--- block repeated requests at same sec.
   static datetime time_on_trade;
   if(time_on_trade==TimeTradeServer())return;
   time_on_trade=TimeTradeServer();

//--- update statistics
   if(!m_stat.Calculate())Print(m_stat.GetLastErrorString());

  }


Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/1081

up3x1_Krohabor_D up3x1_Krohabor_D

Dieser Expert Advisor basiert auf drei gleitenden Durchschnitten und der Ausstieg wird über Stop Loss oder Take Profit vorgenommen. Es wird ein Einstieg in Trendrichtung vorgenommen.

up3x1 up3x1

Dieser Expert Advisor basiert auf drei gleitenden Durchschnitten und der Ausstieg wird über Stop Loss oder Take Profit vorgenommen. Es wird eine Marktposition eröffnet, nach der Feststellungen eines Trends nach einem Trendwechsel.

ATR_OpenIndent_v2 ATR_OpenIndent_v2

Dieser Indikator zeigt den Eröffnungspreis der höheren Timeframe (z.B., 1-Tag Timeframe) an und zeichnet eine Linie in Höhe des Preises und eine Bandbreite an.

Trading Signal Module: plain MA crossover Signale Trading Signal Module: plain MA crossover Signale

Ein einfaches Signal beim Kreuzen von zwei gleitenden Durchschnitten für Expert Advisor Wizards