Analyse der Testergebnisse und Optimierung im MetaTrader 5 Strategie-Tester - Seite 5

 
Anatoli Kazharski:

Das Gleiche wird auch jetzt getan. Laden Sie die Symbole während des Prüfvorgangs.

Oder unmittelbar vor Beginn der Prüfung die ausgewählten Symbole für die Prüfung in der Liste definieren und anhängen, falls eine solche Liste existiert. Wenn Sie feststellen, dass die Symbole im Cache nicht mehr benötigt werden, können Sie sie auch nicht im Test verwenden.

Ich kann in jedem Fall keine endgültige Antwort geben, sondern nur Vermutungen anstellen und Vorschläge für Optionen machen.

Gut.

Der Experte handelt nicht. Da jedoch die Möglichkeit des Markteintritts geprüft werden soll, wird ein weiteres Paar zusätzlich zum Hauptpaar für die Berechnung der Einschussanforderungen geladen. Die Daten von zwei Paaren werden zwischengespeichert, so dass beim nächsten Test keine Zeit für das Auspacken und Vorbereiten der Daten verloren geht.

Der Expert Advisor beginnt zu handeln. Das zweite fehlende Paar wird zur Berechnung des Gewinns geladen. Diese Daten werden wieder zwischengespeichert, so dass beim nächsten Test keine Zeit für die Dekomprimierung und Aufbereitung der Daten verloren geht.

Ich persönlich mag es nicht, Zeit mit der "unnötigen" Anwendung von Häkchen in der Geschichte zu verschwenden. Alle anderen lehnen es ab, viel mehr Zeit mit dem Wiederauspacken und Aufbereiten der Daten zu verlieren.

OK, Sie antworten. Warum nicht, solange es keine Aufforderung gibt, "überflüssige" Tools ankreuzen? "Gute Frage" (ts) Und in diesem Moment, dem Moment der Anfrage, muss man eine Geschichte aufbauen (und darüber hinaus Zecken haben, weil jemand sie auch anfordern kann). Der Zeitverlust wird noch größer sein, als wenn wir die Geschichte schrittweise aufbauen (wie wir es jetzt tun).

Es gibt keine Garantie, dass ein Experte, der eine bestimmte Geschichte verwendet, diese Geschichte nicht auch bei anderen Pässen einsetzt. 99 Prozent Wahrscheinlichkeit, dass die Geschichte in den folgenden Durchgängen dieselbe ist wie in den vorherigen Durchgängen

 
Ich stimme mit Slava überein - das Beispiel ist sphärisch.
 
Slava:

Gut.

Der Expert Advisor handelt nicht. Da jedoch die Möglichkeit eines Markteintritts geprüft wird, wird zusätzlich zum Hauptpaar ein weiteres Paar für die Berechnung der Einschussanforderungen geladen. Die Daten von zwei Paaren werden zwischengespeichert, so dass beim nächsten Test keine Zeit für das Auspacken und Vorbereiten der Daten verloren geht.

Der Expert Advisor beginnt zu handeln. Das zweite fehlende Paar wird zur Berechnung des Gewinns geladen. Diese Daten werden wieder zwischengespeichert, so dass beim nächsten Test keine Zeit für die Dekomprimierung und Aufbereitung der Daten verloren geht.

Ich persönlich mag es nicht, Zeit mit der "unnötigen" Anwendung von Häkchen in der Geschichte zu verschwenden. Alle anderen lehnen es ab, viel mehr Zeit mit dem Wiederauspacken und Aufbereiten der Daten zu verlieren.

OK, Sie antworten. Warum nicht, solange es keine Aufforderung gibt, "überflüssige" Tools ankreuzen? "Gute Frage" (ts) Und in diesem Moment, dem Moment der Anfrage, muss man eine Geschichte aufbauen (und darüber hinaus Zecken haben, weil jemand sie auch anfordern kann). Der Zeitverlust wird noch größer sein, als wenn wir die Geschichte schrittweise aufbauen (wie wir es jetzt tun).

