Erreurs, bugs, questions - page 2474

 
Malheureusement, à l'heure actuelle, les types de pointeurs de fonction dans MT4/MT5 sont très limités et peu pratiques en raison de certains défauts :
#(non corrigé dans MT5(build 2060))"Erreur de compilation lors de l'utilisation répétée de la même signature de fonction dans un typedef".
#(non corrigé dans MT5(build 2060))"Lorsque l'on travaille avec typedef, l'utilisation d'une fonction template avec une spécialisation explicite ne génère pas de code pour cette fonction template".


Compte tenu de l'implémentation en cours de l'espace de noms, veuillez envisager d'implémenter la prise en charge de ce comportement dans le cadre des corrections de défauts de la prochaine version C++:
//#include <iostream>

template<typename T>
class A{
public:
    typedef void (*callback)(T&);   //class namespace for function pointer type
    callback f_ptr;
    T data;
};

template<typename T>
class B{
public:
    typedef void (*callback)(T&);   //class namespace for function pointer type
    callback f_ptr;
};

template<typename T>
void func(T& value){
    ++value;
}


void OnStart(){
//int main(){
    A<int> a;
    B<int> b;
    
    a.f_ptr = func<int>;      // automatic code generation of templates functions
    b.f_ptr = a.f_ptr;        // assignment operation for function pointers with the same function signatures and different function pointer types.
    
    int x = 1;
    b.f_ptr(x);
    printf("%d\r\n", x);                  //2
    printf("%d\r\n", b.f_ptr == a.f_ptr); //1     // equal operation for function pointers with the same function signatures and different function pointer types.
}
 

Bonjour ! Veuillez prêter attention au sujet

https://www.mql5.com/ru/forum/314275

En bref, le testeur calcule une marge qui ne correspond pas à celle définie dans les paramètres du symbole.
[bug] Неправильная Margin при тестировании на custom symbol
[bug] Неправильная Margin при тестировании на custom symbol
  • 2019.05.25
  • www.mql5.com
Привет! Создал кастомный символ с параметрами, скопированными из реального Si-3.19. См. скриншоты. Загрузил для него историю...
 

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

Nouvelle version de la plateforme MetaTrader 4 build 1170

fxsaber, 2019.05.28 12:10

S'agit-il d'un bogue dans le compilateur MT4 ?
#property strict

void Func( int &[] ) {}
void Func( int &[][2] ) {} // 'Func' - function already defined and has body

void OnStart()
{
  int Array1[];
  int Array2[][2];
  
  Func(Array1);
  Func(Array2); // 'Array2' - invalid array access
}


Il n'y a aucun problème à ce sujet dans MT5. Dans MT4, il n'y a aucun moyen de surcharger la fonction.

 

Légère anomalie dans MT 4 dans MT 5 non vérifié...


 

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

Nouvelle version de la plateforme MetaTrader 4 build 1170

fxsaber, 2019.05.28 14:24

J'ai remarqué une différence entre MT4 et MT5. S'agit-il d'un bogue dans MT4 ?
#property strict

bool Print2( const string Str )
{
  Print(Str);
  
  return(true);
}

void Func()
{
  static bool b = Print2(__FUNCSIG__); // MT4 - вызывается, MT5 - нет.
}

void OnStart() {}
 
fxsaber:

Cinq a fait une bonne initialisation de la statique. Au premier accès.

Quatre ne l'ont pas fait. Et on ne peut pas dire quand nous le ferons.

 

build 2062 : Erreur 5305 lors de la création d'un symbole personnalisé.

En 2060, tout va bien.

Je me souviens que dans MT4 il y avait une clé de ligne de commande /skipupdate

Existe-t-il quelque chose de similaire dans MT5 ? Comment puis-je désactiver les mises à jour ?

 

fxsaber:

MT4 est appelé, MT5 ne l'est pas.

Vous semblez compiler avec un vieux compilateur, compilez avec un compilateur moderne (inclus dans MT5) et tout ira bien.
 
Alexey Navoykov:
Il semble que vous compilez avec un vieux compilateur. Compilez avec un compilateur moderne (fourni avec MT5) et tout ira bien.

Compilé jusqu'en 1966. J'ai essayé 2062 dans MT4 - cela fonctionne correctement. Merci !

C'est dommage qu'il n'y ait aucun moyen de le battre.

 

Aux développeurs.

Visualisation très peu pratique des valeurs des variables dans le débogueur.

Par exemple, les objets complexes ressemblent à ceci :


pour voir le contenu, vous devez le saisir manuellement :



même dans ce cas, le contenu de cet élément est dessiné en une chaîne de caractères et les valeurs des champs ne sont pas visibles.

Veuillez commenter - un développement dans la direction suivante est prévu. Par exemple :

Collection d'objets :



Appuyez sur F2 :



Tout élément de collection qui contient des champs peut être visualisé de la manière suivante :