MT4-Tester VS MT5-Tester - Seite 2

 
fxsaber:

Overkill (100.000 USD zu Beginn)

Sie haben eine seltsame Vorstellung von der Beschreibung von Testbedingungen.

Diese Herangehensweise an die Details wirft einen großen Schatten auf alle Ihre späteren Schlussfolgerungen.

 
fxsaber:

In MT4 funktioniert das nicht mehr.

Es funktioniert jetzt in MT4.

Weisen Sie nach und erläutern Sie technisch, wie dies erreicht wird.


Ich habe nicht die Absicht, MT5 zu verunglimpfen. Ich mache nur einen reproduzierbaren Vergleich. Sicherlich ist der MT5-Tester in mancher Hinsicht unerreichbar, aber das MT4-Tuning kann jetzt auch Dinge bieten, die der MT5 nicht hat, die aber sehr gefragt sind. Wir haben gesehen, dass ein genauer Test auf realen benutzerdefinierten Ticks auf MT4 100% wahr ist. Nun, und die Regulierung aller Arten von Einstellungen (Kommission, Einzüge, Regeln für die Aktivierung von schwebenden Aufträgen usw.) des Testers ist vorhanden. Generell gibt es Dinge, die im MT5 noch nicht implementiert sind.

Gibt es genaue Beweise dafür, dass die Zettel und die Aktivierungsregeln genau so funktionieren, wie angegeben?

Können Sie technisch nachweisen und erklären, wie ein externes Programm die Bedingungen für die Auslösung von Aufträgen in der MT4-Tester-Engine ändern kann? Nicht durch Tiefeinspritzung in diesen Motor?

 
Renat Fatkhullin:

Sie haben eine seltsame Vorstellung von der Beschreibung von Testbedingungen.

Eine solche Herangehensweise an die Details wirft einen großen Schatten auf alle Ihre späteren Schlussfolgerungen.

Wenn ich Ihnen etwas nicht gesagt habe, dann war das keine Absicht. Ich glaube, ich habe Ihnen vorhin alle Daten genannt. Aber ich werde es noch einmal wiederholen.

  • Das ist völlig übertrieben.
  • Sie beginnen mit 100 000 USD.
  • Die Bereiche sind auf den Bildschirmfotos zu sehen.
  • Es wurden keine Bedingungen für einen erzwungenen Abbruch des Passes festgelegt.
  • Reale EURUSD M1-Ticks 2017.04.10 - 2017.04.16 (Woche).
  • Nur ein lokaler Agent (1 Kern) ist aktiviert.

 
Gibt es eine Möglichkeit, zu messen, wie viele Prozentsätze in einem bestimmten MT5-Test zugewiesen werden?
Verschlüsselung der Testparameter (Ergebnisse) => Senden an Loopback => Entschlüsselung der Testparameter (Ergebnisse)

Wenn wir 50 ms von der Decke nehmen, erhalten wir 260 * 2 * 50 / 1000 = 26 Sekunden.
Das ist nicht zu wenig.
Es wäre interessant, die tatsächlichen Zahlen zu erfahren.
 

Renat Fatkhullin:
Докажите и объясните технически, как это достигается.

Wie das technisch zu bewerkstelligen ist - ich weiß es nicht. Beweisen Sie es - ich bin nicht sofort bereit (ich werde es nach dem Schlaf tun).

Gibt es oder gibt es genaue Beweise dafür, dass die Schlupf- und Aktivierungsregeln genau so sind wie angegeben?

Können Sie technisch nachweisen und erklären, wie ein externes Programm die Bedingungen für die Auslösung von Aufträgen in der MT4-Tester-Engine ändern kann? Nicht durch Tiefeinspritzung in diesen Motor?

Allein die Tatsache, dass die Spanne seit Jahren nicht festgelegt wurde, deutet darauf hin, dass die Einspritzung tief ist. Diese MT4-Funktion ist in vielen Foren sehr beliebt. Das Einzige, was davon abhält, ist, dass es nicht kostenlos ist. Aber die Studie ist vollwertig, so dass jeder sie ausprobieren kann. Tatsächlich habe ich die Testversion selbst vor ein paar Stunden installiert, um diesen Thread zu erstellen.

