und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
CTradeStatistics - Bibliothek für den MetaTrader 5
- Ansichten:
- 950
- Rating:
- Veröffentlicht:
- 2016.05.12 08:18
- 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
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.
up3x1Dieser 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.
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 SignaleEin einfaches Signal beim Kreuzen von zwei gleitenden Durchschnitten für Expert Advisor Wizards