Erreurs, bugs, questions - page 2767

 
Konstantin Seredkin:

En plus des transactions du testeur, des transactions réelles qui ont été négociées dans le passé sont superposées sur le graphique.

Ce comportement est invisible pour ceux qui utilisent des symboles personnalisés. Mais pour les symboles réels, cela semble assez peu pratique.

 

Dans le débogueur, la valeur deGetLastError(); ne peut être récupérée ?

uniquement par le biais d'une variable ou d'un _LastError prédéfini ?

Dossiers :
 
awsomdino:

Dans le débogueur, la valeur de GetLastError() ; ne peut être récupérée ?

Seulement par le biais d'une variable ou d'un prédéfini _LastError ?

Oui. C'est là que _Value est utile.

 
fxsaber:

Oui. C'est à ça que sert _Value.

Peut-être les développeurs ajouteront-ils la possibilité de regarder dans le débogueur à partir de la fonctionGetLastError();

sinon, ces deux lignes simples et pratiques sont inutiles

   if(GetLastError()>0)
      DebugBreak();
 
awsomdino:

peut-être que les développeurs ajouteront la possibilité de regarder dans le débogueur à partir de la fonctionGetLastError();

Sinon, ces deux lignes simples et pratiques sont inutiles.

N'utilisez pas uniquement cette fonction.

 

Afin de minimiser le nombre d'entrées des correctifs de la "révision" précédente, les défauts précédemment corrigés n'ont pas été transférés :

Défauts dans le fonctionnement des fonctions/classes des modèles :
(non corrigés par MT5(build 2474)) *** Erreur de compilation, bogue lors de la tentative d'accès à une classe interne pour un paramètre de fonction de modèle.
(non corrigé par MT5(build 2474)) ** Erreur de compilation, bug sur la valeur de retour d'une fonction template lorsque la valeur de retour est une classe interne à l'intérieur d'une classe template dont le type de paramètre est spécifié par le type d'argument de la fonction template.
(non corrigé par MT5(build 2474)) ** Erreur de compilation, bug d'espace de nom et de portée dans le constructeur de modèle lors de l'appel de la classe de base lorsque le même nom de classe est utilisé dans l'héritage et la classe interne.
(non corrigé par MT5(build 2474)) * Erreur de compilation, bogue sur l'appel d'une fonction modèle avec des types d'arguments explicites lorsqu'elle est appelée depuis une fonction non modèle surchargée.
(non corrigé
par MT5 (build 2474)) Erreur de compilation, bogue sur la définition de la classe interne - pas de référence à l'espace de noms global lors de la spécification d'une classe de base.
(non corrigé par MT5(build 2474)) * Erreur de compilation, lors de l'appel de l'instruction d'affectation via l'indication explicite de la classe de base. Le problème se pose pour une classe modèle avec un paramètre modèle comme classe de base.
(corrigé
par MT5(build 2474)) Erreur de compilation, lors de l'utilisation du modificateur d'accès par défaut pour l'héritage dans une classe template où le paramètre template est une classe de base.
(corrigé par MT5(build 2474)) * (nouveau) Erreur de compilation, erreur de compilation lors de l'héritage d'une classe modèle de l'espace de noms.
(corrigé par MT5(build 2474)) ** (nouveau) Erreur de compilation, l'opérateur= par défaut n'est pas accessible depuis un objet pointeur.
(non corrigé
par MT5(build 2474)) *** (nouveau) Erreur decompilation, erreur de compilation pour la déclaration directe d'une méthode de classe modèle .
(
non corrigé par MT5(build 2474)) ** (nouveau) Erreur decompilation lorsque la classe contient un pointeur vers une classe wrapper qui utilise la classe comme champ.


Défauts liés à l'incompatibilité des priorités des appels de fonctions surchargées dans MQL par rapport à C++ :
(non corrigé dans MT5 (build 2474)) ** Erreur de compilation lorsque la première des fonctions de modèle surchargées utilise une classe de base de modèle entièrement spécialisée et que la seconde utilise une classe de base de modèle non spécialisée.
(non corrigé par MT5(build 2474)) ** Erreur de compilation, une erreur de compilation se produit lors de la génération du code d'une fonction template malgré le fait qu'il existe une fonction template surchargée avec une signature appropriée pour les paramètres passés.
(non corrigé par MT5(build 2474)) * Erreur de compilation, "appel ambigu à une fonction surchargée" lors de l'appel de fonctions modèles surchargées avec un nombre différent de paramètres modèles.

( non corrigé par MT5(build 2474)) *** Erreur de compilation, erreur lors de l'appel de fonctions modèles surchargées.
( non corrigé par MT5(build 2474)) ** Erreur de compilation, la conversation implicite de type est utilisée lors de l'appel d'une fonction pour un argument avec le type de données couleur malgré l'existence d'une fonction modèle surchargée de signature correspondante avec le type de données couleur.
( non corrigé par MT5(build 2474)) * Erreur de compilation, malgré la spécialisation explicite lorsque la fonction template surchargée est appelée, la fonction template est appelée par défaut de toute façon, ce qui conduit à un dépassement de pile...
( non corrigé par MT5(build 2474)) * Compile Error, erreur de compilation lors de l'appel d'une fonction via son pointeur lorsqu'un tableau de pointeurs de fonctions est utilisé.
( corrigé par MT5(build 2474)) * (nouveau) Erreur de compilation, problèmes avec la priorité d'appel des fonctions surchargées dans l'espace de noms.