Sie können nicht zuverlässig vorhersagen, dass der Expert Advisor, der eine bestimmte Historie verwendet, dieselbe Historie nicht auch bei anderen Durchgängen verwenden wird. 99 % Wahrscheinlichkeit, dass die in den nachfolgenden Prüfdurchgängen verwendete Historie dieselbe ist wie die in den vorherigen Durchgängen verwendete

Ich bestehe nicht wirklich darauf. Sie hätten gleich mit dieser Klarstellung beginnen können. Wenn Sie sicher wissen, dass Ihre Option die beste ist, können Sie Zeit sparen, ohne Zeit mit Diskussionen zu verschwenden. Aber eine Klarstellung ist notwendig, wenn ich darf, denn ich bin nicht sicher, ob ich verstanden wurde.

Geht es bei dieser Klärung um den Optimierungsprozess?

Was, wenn es nur um den einzelnen Testprozess geht? Warum die Ticks von GBPUSD und AUDUSD aus früheren Tests, wenn nur EURUSD getestet wird?

Ich verstehe einfach nicht, in welchem Fall wir Ticks anderer Symbole (GBPUSD und AUDUSD) benötigen, wenn nur ein Symbol (EURUSD) benötigt wird. Ich benötige einige konkrete Beispiele und Zahlen.

Was ist, wenn ich bereits 20 Symbole auf einmal getestet habe? Warum brauche ich Ticks von all diesen Symbolen, wenn ich nur eines testen muss? Je mehr Zeichen im vorherigen Einzeltest verwendet wurden, desto länger dauert der Test mit nur einem Zeichen. Ich kann ja zu Zeichentests aus einer ganz anderen Zeichengruppe wechseln. Und die Daten der vorherigen Zeichengruppe brauche ich im Moment überhaupt nicht.

Und über welche Art von Zeit sprechen wir (Entpacken/Vorbereiten)? Wie lange dauert es, die Daten zu entpacken und vorzubereiten? Und wie viel Zeit vergeht bei einem Einzeltest nach einem Multisymboltest?

Ich werde die Tests jetzt durchführen und Ihnen die Ergebnisse zeigen. Ich brauche eine Klarstellung zu einem konkreten Beispiel.

 
Anatoli Kazharski:
Das Kontrollkästchen "Caches zurücksetzen" fehlt.
 

1 Symbol: EURUSD

2018.01.29 19:30:33.875 Core 1  EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in 0:00:00.078. Test passed in 0:00:27.266 (including ticks preprocessing 0:00:01.282).
2018.01.29 19:30:33.875 Core 1  EURUSD,M5: total time from login to stop testing 0:00:27.344 (including 0:00:00.078 for history data synchronization)
2018.01.29 19:30:33.875 Core 1  837 Mb memory used including 8 Mb of history data, 512 Mb of tick data

//---

5 Symbole: EURUSD,GBPUSD,USDJPY,AUDUSD,USDCAD

2018.01.29 19:59:39.750 Core 1  EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in 0:00:00.078. Test passed in 0:11:52.156.
2018.01.29 19:59:39.750 Core 1  EURUSD,M5: total time from login to stop testing 0:11:52.234 (including 0:00:00.078 for history data synchronization)
2018.01.29 19:59:39.750 Core 1  130637614 total ticks for all symbols
2018.01.29 19:59:39.750 Core 1  AUDUSD: passed to tester 20717720 ticks
2018.01.29 19:59:39.750 Core 1  EURUSD: passed to tester 26169180 ticks
2018.01.29 19:59:39.750 Core 1  GBPUSD: passed to tester 27742039 ticks
2018.01.29 19:59:39.750 Core 1  USDCAD: passed to tester 23409978 ticks
2018.01.29 19:59:39.750 Core 1  USDJPY: passed to tester 32598697 ticks
2018.01.29 19:59:39.750 Core 1  1574 Mb memory used including 44 Mb of history data, 1088 Mb of cached tick data (total memory for tick data 2495 Mb)

//---

Nun müssen wir erneut einen Test mit einem einzelnen Symbol durchführen.

1 Symbol: EURUSD

