Questions des débutants MQL4 MT4 MetaTrader 4 - page 195
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
Trouvez le point où le prix traverse la MA vers le haut. Ce sera le début de la plage de recherche.
Trouvez le point où le prix a traversé la MA vers le bas. Ce serait la gamme d'arrêt.
Prenez iHighest() uniquement dans cette plage.
Et comment implémenter la recherche des points MA, pour que seulement 2 points extrêmes soient recherchés et non à l'infini. Je comprends aussi, mais si ce n'est pas difficile comment l'implémenter dans le code.
Un moyen : créer une variable au niveau du programme global de l'EA (déclarer une variable dans l'en-tête de l'EA) - dans cette variable, écrivez l'heure d'ouverture de la barre à laquelle le dernier croisement a été effectué. Cela permettra d'utiliser la troisième forme d'appel deCopyBuffer:
La référence des dates de début et de fin de l'intervalle de temps requis.
Ici, start_time est simplement l'heure de notre variable, et stop_time est l'heure de la dernière citation connue du serveur.
Et comment implémenter la recherche des points de la MA, pour qu'elle ne cherche que 2 points extérieurs, et non à l'infini. En mots, je comprends aussi, mais si ce n'est pas difficile comment l'implémenter dans le code.
Vous devez parcourir la boucle jusqu'à ce que vous trouviez un moyen de vous éloigner de la MA.
Un point, cette section mise en évidence par le rectangle jaune, interrompra la boucle avant qu'elle n'atteigne le deuxième croisement prix-MA. Le maximum sera trouvé au premier croisement à droite.
P.S. Quelle est la différence entre les deux zones mises en évidence ?
P.S. Quelle est la différence entre les deux zones mises en évidence ?
Ils peuvent être différents, c'est-à-dire que le premier point peut être supérieur ou inférieur au second.
Ce n'est qu'un exemple. Mais cela ne signifie pas qu'ils seront toujours identiques.
Qui peut donner des exemples de code avec des conditions similaires.. :
Valeur actuelle de MA> 0 bar.
Recherche du numéro de barre, Prix<MA, trouvé numéro de barre 1, écrire valeur dans tampon 2
Recherche duprochain numéro Prix>MA a trouvé la barre numéro 2, écrire la valeur dans le tampon 1.
Arrêtez la recherche.
Ensuite, entre les valeurs des tampons 1 et 2, recherchez le prix le plus bas Low.
Si la valeur MA actuelle < 0 bar
Recherche du nombre de barre, Price>MA, trouve le nombre de 1 barre, écrit la valeur dans le tampon 2.
Recherche duprochain numéro Price<MA a trouvé la barre numéro 2, écrit la valeur dans le buffer 1.
Arrêtez la recherche.
Ensuite, entre les valeurs des tampons 1 et 2, nous recherchons le prix le plus élevé High.
Ils peuvent être différents - le premier point peut être supérieur ou inférieur au second.
C'est juste un exemple. Mais cela ne signifie pas qu'ils seront toujours les mêmes.
Qui peut donner des exemples de code avec des conditions similaires.. :
La valeur actuelle MA> 0 bar
Nous recherchons la barre numéro Price<MA, nous avons trouvé la barre numéro 1 et nous écrivons la valeur dans le tampon 2.
Recherche duprochain numéro Prix>MA a trouvé la barre numéro 2, écrire la valeur dans le tampon 1.
Arrêtez la recherche.
Ensuite, entre les valeurs des tampons 1 et 2, recherchez le prix le plus bas Low.
Si la valeur MA actuelle < 0 bar
Recherche du nombre de barre, Price>MA, trouve le nombre de 1 barre, écrit la valeur dans le tampon 2.
Recherche duprochain numéro Price<MA a trouvé la barre numéro 2, écrit la valeur dans le tampon 1.
Arrêtez la recherche.
Ensuite, entre les valeurs du tampon 1 et 2, nous recherchons le prix le plus élevé High.
Si nous suivons l'image, nous devons démarrer une boucle et chercher jusqu'à ce que la condition MA<Value soit trouvée.
Une fois qu'il est trouvé, nous remplissons le tableau avec les prix élevés. Nous exécutons le cycle jusqu'à ce que la condition MA>Prix soit trouvée, dès que nous trouvons cette place - nous brisons le cycle.
Et dans le tableau, nous recherchons les prix les plus élevés.
Si vous suivez l'image, vous devriez exécuter une boucle et chercher jusqu'à ce que la condition MA<Value soit trouvée.
Une fois qu'il est trouvé, nous remplissons le tableau avec les prix élevés. Nous exécutons le cycle jusqu'à ce que la condition MA>Prix soit trouvée, dès que nous trouvons cette place - nous brisons le cycle.
Ensuite, nous recherchons les prix les plus élevés dans le tableau.
Vous avez raison et je l'ai aussi écrit de la même façon, mais comment l'implémenter dans le code, vous pouvez au moins nous donner un exemple de code de ceci :
lancer une boucle et effectuer une recherche jusqu'à ce que la condition MA<Price soit trouvée.
Dès que cette condition est trouvée,nous remplissons le tableau avec des prix élevés.
C'est exact et c'est comme ça que je l'ai écrit, mais comment l'implémenter dans le code ? Pouvez-vous au moins donner un exemple de code de ceci ?
exécuter une boucle et effectuer une recherche jusqu'à ce que la condition MA<Prix soit trouvée.
Dès que cette condition est trouvée,nous remplissons le tableau avec des prix élevés.
Je ne peux pas écrire le code maintenant, peut-être que quelqu'un d'autre l'écrira, c'est simple
C'est ce dont nous avons besoin, quelqu'un peut-il nous aider avec ce code.
Puis trouver la prochaine valeur où iLow>ma et retourner le numéro de barre No_2 .
Arrêtez la recherche et utilisez la fonction iHighest pour trouver le sommet entre ces barres
int val_index=iHighest(NULL,0,MODE_HIGH,No_2,No_1);
Ce n'est pas un code MQL5.
Ce n'est pas un code MQL5.
Il s'agit d'une mise en page, il n'y a pas de différence entre 4 et 5.
:)