Konstruktive kann nur nach ein wenig Ruhe unterstützen. Eigentlich kann jeder die Aussagen schon jetzt überprüfen, wenn er möchte.

 
Erste 20/260 Durchgänge
QR      0       03:29:37.031    Tester  0 : passed in 0:37:27.366
HK      0       03:30:36.307    Tester  1 : passed in 0:00:58.406
MM      0       03:30:40.510    Tester  2 : passed in 0:00:04.196
OF      0       03:30:41.731    Tester  3 : passed in 0:00:01.217
IH      0       03:30:42.538    Tester  4 : passed in 0:00:00.811
MQ      0       03:30:44.880    Tester  5 : passed in 0:00:00.764
LK      0       03:30:45.577    Tester  6 : passed in 0:00:00.687
PL      0       03:30:46.255    Tester  7 : passed in 0:00:00.671
MF      0       03:30:46.929    Tester  8 : passed in 0:00:00.671
GO      0       03:30:47.602    Tester  9 : passed in 0:00:00.671
CO      0       04:15:27.776    Tester  10 : passed in 0:44:40.160
ND      0       04:17:28.477    Tester  11 : passed in 0:01:59.450
HM      0       04:17:34.594    Tester  12 : passed in 0:00:06.099
CK      0       04:17:36.172    Tester  13 : passed in 0:00:01.575
QP      0       04:17:37.080    Tester  14 : passed in 0:00:00.905
LN      0       04:17:37.840    Tester  15 : passed in 0:00:00.765
NG      0       04:17:38.555    Tester  16 : passed in 0:00:00.702
ML      0       04:17:39.244    Tester  17 : passed in 0:00:00.687
RJ      0       04:17:39.925    Tester  18 : passed in 0:00:00.670
CS      0       04:17:40.603    Tester  19 : passed in 0:00:00.671

Eingabeparameter

Sie können sehen, dass es wilde Bremsen gibt, wenn Shift = 1 ist. Zum Beispiel, wie MT4 mit Zero Pass zurechtkommt

2017.05.08 04:47:13.779 EURUSD,M1: 1865415 tick events (7292 bars, 1865515 bar states) processed in 0:00:33.541 (total time 0:00:34.289)

D.h. mehr als 60 Mal schneller.


SZ

Forum für Handel, automatisierte Handelssysteme und Strategietests

Wanzen, Wanzen, Fragen

fxsaber, 2017.04.26 15:08

Bitte zeigen Sie den Bereich und den Schritt der optimierten Parameter in den Optimierungsprotokollen an.

Und auch in Agentenprotokollen finden sich solche Zeilen

NS      0       14:11:00.853    Tester  756 : passed in 0:00:04.789
MJ      0       14:11:03.447    Tester  757 : passed in 0:00:02.574
RM      0       14:11:05.860    Tester  758 : passed in 0:00:02.340

Fügen Sie Informationen über den betreffenden Lauf hinzu - EA-Name und seine Eingabeparameter.

 
fxsaber:

Es ist zu erkennen, dass der Joker bremst, wenn Shift = 1 ist. Zum Beispiel, wie MT4 mit einem Nulldurchgang umgeht

Es war sinnlos, auf den Abschluss der Optimierung zu warten, also habe ich aufgehört.

Die Ausführung eines einzelnen Null-Durchlaufs zeigte (ohne auf den Abschluss zu warten), dass die Leistung des Testers während des Durchlaufs sehr stark abnahm.

Historische Funktionen sind nicht betroffen.

 
fxsaber:

Wenn ich es nicht richtig gesagt habe, habe ich es nicht so gemeint. Ich glaube, ich habe Ihnen bereits alle Einzelheiten genannt. Aber ich will es noch einmal sagen.

  • Völlige Übertreibung.
  • Beginnt bei 100 000 USD.
  • Die Bereiche sind auf den Bildschirmfotos zu sehen.
  • Es wurden keine Bedingungen für einen erzwungenen Abbruch des Passes festgelegt.
  • Reale EURUSD M1-Ticks 2017.04.10 - 2017.04.16 (Woche).
  • Nur ein lokaler Agent (1 Kern) aktiviert.

