Questions des débutants MQL5 MT5 MetaTrader 5 - page 1496
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
"Find the maximum value in the ticks array" - la valeur maximale de ce que nous trouvons ?
ticks[copié-1].bid ou ticks[copié-1].flags
Pour rire)))))
Il est fort probable que vous ayez confondu CopyTicks avec CopyRates, bien que dans ce dernier cas, vous disposiez également d'un tableau de structures et que vous spécifiez l'élément de la structure dont vous avez besoin.
double PrevClose = rates[copied-1].close ;
Vousavez une ligne supplémentaire dans votre code.
Vous n'en avez pas besoin car CopyTicks et CopyRates allouent eux-mêmes la taille du tableau lors de la copie.Merci pour l'astuce. Je ne le savais pas. J'insère cette ligne au cas où.
Est-ce que je comprends bien votre blague, à savoir que dans les rates, tous les prix sont moyennés et prennent en compte la barre, alors que dans les ticks, ce n'est pas le cas ? C'est la raison pour laquelle j'ai utilisé le terme tick pour désigner un intervalle de temps arbitraire, et non les prix de la barre. CopyRates dans ma formule similaire a rempli la variable copiée avec la valeur maximale de type ulong pour l'intervalle d'heure. Je n'ai pas pu résoudre ce problème non plus.
Merci pour le conseil. Je ne le savais pas. J'insère cette ligne au cas où.
Est-ce que je comprends bien votre plaisanterie selon laquelle les taux font la moyenne de tous les prix et tiennent compte de la barre, mais pas les ticks ? C'est pourquoi j'ai considéré que les ticks utilisaient un intervalle de temps arbitraire, et non les prix de la barre. CopyRates dans ma formule similaire a rempli la variable copiée avec la valeur maximale de type ulong pour l'intervalle d'heure. Je n'ai pas pu résoudre ce problème non plus.
Tout est faux.
MqlRates est une structure, et vous la traitez comme une variable.
MqlTick est également une structure.
Vous essayez de combiner le chaud et le mou, et le compilateur ne vous comprend pas.
Moi non plus, je ne comprends pas I)))))
Je pourrais peut-être vous suggérer quelque chose d'utile, mais votre code n'indique pas clairement ce que vous essayez de trouver.
Tout est faux.
MqlRates est une structure, et vous la traitez comme une variable.
MqlTick est également une structure.
Vous essayez de combiner le chaud et le mou, et le compilateur ne vous comprend pas.
Moi non plus, je ne comprends pas I))))
Je pourrais peut-être vous suggérer quelque chose d'utile, mais votre code n'indique pas clairement ce que vous essayez de trouver.
Il s'agit de modifier le WPR (Williams Percent Range) de manière à obtenir la différence des valeurs WPR pour une période de temps arbitraire, sans tenir compte des barres.
Il est possible (mais pas certain) que ce soit ce que vous vouliez obtenir.
double lowestLow = ArrayMinimum(bid, 0, copied) ;
Je vous remercie. Voici ce que j'ai obtenu, si j'ai bien compris la leçon :
Mais, malheureusement, à la ligne bid_arr[i] = ticks[i].bid ; le conseiller expert est sorti du graphique à cause d'un tableau hors plage dans 'namemyexpert.mq5' (204,12).Je vous remercie. Voici le résultat, si j'ai bien compris la leçon :
Puisque nous passons en boucle par tous les ticks de toute façon, nous ne pouvons pas copier dans cette boucle, mais chercher les maximums-minimums en une seule fois.
D'ailleurs, si nous copions, il serait bon de définir d'abord les tailles des tableaux où nous copions, la boucle ne le fera pas pour nous, nous sortirons du tableau à la première itération. Seul CopyTicksRange redimensionne le tableau cible lui-même.
Puisque nous parcourons tous les ticks de toute façon, nous ne pouvons pas copier dans ce cycle, mais rechercher ces maximums-minimums en une seule fois.
D'ailleurs, si nous copions, il serait bon de définir d'abord les tailles des tableaux où nous copions, la boucle ne le fera pas pour nous, nous sortirons du tableau à la première itération. Seul CopyTicksRange redimensionne le tableau cible lui-même.
Je suis un perfectionniste, trier des éléments individuels d'un tableau de structures est comme frapper du verre avec du polystyrène.
Puisque nous parcourons tous les ticks de toute façon, nous ne pouvons pas copier dans ce cycle, mais rechercher ces maximums-minimums en une seule fois.
D'ailleurs, si nous copions, il serait bon de définir d'abord les tailles des tableaux où nous copions, la boucle ne le fera pas pour nous, nous sortirons du tableau à la première itération. Seul CopyTicksRange redimensionne le tableau cible lui-même.
Je suis désolé. Mon inattention. Corrigé. J'ai oublié que la valeur ArrayMaximum est un indice et non un prix. J'ai oublié que la valeur ArrayMaximum est un indice, pas un prix. Mais c'est corrigé maintenant.
Comme ArrayMaximum ne fonctionnait pas avec le tableau de ticks, j'ai essayé d'autres calculs, avec if dans une boucle. Pourquoi est-ce mieux ?
Pourquoi est-ce mieux ?