Erreurs, bugs, questions - page 418

 

Je travaille avec MT5 depuis quelques jours maintenant et j'ai remarqué que les stops et les profits peuvent maintenant être édités avec la souris, ce qui est bien, mais il y a un petit bug. Lorsque je déplace la souris sur le stop, son pointeur change pour montrer que le stop est actif pour l'édition, mais le pointeur change également lorsque j'utilise l'outil "Crosshair", ce qui signifie que si je veux mesurer la distance à partir du stop, ce n'est pas très pratique, parce que le deuxième point est derrière le pointeur et je ne peux pas voir où je l'emmène. Je voulais faire PrintScreen, mais il ne prend pas de photo de la souris.

En résumé, il n'est pas pratique de mesurer avec "Crosshair" à partir de la butée.

 
mql5:
L'erreur est corrigée.
Le switch-check "fetch" a été discuté et nous ne pouvons pas implémenter le contrôle correct/correct.
La valeur de l'expression de commutation peut être n'importe quoi, par exemple :

OK, je vois. Le compilateur ne peut pas contrôler la valeur de l'expression switch à la place du programmeur.

A titre de question secondaire, cette construction est utilisée dans l'exemple ci-dessus:

enum EV { v1, v2, };
...
   switch(EV(3))

Cela signifie-t-il qu'il est acceptable de traiter les données d'un type énuméré non seulement avec des constantes nommées (v1, v2, etc.) mais aussi en spécifiant leur numéro ordinal dans l'énumération ( EV(n) ) ?

...J'ai fait de telles constructions pour résoudre une telle question - mais ici cela peut être beaucoup plus simple.

 
Yedelkin:

Cela signifie-t-il qu'il est acceptable de se référer aux données d'un type énuméré non seulement avec des constantes nommées (v1, v2, etc.) mais aussi en spécifiant leur numéro ordinal dans une énumération ( EV(n) ) ?

Dans ce cas, seule la conversion standard du type int en EV est appliquée. En notation fonctionnelle.

Il existe deux formes syntaxiques possibles de conversion de type dans mql5 qui sont équivalentes en termes de résultat : (Nom_type) Valeur et Nom_type(Valeur).

Je veux dire qu'il ne s'agit pas d'une fonctionnalité spéciale liée aux énumérations, mais simplement d'une conversion de type normale.

 
Jhonny:

Je travaille avec MT5 depuis quelques jours maintenant et j'ai remarqué que les stops et les profits peuvent maintenant être édités avec la souris, ce qui est bien, mais il y a un petit bug. Lorsque je déplace la souris sur le stop, son pointeur change pour montrer que le stop est actif pour l'édition, mais le pointeur change également lorsque j'utilise l'outil "Crosshair", ce qui signifie que si je veux mesurer la distance à partir du stop, ce n'est pas très pratique, parce que le deuxième point est derrière le pointeur et je ne peux pas voir où je l'emmène. Je voulais faire PrintScreen, mais il ne prend pas de photo de la souris.

En résumé, il n'est pas pratique de mesurer avec "Crosshair" à partir de la butée.

Je suis d'accord, c'est une bonne observation, mais ce n'est pas un bug.

Bonne chance pour MT5

 
MetaDriver:

Dans ce cas, seule une conversion standard de int en EV a été appliquée. En notation fonctionnelle.

Il existe deux formes syntaxiques possibles de conversion de type dans mql5, qui ont le même résultat : (Nom_type) Valeur et Nom_type(Valeur).

Je veux dire qu'il ne s'agit pas d'une fonctionnalité spéciale liée aux énumérations, mais simplement d'une conversion de type normale.

Cool ! Je vais essayer de le digérer. Mais d'après ce que vous avez dit, la réponse à ma question est positive. C'est bien ! Merci ! (Rires)
 

Impossible de démarrer le test en mode visualisation. Le visualiseur lui-même démarre, mais le test ne démarre pas. C'est ce qui est dit dans le journal :

2011.06.16 21:25:47 EURUSD : symbole synchronisé, 2904 octets d'info de symbole reçus
2011.06.16 21:25:47 erreur de synchronisation du symbole EURUSD
2011.06.16 21:25:47 impossible d'obtenir l'historique EURUSD,M1
2011.06.06.16 21:25:47 fichier journal "C:\Program Files\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20110616.log" écrit
2011.06.16 21:25:48 arrêt de l'agent de test

 

Les développeurs.

Le testeur visuel est-il vraiment si lent ou est-ce que je m'imagine des choses ?

 
molotkovsm:

Impossible de démarrer le test en mode visualisation. Le visualiseur lui-même démarre, mais le test ne démarre pas. C'est ce qui est écrit dans le journal :

2011.06.16 21:25:47 EURUSD : symbole synchronisé, 2904 octets d'info de symbole reçus
2011.06.16 21:25:47 Erreur de synchronisation du symbole EURUSD
2011.06.16 21:25:47 ne peut obtenir l'historique EURUSD,M1
2011.06.16 21:25:47 fichier journal "C:{Program Files\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20110616.log" écrit
2011.06.16 21:25:48 arrêt de l'agent du testeur

Le même problème. Le journal de l'agent ne peut pas être ouvert via le chemin spécifié.

2011.06.16 22:40:52     tester agent shutdown
2011.06.16 22:40:52     log file "C:\Program Files\MetaTrader 5 - 64\Tester\Agent-127.0.0.1-3000\logs\20110616.log" written
2011.06.16 22:40:52     cannot get history EURUSD,M1
2011.06.16 22:40:52     symbol EURUSD synchronization error
2011.06.16 22:40:52     EURUSD: symbol synchronized, 2904 bytes of symbol info received
2011.06.16 22:40:51     Pentium Dual-Core  T4300 @ 2.10 GHz, 3001 MB
2011.06.16 22:40:51     13 Kb of total initialization data received
2011.06.16 22:40:51     successfully initialized
2011.06.16 22:40:51     expert file added: Experts\Тест.ex5. 2958 bytes loaded
2011.06.16 22:40:51     346 bytes of selected symbols loaded
2011.06.16 22:40:51     196 bytes of input parameters loaded
2011.06.16 22:40:51     1490 bytes of tester parameters loaded
2011.06.16 22:40:51     3788 bytes of group info loaded
2011.06.16 22:40:51     login (build 468)
2011.06.16 22:40:51     initialization finished
2011.06.16 22:40:51     MetaTester 5 started on 127.0.0.1:3000
2011.06.16 22:40:51     MetaTester 5 x64 build 468 (16 Jun 2011)


 
Veuillez fournir le code.
 
Renat:
Veuillez me donner le code.

Bonsoir, je me demandais si dans ce code

  if(B >= spred && IND == true && proverka()==true)

après avoir vérifié B>spred, qui est "FALSE", le reste des valeurs est vérifié

Cela augmente le temps d'exécution du test, je dois donc modifier le code de la manière suivante

   if(B >= bar)
    {
     if (IND == true) 
      {
       if (proverka)==true)
        {
         .......

Et le plus long en termes de calculs ( proverka() - copie des valeurs tampons d'un indicateur)

Je l'ai mis en dernier mais il ne vérifie pas le dernier. Je me demande.

Et pourquoi donc ?

Ou bien il ne vérifie pas le dernier :

 if(B >= bar) if (IND == true) if (proverka()==true)