Ok, hier sind meine Ergebnisse auf dem gleichen (nur Alpari-MT5-Demo-Server):

  • Windows 10 Pro, Intel Xeon E5-2690 @ 2.60GHz

  • 1 Kern: 27 Min. 55 Sek.
    2017.05.08 05:13:09.636 Tester          optimization finished, total passes 260
    2017.05.08 05:13:09.647 Statistics      optimization done in 27 minutes 55 seconds
    2017.05.08 05:13:09.647 Statistics      local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    

  • 8 Kerne: 6 Minuten 11 Sekunden
    2017.05.08 04:38:18.663 Tester          optimization finished, total passes 260
    2017.05.08 04:38:18.674 Statistics      optimization done in 6 minutes 11 seconds
    2017.05.08 04:38:18.674 Statistics      local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    
  • 24 Kerne: 3 Minuten 33 Sekunden
    2017.05.08 05:17:40.990 Tester          optimization finished, total passes 260
    2017.05.08 05:17:41.000 Statistics      optimization done in 3 minutes 33 seconds
    2017.05.08 05:17:41.000 Statistics      local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    

Es ist offensichtlich, dass es keinen Sinn hat, MT5 auf einem einzigen Kern zu optimieren, und selbst auf 8 Kernen geht alles sehr schnell. Ich bin sicher, dass Ihre 14 Minuten in MT4 auf einer CPU mit ähnlicher Leistung pro Kern verbracht werden, so dass die Zeiten verglichen werden können. Ich habe sogar eine Frequenz pro Kern von nur 2,6 Ghz.

Warum gibt es keine lineare Verkürzung der Zeit? Denn die Aufgaben sind aufgrund der Anzahl der Gewerke ungleichmäßig verteilt. Einige Durchgänge haben 100 Abschlüsse (die Berechnung dauert eine Sekunde), andere 230.000 Abschlüsse (bis zu 50 Sekunden). Da die Berechnungsgeschwindigkeit vollständig davon abhängt, wer und wie die längsten Durchläufe verteilt werden, wird der kritische Pfad in Paketen nicht stark reduziert.


Die Verzögerungen sind lediglich auf die ineffiziente Überprüfung des Transaktionsverlaufs in der Release-Version zurückzuführen. Die Verlangsamungsfälle sind Pässe mit 200.000 oder mehr Geschäften.

Das gesamte Beispiel des Expert Advisors ist so geschrieben, dass es nur eine Sache tut - es scannt die gesamte Historie der Trades bei jedem Tick auf eine schrecklich ineffiziente Weise. Das sind 1,8 Millionen vollständige Neuabtastungen des gesamten Verlaufs in einem Durchgang. Außerdem ist der Code der MT5-Auswahl nicht nativ, sondern eine Krücke in Form eines MT4-Wrappers, der noch mehr Kosten verursacht.


Wie ich bereits dargelegt habe, haben wir die Funktionsweise und die Stichprobenziehung bei großen Handelsgeschichten drastisch umgeschrieben, und jetzt gibt es keinen Unterschied mehr in der Tiefe der Geschichte.

Anbei die letzte Build 1598 zum Überprüfen, wo alles schnell läuft. Ersetzen Sie einfach die Dateien im MetaTrader 5-Verzeichnis.

Hier ist das Protokoll der Durchgänge:

OK      0       04:45:17.505    History EURUSD,M1: history cache allocated for 484457 bars and contains 473528 bars from 2016.01.04 00:00 to 2017.04.07 23:59
IR      0       04:45:17.540    History EURUSD,M1: history begins from 2016.01.04 00:00
RF      0       04:45:24.469    Tester  0 : passed in 0:00:07.188
KO      0       04:45:26.727    Tester  1 : passed in 0:00:02.188
CQ      0       04:45:27.857    Tester  2 : passed in 0:00:01.109
QJ      0       04:45:28.758    Tester  3 : passed in 0:00:00.890
NL      0       04:45:29.525    Tester  4 : passed in 0:00:00.750
ME      0       04:45:30.237    Tester  5 : passed in 0:00:00.688
LO      0       04:45:30.923    Tester  6 : passed in 0:00:00.671
RP      0       04:45:31.612    Tester  7 : passed in 0:00:00.672
NJ      0       04:45:32.363    Tester  8 : passed in 0:00:00.734
RS      0       04:45:33.065    Tester  9 : passed in 0:00:00.687
MK      0       04:45:42.777    Tester  10 : passed in 0:00:09.703
HP      0       04:45:45.928    Tester  11 : passed in 0:00:03.094
EN      0       04:45:47.354    Tester  12 : passed in 0:00:01.406
HG      0       04:45:48.313    Tester  13 : passed in 0:00:00.953
LL      0       04:45:49.110    Tester  14 : passed in 0:00:00.781
QJ      0       04:45:49.828    Tester  15 : passed in 0:00:00.703
NS      0       04:45:50.523    Tester  16 : passed in 0:00:00.688
MH      0       04:45:51.215    Tester  17 : passed in 0:00:00.672
DF      0       04:45:51.901    Tester  18 : passed in 0:00:00.672
FO      0       04:45:52.646    Tester  19 : passed in 0:00:00.735
NE      0       04:46:04.884    Tester  20 : passed in 0:00:12.219