2018.01.29 20:04:25.737 Core 1  EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in 0:00:00.078. Test passed in 0:01:34.203.
2018.01.29 20:04:25.737 Core 1  EURUSD,M5: total time from login to stop testing 0:01:34.281 (including 0:00:00.078 for history data synchronization)
2018.01.29 20:04:25.737 Core 1  130637614 total ticks for all symbols
2018.01.29 20:04:25.737 Core 1  AUDUSD: passed to tester 20717720 ticks
2018.01.29 20:04:25.737 Core 1  EURUSD: passed to tester 26169180 ticks
2018.01.29 20:04:25.737 Core 1  GBPUSD: passed to tester 27742039 ticks
2018.01.29 20:04:25.737 Core 1  USDCAD: passed to tester 23409978 ticks
2018.01.29 20:04:25.737 Core 1  USDJPY: passed to tester 32598697 ticks
2018.01.29 20:04:25.737 Core 1  1288 Mb memory used including 44 Mb of history data, 1024 Mb of cached tick data (total memory for tick data 2495 Mb)

//---

Wozu brauchen wir in diesem Fall Häkchen bei diesen Symbolen? Aufgrund dieser zusätzlichen Belastung hat sich die Testzeit für ein Symbol um mehr als das Dreifache verlängert. Die Zeitspanne beträgt ein Jahr. Was wäre, wenn ich einen Test über 5 Jahre durchführen müsste?

 
fxsaber:
Das Kontrollkästchen "Caches zurücksetzen" fehlt.
Möglicherweise ist es möglich, auf das Kontrollkästchen zu verzichten. Sie muss nur gefunden werden.
 
fxsaber:
Das Kontrollkästchen "Caches zurücksetzen" fehlt.

Wir hatten so einen (ähnlichen) Tick in vier. Wir haben sie entfernt. Denn es gab ein Missverständnis bei den meisten Nutzern und eine Menge Fragen.

 
Slava:

Wir hatten so einen (ähnlichen) Tick in vier. Wir haben sie entfernt. Da es bei der Masse der Nutzer zu Missverständnissen und vielen Fragen kam.

Es gibt immer die terminal.ini:)
 

Die nächsten drei Beiträge werden veröffentlicht:

  1. Wie lange dauert ein EA-Test im Strategie-Tester?
  2. Wie lange dauert es, die Parameter auf einem Computer zu optimieren?
  3. Wie lange dauert es, die Parameter in der Cloud zu optimieren?

Ich werde für die Tests meinen eigenen Expert Advisor verwenden. Sie können dieselbe Testreihe durchführen und Ihre Ergebnisse präsentieren. In meinem Fall erhalte ich im Laufe eines Jahres mehrere Dutzend oder Tausende von Angeboten.


1. Wie lange dauert ein Test eines Expert Advisors im Strategie-Tester?

Betrachten wir als Beispiel die Testergebnisse im ModusNur offener Preis.M5-Zeitrahmen(Fünf-Minuten-Daten). KontoartAbsicherung. Zeitrahmen ein Jahr(2017.01.01-2018.01. 01).

Symbol: EURUSD

EURUSD,M5: 281877 ticks, 74300 bars generated. Test passed in 0:00:01.453.
282883 total ticks for all symbols
EURUSD: passed to tester 282883 ticks
466 Mb memory used including 8 Mb of history data, 64 Mb of tick data

Aus den Ergebnissen des obigen Tests geht hervor, dass die Prüfung eines Symbols1-1,5 Sekunden über einen Zeitraum von einem Jahr dauert.

Versuchen wir nun, ein Währungspaar ohne Kontowährung zu testen. Wenn Ihr Konto zum Beispiel auf USD lautet, nehmen wir für den Test ein Symbol, das nicht auf USD lautet. Zum Beispiel EURCHF. Der Grund dafür ist, dass für die korrekte Berechnung der Margin-Anforderungen und Gewinne in diesem Fall der Test die Symbole EURUSD und USDCHF verwendet, was wiederum die Testzeit erhöht.

Symbol: EURCHF

EURCHF,M5: 281063 ticks, 74273 bars generated. Test passed in 0:00:01.860.
846826 total ticks for all symbols
EURCHF: passed to tester 282468 ticks
EURUSD: passed to tester 282883 ticks
USDCHF: passed to tester 281475 ticks
467 Mb memory used including 8 Mb of history data, 64 Mb of tick data

