Erreurs, bugs, questions - page 2655

 
Vladimir Karputov:

Pour les mises en page ru et en (minuscules et majuscules) lparam sera 67 :

Merci, TranslateKey est exactement ce dont vous avez besoin.

 
Je n'ai pas cette fonction, dois-je avoir des privilèges particuliers pour que le bouton "servicedesk" apparaisse ?
 
Nayati:
Je n'ai pas cette fonction, dois-je avoir des privilèges pour que le bouton ServiceDesk apparaisse ?

Vous devez effectuer une transaction financière au moins une fois. Pourquoi avez-vous besoin de ServiceDesk ? Quelle est la question ?

 
Vladimir Karputov:

Vous devez effectuer une transaction financière au moins une fois. Pourquoi avez-vous besoin de ServiceDesk ? Quelle est la question ?



Je ne comprends pas quel est le bug bizarre avec l'affichage en zigzag de l'équité dans le testeur. Ouverture de la section des courtiers en actions, démo. Si je change le paramètre " Méthode de règlement " de " Stoks d'échange " à " Forex ", l'équité s'affiche normalement. J'ai eu la même expérience il y a quelques années, je voulais essayer de connecter MT5 à un fonds, je l'ai testé, j'ai eu peur et j'ai abandonné. J'ai réessayé et c'est la même chose. C'est étrange ?

 
Bogue MT5 (build 2340) lorsqu'une structure interne est transmise à une fonction de modèle, le type de données résultant ne peut pas être utilisé comme type de données de base pour une autre structure interne dans une classe de modèle :

struct It_Base{
public:
   class Tag{};
   int index;
};

class V{
public:
   struct It{
      class Tag{};
      int index;
   };
};


template<typename T>
class GetStructType{
public:
   struct type : public T{};  // Error: 'It' - declaration without type, 'It' - syntax error
};

template<typename T>
void func(const T &){
   // Bypass Compile Error for //T::Tag* tag_ptr = new T::Tag(); 
   GetStructType<T>::type::Tag* tag_ptr = new GetStructType<T>::type::Tag();
};


void OnStart (){ 
   It_Base iterator_base = {};
   func(iterator_base);         // OK
   
   V::It iterator = {};
   func(iterator);              // Compile Error
}
 

Bug MT5 (build 2340), c'est de la merde...
Tout est absolument correct, et il ne compile pas et jure sur quelque chose qui n'est pas là...
Vous essayez de localiser un bug, et c'est aussi mal que tout fonctionne, le code est à 99% le même - il fonctionne ici, mais pas dans le projet...

#ifdef  __cplusplus
    #include <iostream>
#endif

class input_iterator_tag  {};
class forward_iterator_tag       : public input_iterator_tag         {};
class bidirectional_iterator_tag : public forward_iterator_tag       {};
class random_access_iterator_tag : public bidirectional_iterator_tag {};


template<typename _Iterator, typename _Tp>
_Iterator set_value(const _Iterator &val,  _Tp &value, const input_iterator_tag* tag){
   printf("1\r\n");
   return val;
};

template<typename _Iterator, typename _Tp>
_Iterator set_value(const _Iterator &it,  _Tp &value, const  forward_iterator_tag*  tag){
   printf("2\r\n");
   return set_value(it, value, (input_iterator_tag*)NULL);
};

template<typename _Iterator, typename _Tp>
_Iterator set_value(const _Iterator &it,  _Tp &value, const  bidirectional_iterator_tag*  tag){
   printf("3\r\n");
   return set_value(it, value, (forward_iterator_tag*)NULL);
};

template<typename _Iterator, typename _Tp>
_Iterator set_value(const _Iterator &it,  _Tp &value, const random_access_iterator_tag* tag){
   printf("4\r\n");
   return set_value(it, value, (bidirectional_iterator_tag*)NULL);
};


template<typename _Iterator, typename _Tp>
_Iterator set_value(const _Iterator &it, _Tp &value){
   return set_value(it, value, it.tag);                      //Error: 'set_value' - ambiguous call to overloaded function       
};


template<typename T>
struct A{
   T data;
   static random_access_iterator_tag* tag;
};

template<typename T>
random_access_iterator_tag* A::tag = NULL;

class B{};


void OnStart (){ 
   A<B*> it;
   const B* const b_ptr = new B();
   set_value(it, b_ptr);                                     //Compile Error

   
   
   A<int> it_int;
   const int value_int = 5;
   set_value(it, value_int);         
}

int main(){
   OnStart();
   return 0;
};

On a l'impression que les bogues précédemment découverts se sont rassemblés en une seule fois et ont produit un si merveilleux "résultat" grâce à une synergie générale :

- Le code est absolument correct et fonctionne pour tous les types sauf pour les pointeurs ;
- Le code est absolument correct et fonctionne pour tous les types, sauf pour les pointeurs ; les appels des fonctions surchargées (set_value) sont exécutés sur la base du type du troisième argument, mais le résultat est influencé par inadvertance par le deuxième argument d'une fonction qui a passé un pointeur, pour ne pas dire plus - n'est pas clair ;
- Par contre, si vous enlevez le const marqué en vert, tout fonctionnera miraculeusement...
- D'un autre côté, si vous supprimez toute la hiérarchie d'héritage en laissant les mêmes classes mais sans les classes de base, tout fonctionnera à nouveau...
- Et enfin, le résultat de la compilation dépend de la séquence d'arrangement des fonctions template surchargées set_value, mélangez-les et vous obtiendrez de nouvelles erreurs...


 

Bonjour ! J'ai mis à jour mon mt5 bild2340 ce matin et maintenant certains indicateurs sur le marché ne fonctionnent pas.

J'obtiens l'erreur 2020.02.25 10:01:41.646 Indicateur personnalisé Le chargement de YuClusters (Si-3.20,M15) a échoué [538].

l'indicateur n'est pas installé, donne une erreur et le marché a disparu dans mt5

2020.02.25 10:24:37.385 MQL5 Market failed to get info product (www.mql5.com:443 send failed [404 : Not Found])
2020.02.25 10:24:37.385 MQL5 Market produit [2835] non trouvé dans la base de données

 
Est-il vraiment possible que tous les fonds MOEX soient testés sans problème, mais que j'aie une sorte de crapshoot ? Ou est-ce que ce bug d'équité en zigzag dans le testeur est à l'ordre du jour, c'est quoi ce silence bizarre ? ???.
 
Nayati:
Est-il possible que tout soit testé normalement dans le fonds MOEX et que j'aie une sorte de coup de poker ? Ou ce bug avec équité dans le testeur sous forme de zigzag est à l'ordre du jour, quel est cet étrange silence ? ???.

Donnez des détails pour la reproduction. Peut-être que quelqu'un sera intéressé. Il n'y a aucune chance que ça arrive.

Code, outil, paramètres de test.

 
Andrey Khatimlianskii:

Donnez des détails pour la reproduction. Peut-être que quelqu'un sera intéressé. Il n'y a aucune chance que ça arrive.

Code, outil, paramètres de test.

J'ai déjà mentionné l'outil 2 fois ci-dessus, comme le montre l'image. Tout code sur la section des actions du MOEX donne ce résultat. Tous les paramètres également, mais l'équité ne s'affiche correctement que lorsque la méthode de calcul est modifiée.