Bogues liés à MetaEditor :
(non corrigé par ME5(build 2474)) *** Debugger, un point d'arrêt dans laméthode de la structurestatique provoque le blocage du terminal MT.
(non corrigé dans ME5(build 2474)) ** Compilation, la description de l'erreur de compilation ne tient pas dans la limite des 256 caractères et est coupée, ce qui rend impossible de comprendre pour quel type de données l'erreur est générée car la partie requise est coupée.
(corrigé dans ME5(build 2474)) ** Debugger, StepInto (F11) et set breakpoints ne fonctionnent pas.
(corrigé dans ME5(build 2474)) * Debuger, après le déclenchement d'un point d'arrêt, au lieu de poursuivre l'exécution du code en appuyant sur (F5), le même point d'arrêt est en fait déclenché à nouveau sans exécuter de code.
(non corrigé dans ME5(build 2474)) * Compilation, signature incorrecte du paramètre du modèle de fonction dans la description des erreurs et les informations sur les paramètres.
(non corrigé dans ME5(build 2474)) * MetaEditor, la fonctionnalité Replace (Strl + H) ne fonctionne pas pour l'activation de "In selection" avec "Backward direction" lorsque la partie nécessaire de l'application est sélectionnée, mais pas l'ensemble du code.
(non corrigé par ME5(build 2474)) * (nouveau) MetaEditor, le déclenchement d'un point d'arrêt fait croire à l'utilisateur qu'une condition d'entrée a été remplie, alors qu'en réalité ce n'est pas le cas du tout.


Défauts liés à l'exécution lente des fonctions, optimiseur de code :
(corrigé par MT5(build 2474)) **(up) Temps d'exécution, surcharge importante lors de l'ajout d'un élément à la fois dans un tableau à l'aide de ArrayResize, malgré le fait que la mémoire pour ceux-ci a été réservée à l'avance, par exemple, les structures sont jusqu'à 7 fois plus lentes.


Suggestions :
- ajouter à ME la recherche/remplacement par le projet actuel, alors que pendant le remaniement, il n'est pas très bon de passer par chacun des fichiers et de rechercher les occurrences.
lien- dans ME à la compilation pour remplir les colonnes vides Fichier, Ligne, Colonne avec des informations appropriées sur le fichier source, à partir duquel a été fait l'inclusion.
lien- sur l'introduction du support intellisense pour la fonctionnalité des espaces de noms sur la base du travail intellisense pour les méthodes statiques dans les classes.
lien- à propos de la possibilité de passer des littéraux et des variables temporaires comme arguments const ref d'une fonction.
lien- lors dudéplacement de fichiers de projet dans l'onglet "Project", pour les fichiers déplacés qui sont ouverts et se trouvent dans les onglets ME, de mettre automatiquement à jour leur chemin d'emplacement.
lien- à propos de la nécessité d'introduire la fonctionnalité de déclaration typedef dans MQL.
lien- à propos de la possibilité de forcer la génération de constructeurs de copie et d'opérateurs d'affectation par défaut.

 
Sergey Dzyublik :

Afinde minimiser le nombre d'entrées de la dernière "révision" des corrections, les défauts précédemment corrigés n'ont pas été reportés :
.
..

C'est sur votre liste ? Si ce n'est pas le cas, pouvez-vous l'ajouter s'il vous plaît.

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

Mauvaise syntaxe MQL ?

Dan Marinescu, 2020.05.27 22:47

J'ai défini une interface universelle et je veux l'utiliser dans une autre classe. Je n'arrive pas à comprendre ce qui ne va pas avec ce code :

 #property  strict

template < typename T> interface IGenericHandler {
     bool Handle(T &item);
};

#define  DOES_NOT_WORK

class GenericHandler {
     public :
#ifdef  DOES_NOT_WORK   
         template < typename T> bool Handle(T &val, IGenericHandler<T> *handler);
#else   
         template < typename T> bool Handle(T &val, IGenericHandler<T> *handler) { return false ; }
#endif        
 };

#ifdef  DOES_NOT_WORK
template < typename T> bool GenericHandler::Handle(T &val, IGenericHandler<T> *handler) { return false ; }
#endif 

Si DOES_NOT_WORK n'est pas défini, tout fonctionne. Mais lorsque DOES_NOT_WORK est défini, le compilateur dit :

'Handle' - member function already defined with different parameters

Pourquoi ?


 
Alain Verleyen:

C'est sur votre liste ? Si ce n'est pas le cas, pouvez-vous l'ajouter s'il vous plaît.

Merci pour l'ajout, oui il y a une description de ce problème dans la liste :
(non corrigé par MT5 (build 2474)) *** (nouveau)Erreur decompilation,erreur de compilation pour la déclaration anticipée de la méthode template de la classe.

 
Sergey Dzyublik :

Merci pour l'ajout, oui il y a une description de ce problème dans la liste :
( non corrigé par MT5(build 2474) ) *** (nouveau) Erreur de compilation, à propos d' une erreur de compilation pour la déclaration directe d'une méthode de classe modèle .

Super, merci.
 
Salutations. L'événement d'initialisation se produit-il lorsque le terminal est allumé ?
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...