Testeur MT4 VS Testeur MT5 - page 2

 
fxsaber:

Overkill (100 000 USD au départ)

Vous avez une étrange notion de la description des conditions de test.

Cette approche du détail jette une grande ombre sur toutes vos conclusions ultérieures.

 
fxsaber:

Cela ne fonctionne pas maintenant dans MT4.

Il fonctionne maintenant dans MT4.

Prouvez et expliquez techniquement comment cela est possible.


Je n'ai pas l'intention de dénigrer MT5. Je ne fais qu'établir une comparaison reproductible. Il est certain que le testeur MT5 est inatteignable à certains égards, mais le tuning MT4 est aussi maintenant capable de donner des choses que le MT5 n'a pas, mais qui sont vraiment en demande. Nous avons constaté qu'un test précis sur des ticks personnalisés réels sur MT4 est 100% vrai. Eh bien, et le règlement de toutes sortes de paramètres (commission, indentations, règles d'activation des ordres en cours, etc.) du testeur est là. En général, il y a des choses qui ne sont pas encore implémentées dans MT5.

Existe-t-il ou y a-t-il des preuves précises que les glissements et les règles d'activation fonctionnent exactement comme ils sont énoncés ?

Pouvez-vous prouver et expliquer techniquement comment un programme externe peut modifier les conditions de déclenchement des ordres dans le moteur du testeur MT4 ? Pas par injection profonde dans ce moteur ?

 
Renat Fatkhullin:

Vous avez une étrange notion de la description des conditions de test.

Cette approche du détail jette une grande ombre sur toutes vos conclusions ultérieures.

Si je ne t'ai pas dit quelque chose, je ne l'ai pas fait exprès. Je pense que je vous ai donné toutes les données plus tôt. Mais je vais le répéter une fois de plus.

  • Complètement exagéré.
  • Vous commencez avec 100 000 USD.
  • Les gammes sont sur les captures d'écran.
  • Aucune condition pour une rupture forcée du col n'a été fixée.
  • Ticks réels EURUSD M1 2017.04.10 - 2017.04.16 (semaine).
  • Un seul agent local (1 noyau) est activé.

 
Existe-t-il un moyen de mesurer réellement le nombre de pourcentages attribués dans un test MT5 donné ?
Cryptage des paramètres de test (résultats) => Envoi au loopback => Décryptage des paramètres de test (résultats)

Si nous prenons 50 ms du plafond, nous obtenons 260 * 2 * 50 / 1000 = 26 sec.
Ce qui n'est pas trop peu.
Il serait intéressant de connaître les chiffres réels.
 

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

Je ne sais pas comment cela est techniquement possible. Prouvez-le - pas prêt tout de suite (je le ferai après avoir dormi).

Existe-t-il ou y a-t-il des preuves précises que les règles de glissement et d'activation sont exactement celles qui sont énoncées ?

Pouvez-vous prouver et expliquer techniquement comment un programme externe peut modifier les conditions de déclenchement des ordres dans le moteur du testeur MT4 ? Pas par injection profonde dans ce moteur ?

Le simple fait que l'écart n'ait pas été fixé depuis des années suggère que l'injection est profonde. Cette fonctionnalité de MT4 est très populaire sur de nombreux forums. La seule chose qui le décourage, c'est qu'il n'est pas gratuit. Mais l'essai est complet, donc tout le monde peut l'essayer. En fait, j'ai installé l'essai lui-même il y a quelques heures pour créer ce fil de discussion.

Constructive ne pourra supporter qu'après un peu de repos. En fait, chacun peut vérifier les déclarations dès maintenant s'il le souhaite.

 
Les 20/260 premiers passages
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

Paramètres d'entrée

Vous pouvez voir qu'il y a des freins sauvages lorsque Shift = 1. Par exemple, voici comment MT4 se débrouille avec le zero pass

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)

C'est-à-dire plus de 60 fois plus rapide.


SZ

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Bugs, bugs, questions

fxsaber, 2017.04.26 15:08

Veuillez indiquer la plage et l'étape des paramètres optimisés dans les journaux de l'optimiseur.

Et aussi dans les journaux des agents, des lignes telles que

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

Accompagnez le tout d'informations sur l'exécution concernée - nom de l'EA et ses paramètres d'entrée.

 
fxsaber:

On peut voir que le sauvage freine lorsque Shift = 1. Par exemple, voici comment MT4 fait face à un passage par zéro.

Il devenait inutile d'attendre que l'optimisation se termine, alors j'ai arrêté.

