Questions des débutants MQL5 MT5 MetaTrader 5 - page 758
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
Des erreurs se produisent - quel est le problème ? Dans MQL4, cela fonctionne...
Avez-vous vu l'aide d'iMA?
Première étape : déclarer une variable dans l'"en-tête" pour stocker la poignée de l'indicateur iMA :
Deuxième étape : créer le handle de l'indicateur dans OnInit().
Et le résultat (le réticule sur la capture d'écran est placé sur la barre n°1) :
Si j'essaie d'utiliser le double MA[1] dans la boucle, dois-je utiliser le double MA[1] ; ou est-il préférable de demander/recevoir une taille de tableau plus grande ? Je ne comprends pas pourquoi toutes ces complications sont nécessaires - quel est l'avantage par rapport à MQL4.
Mon exemple avec la fonction iMAGetest un exemple conçu pour recevoir une valeur à la fois d'un indicateur. Si vous voulez obtenir plus de valeurs de l'indicateur, vous devez utiliserCopyBuffer avec les paramètres "from" et "to" et enregistrer le résultat dans un tableau.
Ajouté : il y aura un exemple plus tard ...
Exemple promis.
Paramètres d'entrée :
Travailler avec le tableau et l'indicateur de moyenne mobile dans l'Expert Advisor :
Veuillez prêter attention au tableau arr_ma et aux valeurs des éléments avec l'index #0 et l'index #8.
ds
Mon exemple avec la fonction iMAGetest un exemple conçu pour recevoir une valeur à la fois de l'indicateur. Si vous voulez obtenir plusieurs valeurs de l'indicateur, vous devez utiliserCopyBuffer avec les paramètres "from" et "to" et enregistrer le résultat dans un tableau.
Ajouté : il y aura un exemple plus tard ...
Exemple promis.
Paramètres d'entrée :
Travailler avec le tableau et l'indicateur de moyenne mobile dans l'Expert Advisor :
Veuillez prêter attention au tableau arr_ma et aux valeurs des éléments avec l'index #0 et l'index #8.
ds
Merci pour l'exemple !
Il est très important pour moi de comprendre s'il y a un avantage à demander une seule valeur d'indicateur et à copier une douzaine de valeurs d'indicateur - peut-être y a-t-il eu des recherches à ce sujet ?
Le fait que la série chronologique soit inversée - ce n'est pas bon - je suis habitué à la numérotation standard des barres 0123, mais ici c'est dans l'ordre inverse - 1230.
Si je ne sais pas de combien de barres j'ai besoin pendant la recherche (par exemple, lorsque nous recherchons la MA et le point de passage des barres), je dois alors demander le nombre maximal possible ? Cela affecte-t-il les performances de quelque manière que ce soit ?
Merci pour l'exemple !
Il est très important pour moi de comprendre s'il y a un avantage à demander une seule valeur d'indicateur et à copier une douzaine de valeurs d'indicateur - peut-être y a-t-il eu des recherches à ce sujet ?
...
Qui nous empêche de faire les recherches nous-mêmes :) ?
Le fait que la série chronologique soit inversée - ce n'est pas bon - je suis habitué à la numérotation standard des barres 0123, et ici nous avons 1230 dans l'ordre inverse.
...
Si je ne sais pas de quel nombre de barres j'aurai besoin dans la recherche (par exemple, lors de la recherche d'une MA et d'un point de passage des barres), dois-je demander le nombre maximum possible ? Cela affecte-t-il les performances de quelque manière que ce soit ?
Dans ce cas, il est préférable de faire plusieurs requêtes. Par exemple, première requête - 50 éléments, si nécessaire - deuxième requête (50 éléments à nouveau) ...
Qui nous empêche de faire nos propres recherches :) ?
Je suis gêné par mon analphabétisme en MQL5 - je peux induire tout le monde en erreur à cause d'une erreur dans le code, mais votre professionnalisme inspirerait plus de confiance dans de telles études !
Il suffit d'exécuterArraySetAsSeries('notre tableau',true) après avoir obtenu le tableau (après avoir appelé iMAGetArray).Je veux dire le faire dans une fonction à la fois ?
Dans ce cas, il est préférable de faire plusieurs requêtes. Par exemple, la première demande - 50 éléments, et, si nécessaire, la deuxième demande (50 éléments à nouveau) ......
C'est-à-dire le faire dans une fonction à la fois ?
...
C'est mieux de retourner le tableau :
Vladimir Karputov:
Après avoir reçu le tableau (après avoir appelé iMAGetArray), vous devrez exécuterArraySetAsSeries('notre tableau',true).
...
Brr... C'est-à-dire, mettre une boucle dans la boucle ? Pourquoi 50 et pas 100 ? Il n'en reste pas moins que des études sur ce sujet sont nécessaires, peut-être qu'il est inutile de s'informer sur plus d'un bar...Pas de boucles imbriquées - il n'y aura qu'une seule boucle autour de toutes les valeurs : tout le traitement est séquentiel - le résultat de la recherche dans une fonction séparée (dans celle-ci, nous demandons une certaine valeur - par exemple, 50 valeurs). Si nous ne trouvons pas le résultat, nous faisons une nouvelle demande.
Travailler avec des indicateurs dans MQL5 après MQL4 est terrible ! Ça me rend vraiment malade.
Je ne comprends pas pourquoi ils ne peuvent pas tout combiner dans une seule fonction, y compris la poignée, au lieu d'étaler l'appel de l'indicateur dans tout le code !
Et si les paramètres d' un indicateur sont modifiés par la fonction où se trouve l'indicateur, je ne comprends pas ce qu'il faut faire ! Dois-je initier toutes les variantes de l'indicateur ?
J'ai vu un exemple dans MQL4 - comment le faire dans MQL5 ?
Pouvez-vous me dire comment supprimer les marqueurs après la fermeture d'une position afin qu'ils ne soient pas affichés ?
Est-il possible de les supprimer de manière programmatique ?
Merci !