Testeur de stratégie MetaTrader 5 : bugs, anomalies, suggestions d'amélioration - page 22

 

Slava:
В OnInit торговля точно ведётся?

Oui. Voici un journal et une capture d'écran

2019.11.01 00:00:00   market sell 2.00 EURUSD (1.11514 / 1.11522)
2019.11.01 00:00:00   deal #2  sell 2.00 EURUSD at 1.11514 done (based on order #2)
2019.11.01 00:00:00   deal performed [#2  sell 2.00 EURUSD at 1.11514]
2019.11.01 00:00:00   order performed sell 2.00 at 1.11514 [#2  sell 2.00 EURUSD at 1.11514]
2019.11.01 00:00:00   market buy 1.00 EURUSD (1.11514 / 1.11522)
2019.11.01 00:00:00   deal #3  buy 1.00 EURUSD at 1.11522 done (based on order #3)
2019.11.01 00:00:00   deal performed [#3  buy 1.00 EURUSD at 1.11522]
2019.11.01 00:00:00   order performed buy 1.00 at 1.11522 [#3  buy 1.00 EURUSD at 1.11522]
2019.11.01 00:00:00   close position #3  buy 1.00 EURUSD by position #2  sell 2.00 EURUSD (1.11514 / 1.11522)
2019.11.01 00:00:00   deal #4  sell 1.00 EURUSD at 1.11514 done (based on order #4)
2019.11.01 00:00:00   deal #5  buy 1.00 EURUSD at 1.11522 done (based on order #4)
 tester stopped because OnInit returns non-zero code


Et comment allez-vous appliquer GetLastError avec votre code ? Et une autre question. Êtes-vous sûr de l'ordre de calcul des arguments de la fonction?

Nous parlons du testeur. Pourquoi avez-vous besoin de GetLastError dans cet exemple ? Et l'ordre n'est pas important dans ce cas non plus.

 


Lorsque vous copiez une valeur à partir d'ici (et éventuellement à partir d'autres endroits), le bloc de paramètres entier est alors collé au lieu de la valeur. Je m'attendais à copier ce que j'ai mis en évidence).

 

Les agents surchargent la mémoire en essayant de parcourir le Mexique sans rien faire, et leur nombre de tâches ne fait qu'augmenter. Les journaux montrent les erreurs suivantes :

2019.11.02 18:35:19.317 Core 02 USDMXN.m: ticks synchronized already [47 bytes]
2019.11.02 18:35:21.021 Core 01 agent process started on 127.0.0.1:3000
2019.11.02 18:35:21.282 Core 01 connecting to 127.0.0.1:3000
2019.11.02 18:35:21.282 Core 01 connected
2019.11.02 18:35:21.291 Core 01 authorized (agent build 2190)
2019.11.02 18:35:21.291 Core 01 genetic pass (0, 61, 17) started
2019.11.02 18:35:21.335 Core 01 common synchronization completed
2019.11.02 18:35:21.362 Core 01 USDMXN.m: ticks synchronized already [47 bytes]
2019.11.02 18:36:08.980 Core 04 genetic pass (0, 76) tested with error "history processing error (14 USDMXN.m)" in 0:01:36.640
2019.11.02 18:36:08.980 Core 04 genetic pass (0, 76) returned to queue
2019.11.02 18:36:08.980 Core 04 16 rejected passes returned to queue
2019.11.02 18:36:08.980 Core 04 genetic pass (0, 11, 17) started
2019.11.02 18:36:09.081 Core 04 connection closed
2019.11.02 18:36:09.090 Core 04 17 genetic passes returned to queue as not processed
2019.11.02 18:36:19.013 Core 04 agent process started on 127.0.0.1:3003
2019.11.02 18:36:19.202 Core 04 connecting to 127.0.0.1:3003
2019.11.02 18:36:19.202 Core 04 connected
2019.11.02 18:36:19.211 Core 04 authorized (agent build 2190)
2019.11.02 18:36:19.211 Core 04 genetic pass (0, 53, 17) started
2019.11.02 18:36:19.275 Core 04 common synchronization completed
 
fxsaber:

Analysons maintenant la situation sur le morceau mis en évidence.


vous devez déplacer le curseur, vous souvenir de la date qui apparaît, ouvrir le graphique d'exécution, vous rendre à l'endroit voulu dans l'historique des transactions et double-cliquer sur la ligne correspondante dans le tableau.


Tout cela peut-il être remplacé par un double clic sur le point du graphique ci-dessus ?


J'ai publié cette suggestion il y a quelques années dans le Service Desk.
S'il est possible d'interagir avec le graphique d'exécution sous la forme d'un message pop-up, il est également possible d'implémenter une transition par double-clic vers l'historique.
 
Je suis tombé sur cette réaction en appuyant sur le bouton Start de la passe unique.
2019.11.03 18:25:05.459 Core 1  connecting to 127.0.0.1:3000
2019.11.03 18:25:05.459 Core 1  connected
2019.11.03 18:25:05.468 Core 1  disconnected
2019.11.03 18:25:05.468 Core 1  connection closed

Connecté et ensuite immédiatement déconnecté. Après une minute, c'était opérationnel. Il n'y avait pas de visualiseur.

 
fxsaber:
J'ai eu cette réaction en appuyant sur le bouton Start sur une seule passe.

Connecté et ensuite immédiatement déconnecté. Après une minute, c'était opérationnel. Le visualiseur était absent.

Le testeur s'est détraqué

 
fxsaber:

Oui. Voici un journal et une capture d'écran.


Nous parlons du Tester. Pourquoi GetLastError dans cet exemple ? L'ordre n'est pas non plus important dans ce cas.

Le testeur s'est arrêté car OnInit renvoie un code non nul

C'est pourquoi il n'y a pas de statistiques.

 
Slava:

L'agent testeur s'est écrasé

J'ai eu une exécution unique sur 2197 hier également, j'ai d'abord fait un clic droit sur les exécutions uniques 10 à 15 fois après l'optimisation, puis n'importe quelle exécution unique dans le journal s'est connectée et n'a rien fait d'autre, les agents étaient dans l'état reidi, le redémarrage du terminal résout ce problème.

 
Igor Makanu:

J'ai également eu une exécution unique sur 2197 hier qui ne voulait pas démarrer, j'ai d'abord fait un clic droit sur les exécutions uniques 10 à 15 fois après l'optimisation, puis chaque exécution unique a été ajoutée au journal et n'a rien fait d'autre, les agents étaient dans l'état reidi, le redémarrage du terminal résout ce problème.

Il faut regarder les journaux des agents

 
Andrey Pogoreltsev:


Lorsque vous copiez une valeur à partir d'ici (et éventuellement à partir d'autres endroits), le bloc de paramètres entier est alors collé au lieu de la valeur. Je m'attendais à copier ce que j'ai mis en évidence).

PCM - Copie