L'exécution d'une seule passe zéro a montré (sans attendre l'achèvement) que les performances du testeur diminuaient fortement pendant l'exécution de la passe.

Les fonctions historiques ne sont pas concernées.

 
fxsaber:

Si je ne l'ai pas dit correctement, je ne le pensais pas. Je pense vous avoir donné tous les détails plus tôt. Mais je vais le répéter.

  • Totalement exagéré.
  • À partir de 100 000 USD.
  • Les gammes sont sur les captures d'écran.
  • Aucune condition pour une rupture forcée du col n'a été fixée.
  • Ticks réels EURUSD M1 2017.04.10 - 2017.04.16 (semaine).
  • Un seul agent local (1 noyau) est activé.

Ok, voici mes résultats sur le même (seul serveur Alpari-MT5-Demo) :

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

  • 1 noyau : 27 minutes 55 secondes
    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 cœurs : 6 minutes 11 secondes
    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 cœurs : 3 minutes 33 secondes
    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%)
    

Il est clair qu'il n'y a aucun intérêt à optimiser dans un seul cœur dans MT5 et même sur 8 cœurs, tout va très vite. Je suis sûr que vos 14 minutes dans MT4 sont effectuées sur un CPU proche en puissance par cœur, donc les temps peuvent être comparés. J'ai même une fréquence par cœur de seulement 2,6 Ghz.

Pourquoi n'y a-t-il pas de réduction linéaire du temps ? Parce que les tâches sont inégales en raison du nombre de métiers. Certaines passes comportent 100 transactions (le calcul prend une seconde), et d'autres 230 000 transactions (jusqu'à 50 secondes). Comme la vitesse de calcul est entièrement déterminée par qui et comment sont distribuées les passes les plus longues, le chemin critique dans les paquets n'est pas fortement réduit.


Vos retards sont purement dus à l'inefficacité de l'analyse de l'historique des transactions dans la version de base. Les cas de ralentissement sont des passes avec 200 000 transactions ou plus.

L'exemple entier du conseiller expert est écrit de telle sorte qu'il ne fait qu'une seule chose - il analyse l'historique complet des transactions à chaque tick d'une manière terriblement inefficace. Cela représente 1,8 million de rescans complets de l'histoire entière en une seule passe. De plus, le code des sélections MT5 n'est pas natif, mais une béquille sous forme de wrapper de style MT4, ce qui entraîne encore plus de dépenses.


Comme je l'ai montré précédemment, nous avons radicalement réécrit le fonctionnement et l'échantillonnage des grandes histoires commerciales et maintenant il n'y a aucune différence dans la profondeur de l'histoire.

J'ai joint la dernière version 1598 pour vérifier, où tout fonctionne rapidement. Il suffit de remplacer les fichiers dans le répertoire MetaTrader 5.

Voici le journal des passages :

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

Un zero pass avec 216k trades (paramètres Shift=1, Limit=5) a fonctionné en 7 secondes.

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

L'ensemble de l'exemple de conseiller expert est écrit de telle manière qu'il ne fait qu'une seule chose - il analyse de manière terriblement inefficace l'historique complet des transactions à chaque tick. Cela représente 1,8 million de nouveaux balayages complets de l'ensemble de l'historique des échanges en un seul passage. Et le code MT5 n'est pas natif, mais une béquille sous la forme d'un wrapper de style MT4, ce qui entraîne encore plus de dépenses.

Preuve
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 sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Testeur MT4 VS Testeur MT5

fxsaber, 2017.05.08 01:11

S'il y a un doute sur le fait que le ralentissement de MT5 est dû à l'utilisation d'une bibliothèque tierce, ceux qui le souhaitent peuvent réécrire la logique MT4 simple de cet EA dans MQL5 à leur manière et tester l'hypothèse.
 
Renat Fatkhullin:

Comme je l'ai montré précédemment, nous avons radicalement réécrit le fonctionnement et l'échantillonnage des grandes histoires commerciales et maintenant il n'y a pas de différence dans la profondeur de l'histoire.

J'ai joint la dernière version 1598 pour le test, où tout fonctionne rapidement. Il suffit de modifier les fichiers dans le répertoire MetaTrader 5.

1598 fonctionne beaucoup plus rapidement que 1596. Et cela fonctionne même dans les endroits où les fonctions d'histoire ne sont pas du tout utilisées. Apparemment, le terminal a causé ces fonctions lentes dans ses entrailles pendant la course.


Optimisation de MT4

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


Optimisation de MT5

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


Maintenant, MT5 est 1,7 fois plus lent que MT4.


ZS Toutes les courses ne correspondent pas parfaitement. Donc l'un des trois ment certainement (MT4+TDS, MT5, MT4Orders). Nous allons chercher.