Ein Zero Pass mit 216k Trades (Parameter Shift=1, Limit=5) wurde in 7 Sekunden abgearbeitet.

Dateien:
MetaTester64.zip  7571 kb
terminal64.zip  14201 kb
 
Renat Fatkhullin:

Das gesamte Expert Advisor-Beispiel ist so geschrieben, dass es nur eines tut - es scannt erschreckend ineffizient den gesamten Geschäftsverlauf bei jedem Tick. Das sind 1,8 Millionen vollständige Neuabtastungen der gesamten Geschichte des Handels in einem Durchgang. Und der MT5-Code ist nicht nativ, sondern Krücke in Form von MT4-Stil Wrapper, die noch mehr Kosten gibt.

Proof
bool Func1( datetime, datetime ){ return false; };
bool Func2( long ){ return false; };

#define HistorySelect Func1
#define HistorySelectByPosition Func2

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

MT4-Tester VS MT5-Tester

fxsaber, 2017.05.08 01:11

Wenn es irgendeinen Zweifel gibt, dass die MT5 Verlangsamung durch die Verwendung einer Drittanbieter-Bibliothek verursacht wird, können diejenigen, die bereit sind, die einfache MT4 Logik dieses EA in MQL5 auf ihre eigene Weise umschreiben und die Hypothese testen.
 
Renat Fatkhullin:

Wie ich bereits gezeigt habe, haben wir die Funktionsweise und die Stichprobenziehung bei großen Handelsgeschichten drastisch umgeschrieben, so dass es keinen Unterschied mehr in der Tiefe der Geschichte gibt.

Ich habe den neuesten Build 1598 zur Überprüfung beigefügt, bei dem alles schnell funktioniert. Ändern Sie einfach die Dateien im MetaTrader 5-Verzeichnis.

1598 arbeitet viel schneller als 1596. Und es funktioniert auch dort, wo die History-Funktionen überhaupt nicht genutzt werden. Offenbar verursachte das Terminal diese langsamen Funktionen in seinen Eingeweiden während des Laufs.


MT4 optimieren

2017.05.08 02:35:33.074 Lucky: optimization started
2017.05.08 02:49:51.431 Lucky: optimization finished in 0:14:18
2017.05.08 02:49:51.436 There were 260 passes done during optimization


MT5 optimieren

2017.05.08 07:40:38.429 Tester  Experts\MT4Orders\Lucky.ex5 on EURUSD,M1 from 2017.04.10 00:00 to 2017.04.16 00:00
2017.05.08 07:40:38.597 Tester  EURUSD: preliminary downloading of history ticks started, it may take quite a long time
2017.05.08 07:40:39.600 Tester  EURUSD: preliminary downloading of history ticks completed, 100.38 Kb in 0:01.170 (85.80 Kb/sec)
2017.05.08 07:40:39.600 Tester  EURUSD: ticks data begins from 2016.11.01 00:00
2017.05.08 07:40:39.600 Tester  complete optimization started
2017.05.08 07:40:39.600 Tester  size of initial task batch is 260
2017.05.08 07:40:39.612 Core 1  agent process started
2017.05.08 07:40:39.612 Core 1  connecting to 127.0.0.1:3000
2017.05.08 07:40:41.620 Core 1  connected
2017.05.08 07:40:41.622 Core 1  authorized (agent build 1598)
2017.05.08 07:40:42.771 Core 1  common synchronization completed
2017.05.08 07:40:42.797 Core 1  EURUSD: ticks synchronized already [43 bytes]
2017.05.08 08:04:54.332 Tester  optimization finished, total passes 260
2017.05.08 08:04:54.342 Statistics      optimization done in 24 minutes 16 seconds
2017.05.08 08:04:54.342 Statistics      local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2017.05.08 08:04:54.342 Core 1  connection closed


Jetzt ist MT5 1,7 Mal langsamer als MT4.


ZS Nicht alle Läufe passten perfekt zusammen. Einer der drei lügt also definitiv (MT4+TDS, MT5, MT4Orders). Wir werden suchen.