Wie wir sehen können, wird der Test für die Quersätze ungefähr doppelt so lang sein. In diesem Fall dauerte der Test1,5-2 Sekunden. Versuchen wir nun, es an mehreren Symbolen zu testen.

Symbole: EURUSD,GBPUSD,USDJPY

EURUSD,M5: 282881 ticks, 74300 bars generated. Environment synchronized in 0:00:00.031. Test passed in 0:00:07.172.
EURUSD,M5: total time from login to stop testing 0:00:07.203 (including 0:00:00.031 for history data synchronization)
853054 total ticks for all symbols
EURUSD: passed to tester 282883 ticks
GBPUSD: passed to tester 285067 ticks
USDJPY: passed to tester 285104 ticks
628 Mb memory used including 26 Mb of history data, 64 Mb of tick data

Symbole: EURCHF,AUDCAD,AUDNZD

EURCHF,M5: 282465 ticks, 74273 bars generated. Environment synchronized in 0:00:00.031. Test passed in 0:00:12.109.
EURCHF,M5: total time from login to stop testing 0:00:12.140 (including 0:00:00.031 for history data synchronization)
2264405 total ticks for all symbols
AUDCAD: passed to tester 284995 ticks
AUDNZD: passed to tester 285398 ticks
AUDUSD: passed to tester 282069 ticks
EURCHF: passed to tester 282468 ticks
EURUSD: passed to tester 282883 ticks
NZDUSD: passed to tester 282153 ticks
USDCAD: passed to tester 282964 ticks
USDCHF: passed to tester 281475 ticks
854 Mb memory used including 26 Mb of history data, 192 Mb of tick data

Wenn mehrere Symbole geprüft werden, verlangsamt sich die Prüfgeschwindigkeit. Leider ist es nicht möglich, es jetzt anders zu machen, ohne die Genauigkeit der Tests zu verlieren. Aber, wie bereits erwähnt, werden die Entwickler des Terminals im nächsten Update die Möglichkeiten von MQL5 erweitern und die Fähigkeit hinzufügen, Multi-Symbol-Tests viel schneller durchzuführen.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 

2. Wie lange dauert es, die Parameter meines Computers zu optimieren?

Lassen Sie uns als Beispiel versuchen, die Parameter für die Daten desAlpari-Brokers für verschiedene Symbole im Modus"Open price only" zu optimieren.M5-Zeitrahmen(Fünf-Minuten-Daten). Art desHedge-Kontos. Zeitrahmen ein Jahr(2017.01.01-2018.01. 01).

Symbol: EURUSD

result cache used 7953 times
genetic optimization finished on pass 15616 (of 504330836375520000)
optimization done in 28 minutes 56 seconds
local 7663 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

Symbol: EURCHF

result cache used 2507 times
genetic optimization finished on pass 8704 (of 504330836375520000)
optimization done in 32 minutes 50 seconds
local 6197 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

Symbole: EURUSD,GBPUSD,USDJPY

result cache used 9892 times
genetic optimization finished on pass 18176 (of 504330836375520000)
optimization done in 2 hours 15 minutes 03 seconds
local 8284 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

Symbole: EURCHF,AUDCAD,AUDNZD

result cache used 7281 times
genetic optimization finished on pass 13312 (of 504330836375520000)
optimization done in 3 hours 13 minutes 37 seconds
local 6031 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

In naher Zukunft wird dasMetaTrader 5-Terminal aktualisiert, und die Geschwindigkeit der Tests und der Optimierung wird viel schneller sein. Vielleicht ist es dann möglich, die Optimierung auch im Modus "Alle Zecken" durchzuführen. Darüber hinaus wird die Nutzung desMQL5 Cloud Network-Dienstes profitabler, da die Geschwindigkeit der Optimierung zunimmt.

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Большую часть времени современные компьютеры простаивают и не используют всех возможностей процессора. Мы предлагаем задействовать их с пользой. Вы можете сдавать мощности вашего компьютера другим участникам нашей сети для выполнения разнообразных...
Grund der Beschwerde: