![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
Parce que dans le testeur, il n'appelle pas OnChartEvent.
C'est tout à fait exact. Mais dans la même situation dans MT4, il y avait des variantes possibles. J'ai réussi à mettre en œuvre l'une d'entre elles. L'interface fonctionnait pour un Expert Advisor fonctionnant en mode normal, mais elle pouvait contrôler sa copie fonctionnant dans le testeur. La connexion a été réalisée par le biais de ressources. L'Expert Advisor sur le graphique a reçu toutes les données pendant le processus de test. Avec MT5, la situation est peut-être plus compliquée. Je ne suis pas sûr qu'il sera possible d'établir une "communication" entre deux copies via des ressources. Cette question doit faire l'objet d'une étude distincte.
4. naviguer dans des listes de propriétés d'éléments individuels.
//-----------------------------------------------------------------------------------------
Permettez-moi de vous rappeler la liste des sujets à prendre en considération :
1. s'orienter dans la liste d'intellisense et sélectionner la fonction de la bonne fenêtre.
2. Ouverture et fermeture programmées des fenêtres.
3. s'orienter dans la liste d'intellisense et sélectionner le bon élément dans la bonne fenêtre
4. naviguer dans des listes de propriétés d'éléments individuels.
5. Analyse du nom d'un élément et d'une fonction d'enveloppe de fenêtre.
6. lerenvoi de la valeur du paramètre d' un élément sélectionné à une variable de son type. Considérer trois types d'éléments différents.
7. Définition de valeurs dans les paramètres de différents types d'éléments. Voyons comment les valeurs apparaîtront dans les fenêtres d'interface de ces éléments.
8. Renvoyer les valeurs des paramètres d'un élément, modifier et transmettre cette valeur à un autre élément. Considérons différents types d'éléments et de valeurs, et testons la transmission entre différents types d'éléments dans différentes fenêtres.
9. Retour de la valeur précédente (_V_LAST). Quand et dans quels cas la dernière valeur est requise (à ne pas confondre avec la valeur actuelle).
10. Tester le réglage des états ON/OFF/LOCK_ON/LOCK_OFF/LOCK/UNLOCK pour différents types d'éléments.
11. Essayons de lier et de synchroniser les changements de valeurs d'éléments de différents types : par exemple, un champ de saisie avec des boutons et un curseur. Supposons que lorsque la valeur d'un élément (manuel ou logiciel) change, la valeur du second élément change en conséquence.
12. Essayons de réinitialiser par programme les limites de la plage du curseur et du champ de saisie avec boutons au moyen de fonctions d'enveloppe. Je n'ai pas eu le temps de le tester, mais quelque chose me laisse penser que cela fonctionnera. Cependant, voyons ce qu'il en est.
13. Essayons de renvoyer les états des éléments via des fonctions wrapper. C'est inclus dans la fonctionnalité, mais je n'ai pas eu le temps de le tester. Nous verrons bien... Le résultat est inconnu.
14. Obtenons et définissons des couleurs pour le texte et les bases des éléments. Nous pouvons essayer d'associer ces couleurs à des événements simples ou à des limites de valeurs.
15. Je vous en dirai plus sur la manière de naviguer et de lire le nouveau fichier API imprimé.
//------------------------------------------
La couleur jaune indique les sujets qui ont déjà été traités.
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
C'est nous qui soulignons :
Chaque fonction enveloppante n'accepte que les propriétés dont le préfixe est indiqué en toutes lettres dans son nom.
Voici comment travailler avec des listes en pratique(mettez des parenthèses à la fin, car intellisense ne fonctionne pas à l'intérieur des parenthèses des fonctions enveloppantes) :
La vidéo est légèrement accélérée.
À la suite des appels montrés dans l'image, les fonctions enveloppantes renvoient les valeurs des propriétés spécifiées.
Avant l'appel, vous devez déclarer une variable pour stocker la valeur de la propriété ou le résultat de l'exécution de la fonction. Vous trouverez plus d'informations à ce sujet dans les rubriques suivantes.
5.
Analyse du nom de l'élément et de la fonction d'habillage de la fenêtre:
1. Nom de la fonction d'habillage de l'élément :
Examinons l'exemple de la fonction d'élément du champ de saisie de texte EDIT : w7_s_p4_EDIT_Comment_1();
//-------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
/ / - ------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
2. Le nom de la fonction d'habillage de la fenêtre :
Prenons l'exemple d'une autre fonction : w_15_Processing_the_data() ;
//-------------------------------------------------------------
) // - ------------------------------------------------------------
//-------------------------------------------------------------
Il convient de noter que la fonction de fenêtre ne dispose pas encore d'un préfixe permettant d'ouvrir la liste des propriétés. Cette fonctionnalité fera certainement son apparition. Une liste spéciale de propriétés de fenêtre à retourner/paramétrer sera générée et un préfixe sera attribué. De même, la fonction window ne contient pas encore de lettre de type de retour.
Pour l'instant, la fonction ne peut qu'ouvrir ou fermer une fenêtre.
Ces défauts seront corrigés dans la prochaine version.
Il est recommandé de résumer ces informations de formation une fois en privé et séparément, sinon elles inonderont les commentaires à l'avenir
6.renvoyer la valeur duparamètre ou de la propriété à une variable du type requis :
Le type du paramètre de l'élément(int, double ou string) détermine le type de la fonction de l'élément.
On sait que les fonctions d'élément renvoient la valeur du paramètre avec l'un des trois types suivants : int, double ou string.
Cependant, les fonctions renvoient également des valeurs de propriété...
Une situation se présente lorsque le type de la valeur du paramètre ne coïncide pas avec le type des propriétés, qui sont toujours de type int. Il s'avère que les fonctions renvoient des valeurs de propriété du mauvais type, par exemple double ou string au lieu de int. Cet inconvénient forcé est le prix à payer pour l'universalité des fonctions.
La tâche de l'utilisateur consiste à de convertir lui-même la valeur reçue dans le type requis..
Permettez-moi d'insister sur le fait que le type principal de toutes les propriétés d'éléments est int.
Examinons de plus près les exemples de questions-réponses :
Le type de la valeur du paramètre détermine le type de la fonction de l'élément.
Et si la fonction du curseur renvoie un type int, cela signifie qu'au stade de la création de l'élément, l'utilisateur a lui-même attribué des nombres entiers à son paramètre ou à ses propriétés - par exemple, il a placé la plage du curseur ou les champs de saisie avec les boutons à l'intérieur de valeurs entières.
Conclusion : la tâche de l'utilisateur consiste à convertir les valeurs reçues dans le type requis.
Examinons quelques exemples pratiques :
1.
//------------------------------------------------------------------------------------------------------------
2.
//------------------------------------------------------------------------------------------------------------
3.
Voir le résultat :
//------------------------------------------------------------------------------------------------------------
4.
//------------------------------------------------------------------------------------------------------------
5.
Voir le résultat :
Ensuite, testons l'obtention et la définition d'autres propriétés d'éléments et de paramètres. Essayons également de travailler avec le type double.
J'ai suivi le code et l'ai testé, et j'ai trouvé une chose inattendue qui ne se cache pas automatiquement lorsque la longueur de la chaîne aléatoire est trop longue.
w7_s_p4_EDIT_Comment_1("Some random text AAAAAAAA");