Questions des débutants MQL4 MT4 MetaTrader 4 - page 124
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
Bonjour !
Pouvez-vous me dire comment repeindre les barres sans utiliser de modèles dans mt4 ! ?
Ou comment appliquer un schéma de couleurs ?
Je vais simplifier un peu la réponse pour éviter toute confusion. Le signe (&) indique qu'un argument de fonction peut changer de valeur au moment de l'exécution et retournera à l'endroit d'où la fonction a été appelée avec une valeur différente. Dans le cas présent, la fonction SaveOrder peut modifier le contenu des tableaux g_arrstBuyOrderInfo et g_arrstSellOrderInfo, ainsi que les variables g_nBuyOrdersCnt et g_nSellOrdersCnt.
Merci. Cela devient un peu plus clair. Il n'est pas évident de savoir comment tout cela peut être découvert sans se référer au forum. Je n'ai pas trouvé de telles explications dans les tutoriels.
Veuillez me donner d'autres conseils :
1) Le compilateur écrit - 'g_nBuyOrdersCnt' - déclaration sans type ; 'g_nSellOrdersCnt' - déclaration sans type. Ai-je raison de supposer que g_nBuyOrdersCnt et g_nSellOrdersCnt doivent être déclarés globalement pour éviter une erreur du compilateur ?
2) Compilateur :les expressions 'for' ne sont pas autorisées dans une portée globale. Ce n'est pas clair ici.
3) Dans la fonctionvoid SaveOrderInfo(OrderInfo &arrstOrderInfo[], int &nOrdersCnt), le compilateur écrit : la déclaration de 'arrstOrderInfo' cache la déclaration globale. voir la déclaration précédente de 'arrstOrderInfo'. Ce n'est pas très clair non plus.
4) 'nOrderCnt' est un identifiant non déclaré. Pourquoi n'est-il déclaré nulle part ?
Bonjour !
Pouvez-vous me dire comment repeindre les barres sans utiliser de modèles dans mt4 ! ?
Ou comment appliquer un schéma de couleurs ?
En cas de programmation, voir les fonctions ChartSetInteger() et ChartGetInteger().
Merci. Ça commence à avoir un peu plus de sens. On ne voit pas très bien comment on peut découvrir tout cela sans se référer à un forum. Je n'ai pas trouvé de telles explications dans les manuels scolaires.
Veuillez me donner d'autres conseils :
1) Le compilateur écrit - 'g_nBuyOrdersCnt' - déclaration sans type ; 'g_nSellOrdersCnt' - déclaration sans type. Ai-je raison de supposer que g_nBuyOrdersCnt et g_nSellOrdersCnt doivent être déclarés globalement pour éviter une erreur du compilateur ?
2) Compilateur :les expressions 'for' ne sont pas autorisées dans une portée globale. Ce n'est pas clair ici.
3) Dans la fonctionvoid SaveOrderInfo(OrderInfo &arrstOrderInfo[], int &nOrdersCnt), le compilateur écrit : la déclaration de 'arrstOrderInfo' cache la déclaration globale. voir la déclaration précédente de 'arrstOrderInfo'. Ce n'est pas très clair non plus.
4) 'nOrderCnt' est un identifiant non déclaré. Pourquoi n'est-il déclaré nulle part ?
Voici comment tout cela devrait être dans le code si vous regardez le code dans son ensemble :
Une dernière chose : je ne comprends toujours pas d'où viennent les.n et les.f et ce qu'ils sont.
L'opérateur "point" indique l'accès à un membre d'une structure ou d'une classe. Dans ce cas, il s'agit d'une structure.
Les lettres n et f sont un moyen de spécifier le type de données stockées dans une variable. Après tout, avec un nombre énorme de variables, il est impossible de se souvenir du type de chacune d'entre elles. Et si dans le nom d'une variable il y a une indication de son type, la nécessité de se souvenir disparaît d'elle-même. n est le signe d'un nombre entier (de Numeric), f est un nombre réel (de float - nombre à virgule flottante). Cette façon d'écrire les noms de variables est appelée notation hongroise.
L'opérateur point indique l'accès à un membre d'une structure ou d'une classe. Dans ce cas, une structure.
Les lettres n et f sont un moyen de spécifier le type de données qui est stocké dans une variable. Après tout, avec un nombre énorme de variables, il est impossible de se souvenir du type de chacune d'entre elles. Et si dans le nom d'une variable il y a une indication de son type, la nécessité de se souvenir disparaît d'elle-même. n est le signe d'un nombre entier (de Numeric), f est un nombre réel (de float - nombre à virgule flottante). Cette façon de noter les noms de variables est appelée notation hongroise.
C'est là ! !! Il s'avère queg_ etg_n ne sont pas seulement une abréviation, mais des préfixes indiquant qu'il s'agit de variables entières globales et globales ! !! Ugh... Et je ne comprenais pas pourquoi ces tirets dans les désignations de variables... Comment est-il possible pour un débutant, qui n'est pas familier avec ces subtilités, d'écrire du code en utilisant des tableaux, des structures, etc. J'ai pensé que ma stratégie simple pouvait être rédigée dans un langage simple, sans plonger dans la jungle.
Pourriez-vous me donner un lien vers un tutoriel détaillé (étendu) sur mcl4 à étudier en parallèle de vos conseils ?
Et pourriez-vous écrire le code ci-dessus sans utiliser la notation hongroise pour la comparaison ? Êtes-vous sûr que la plateforme MT4 le comprend clairement ?
Et une question sur le code : à quoi sert lecontinue; ?
Si une commande n'est pas sélectionnée lors de la première itération, elle ne sera pas sélectionnée lors des itérations suivantes et le cycle se poursuivra indéfiniment ? Parce que le nombre de commandes ne change pas. Ne serait-il pas plus correct derompre avec un message d'erreur ?Graphiques, propriétés, couleurs du menu contextuel - avez-vous essayé ?
Merci, je l'ai déjà trouvé ! !!
En cas de programmation, voir les fonctions ChartSetInteger() et ChartGetInteger().
Merci de l'avoir déjà trouvé avec votre aide ! !!
C'est là ! !! Il s'avère queg_ etg_n ne sont pas seulement une abréviation, mais des préfixes qui indiquent qu'il s'agit de variables entières globales et globales ! !! Ugh... Et je ne comprenais pas pourquoi ces tirets dans les désignations de variables... Comment est-il possible pour un débutant, qui n'est pas familier avec ces subtilités, d'écrire du code en utilisant des tableaux, des structures, etc. J'ai pensé que ma stratégie simple pouvait être rédigée dans un langage simple, sans plonger dans la jungle.
Pour faire quelque chose, nous devons nous plonger dans les subtilités. Il n'y a pas d'autre moyen.
Pourriez-vous me donner un lien vers un tutoriel détaillé (étendu) sur mcl4 à étudier en parallèle de vos conseils ?
Je ne connais qu'un seul manuel sur MQL4 - celui de Sergey Kovalev.
Et pourriez-vous écrire le code ci-dessus sans utiliser la notation hongroise pour la comparaison ? Êtes-vous sûr que la plateforme MT4 le comprend clairement ?
Habituez-vous tout de suite à un formatage de code correct ;)) La notation hongroise a été inventée par des programmeurs assez expérimentés.
Et une question sur le code : à quoi sert lecontinue; ?
Donc, si une commande n'est pas sélectionnée à la première itération, elle ne le sera pas aux suivantes et la boucle se poursuivra à l'infini ? Parce que le nombre de commandes ne change pas. Ne serait-il pas plus correct derompre avec un message d'erreur ?Si nous n'avons pas réussi à sélectionner une commande, cela ne signifie pas que nous ne serons pas en mesure de sélectionner la commande suivante. Il est donc raisonnable de poursuivre la boucle.
Le fait de ne pas sélectionner une commande ne signifie pas que la commande suivante ne peut pas être sélectionnée. Il est donc raisonnable de poursuivre le cycle.
Et il n'est pas nécessaire d'afficher un message d'erreur? Peut-être serait-il utile de savoir pourquoi une commande n'est pas trouvée et comment l'éviter ?