Discussion de l'article "L'utilisation des bibliothèques MQL5 Standard de Cours de Trade dans la rédaction d'un Expert Advisor" - page 3
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Il y a aussi des lignes dans la classe COrderInfo
return(FormatType(str,Type())); ... FormatType(type,Type()) ... if(m_type==Type() && m_state==State() &&Mais la fonction Type() est absente de la classe.
La section 1.4 de l'article présente les caractéristiques de la classe COrderInfo qui, à en juger par la description, est conçue pour travailler avec des commandes actives en attente. Il est suggéré de procéder comme suit: "Pour utiliser cette classe afin d'obtenir les propriétés des ordres en attente, nous demandons d'abord le nombre total d'ordres et nous les sélectionnons par ticket d'ordre"
Mais si la fonction HistorySelect() est conçue pour interroger"l'historique des transactions et des ordres", c'est-à-dire pour interroger les ordres historiques, pourquoi utiliser cette fonction pour interroger le nombre total d'ordres actifs en attente ?Dans la classe COrderInfo ...
Mais la fonction Type() est absente de la classe.
Quelqu'un peut-il m'expliquer ? Voici un morceau de code de la classe CDealInfo :
La fonction CDealInfo::FormatDeal(string& str) contient cette ligne :
symbol.Name(Symbol());La fonction Symbol() est quant à elle définie à la fois dans la classe CDealInfo elle-même et parmi les fonctions standard du terminal client. Quelle fonction est transmise comme argument à la fonction symbol.Name() ? Selon quelle règle ?Quelqu'un peut-il m'expliquer ? Voici un morceau de code de la classe CDealInfo :
La fonction CDealInfo::FormatDeal(string& str) contient cette ligne :
La fonction Symbol() est quant à elle définie à la fois dans la classe CDealInfo elle-même et parmi les fonctions standard du terminal client. Quelle fonction est transmise comme argument à la fonction symbol.Name() ? Selon quelle règle ?La même règle que pour la portée des variables s'applique ici. Si une variable est déclarée sous un seul nom aux niveaux global et local, alors à l'intérieur de la portée locale le nom pointera vers la variable locale et à l'extérieur vers la variable globale.
Il s'avère que si une fonction standard est surchargée à l'intérieur d'une classe, le corps de la surcharge sera appelé dans la classe elle-même et le corps de la fonction standard sera appelé au niveau global. Le corps de la fonction surchargée peut être appelé au niveau global par l'intermédiaire du pointeur de classe.
La même règle s'applique ici qu'avec la portée des variables. Si une variable est déclarée sous le même nom aux niveaux local et global, alors à l'intérieur de la portée locale le nom pointera vers la variable locale, et à l'extérieur vers la variable globale.
Il s'avère que si une fonction standard est surchargée à l'intérieur d'une classe, le corps de la surcharge sera appelé dans la classe elle-même et le corps de la fonction standard sera appelé au niveau global. Le corps de la fonction surchargée peut être appelé au niveau global par le biais du pointeur de classe.