Questions des débutants MQL5 MT5 MetaTrader 5 - page 1264
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Dans la structure
STRUCT_POSITION
la structure contient une méthode
GetCurrentPositionProperty (void)
qui calcule et attribue des valeurs aux éléments de la structure. Définissez le corps de la méthode en dehors de la structure. Pour ce faire, utilisez l'opération de résolution de contexte (: :).
Dans OnTick() nous appelons la fonction :
void OnTick() { //--- STRUCT_POSITION.GetCurrentPositionProperty() ; }
Et là, nous avons une erreur :
'.' - nom attendu eSower_and_Gather_5.mq5 69 19
Je ne sais pas où cela a mal tourné, aidez-moi s'il vous plaît.
'.' - nom attendu eSower_and_Gather_5.mq5 69 19
Qu'est-ce que la ligne 69 19 ? Veuillez publier la ligne de code 69 et préciser où se trouve la position 19. Vous verrez immédiatement où se trouve l'erreur.
Qu'est-ce que la ligne 69 19 ? Affichez la ligne de code 69 et précisez où se trouve la 19e position. Vous verrez immédiatement où se trouve l'erreur.
STRUCT_POSITION.GetCurrentPositionProperty();
Il est souligné en rouge dans le message ci-dessus. Merci pour votre réponse rapide.
Qu'est-ce que la ligne 69 19 ? Affichez la ligne de code 69 et précisez où se trouve la 19e position. Vous verrez immédiatement où se trouve l'erreur.
C'est un point qui doit donner accès à une fonction qui, à son tour, utilise le contexte de la structure. Mais je ne comprends pas pourquoi cela ne fonctionne pas.
il est surligné en rouge dans le post ci-dessus. Merci pour votre réponse rapide.
STRUCT_POSITION' est un TYPE DE DONNÉES. Vous devez créer une variable de ce type, puis appeler VARIABLE.GetCurrentPositionProperty() ;
C'est le point qui doit donner accès à la fonction, qui à son tour utilise le contexte de la structure.C'est ce que j'ai compris des manuels. Mais je ne comprends pas pourquoi ça ne marche pas.
Code : (il s'agit simplement d'appeler une fonction - une fonction EA, pas une méthode de structure - cela a plus de sens)
STRUCT_POSITION' est un TYPE DE DONNÉES. Vous devez créer un objet de ce type, puis appeler OBJECT.GetCurrentPositionProperty() ;
Je l'ai essayé. Un tel objet est créé, déclaré juste après la déclaration de l'objet
StrPositionArray[].
Si vous le mettez dans OnTick
nous obtenons une erreur :
']' - expression attendue eSower_and_Gather_5.mq5 69 21
Code : (il s'agit simplement d'appeler une fonction - une fonction EA, pas une méthode de structure - cela a plus de sens)
Donc utiliser : : était une idée futile ?
Alors pourquoi avez-vous écrit la fonction
à l'intérieur de la structure ? Il remplirait la structure sans qu'il y ait de remplissage à l'intérieur, n'est-ce pas ? Peut-être s'agit-il d'une fonctionnalité obsolète, que je devrais oublier ?
Donc utiliser : : était une perte de temps ?
Alors pourquoi écrire une fonction
à l'intérieur de la structure ? ?? Je veux dire, il remplira parfaitement la structure même sans lui. Veuillez clarifier, je suis confus, peut-être est-ce une idée obsolète qui devrait être oubliée.
Copier-coller. Il reste une ligne après le copier-coller.
Cela devrait être comme ceci (il n'y a pas de méthodes à l'intérieur de la structure)
Copier-coller. Il reste une ligne après le copier-coller.
Cela devrait être comme ceci (il n'y a pas de méthodes à l'intérieur de la structure)
Eh bien, j'ai passé tellement de temps sur la leçon. Bien qu'elle soit destinée à MT4, elle y était présentée comme une astuce, voici donc un extrait du texte :
La structure possède une méthode Refresh() qui calcule et attribue des valeurs aux éléments de la structure. Définissons le corps de la méthode en dehors de la structure. Pour ce faire, nous utilisons l'opération de résolution de contexte (: :). Le contexte est un descripteur (nom) de la structure :
Notez que dans le corps de la méthode, nous faisons référence aux éléments de la structure sans utiliser de point, puisque nous avons utilisé l'opération de résolution de contexte. Les champs numériques sont mis à zéro par ZeroMemory() avec le mot-clé this avant d'être mis à jour au début du corps de la méthode, de sorte que la structure passe une référence à elle-même.
Le code principal de l'EA à l'intérieur du gestionnaire OnTick() ressemblera maintenant à ceci