Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 209
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
Le problème se situe dans cette ligne
Comme je veux vérifier plusieurs devises sur une barre, je dois vérifier l'heure et la devise pour éviter de répéter une alerte sur une barre et un symbole mais autoriser une alerte sur la même barre avec un symbole différent. A première vue, nous avons besoin d'un tableau supplémentaire avec des drapeaux indiquant si le symbole est vu ou non.
En général, nous devons soit ajouter une vérification du symbole à cette ligne, soit répéter la boucle uniquement lorsqu'une nouvelle barre apparaît. Mais j'ai peur que lorsqu'une nouvelle barre apparaît sur le symbole avec cet indicateur, une nouvelle barre ne soit pas encore apparue sur un autre symbole.
Conclusion : nous devons solliciter les muscles de notre tête pour déterminer si une nouvelle barre apparaît sur chaque symbole séparément, mais en même temps pour ne pas étirer le nombre de lignes à l'infini. Je n'ai pas de solution toute faite. Et je n'aime pas le suggérer en écrivant du code...
Et je n'ai pas résolu son problème ?
J'ai peut-être manqué quelque chose quelque part - j'ai écrit le code sur mon genou.
Et je n'ai pas résolu son problème ?
J'ai peut-être manqué quelque chose quelque part - j'ai écrit le code sur mon genou.
Artem, la dernière phrase de mon post explique tout. Je n'ai même pas regardé ton code. J'ai ouvert la première question non lue avec une citation de ma réponse précédente, j'ai répondu et j'ai ensuite vu les autres conseils. Je ne doute pas de l'exactitude de votre code, même de mon genou...
Artyom, la dernière phrase de mon post explique tout. Je n'ai même pas regardé ton code. J'ai ouvert la première question non lue, avec une citation de ma réponse précédente, j'ai répondu et j'ai ensuite vu d'autres conseils. Je ne doute pas de l'exactitude de votre code, même de mon genou...
J'aurais dit paresseux ;)
Même au premier coup d'œil, vous pouvez voir que le code dépend des ticks sur le symbole actuel. Et donc nous devons enlever la boucle de OnTick() et la mettre dans un timer. Et modifier légèrement la définition des alertes temporelles.
Bonjour à tous, il y a un malentendu sur le processus, dans la fonction "start" dans le cycle mm++ ; et suivre les changements dans celui-ci à travers Print(); donc la question : "Pourquoi au lieu de 1,2,3,4, etc. apparaissent des nombres à quatre chiffres ? "
le code lui-même
Bonjour à tous, il y a un malentendu sur le processus, dans la fonction "start" dans le cycle mm++ ; et suivre les changements dans celui-ci à travers Print() ; donc la question : "Pourquoi au lieu de 1,2,3,4, etc. apparaissent des nombres à quatre chiffres ? "
le code lui-même
Au premier passage, 10 secondesIndicateurCounted()=0
donclimite = nombre maximum de barres dans l'historique-1
Au premier lancement, pendant 10 secondesIndicatorCounted()=0
limite des moyens= barres maximales dans l'historique-1
toujours pas clair, déclaration et initialisation avec zéro en dehors de la boucle int mm=0 ; et placé dans la boucle mm++ ; print() montre des nombres à quatre chiffres changeant avec une différence d'une unité, seulement dans le sens descendant pour une raison quelconque.
Alexey Viktorov:
...vous devez forcer les muscles de votre tête...
Merci à tous ceux qui ont répondu.
Artyom Trishkin: Comme ça :
Limiter la vérification à une nouvelle barre ne fonctionnera pas car il y aura également des conditions qui devront être vérifiées à chaque tick.
J'ai essayé d'ajouter OnTimer() à votre code. Cela a fonctionné dans l'EA avec OnTick() mais comment le faire avec OnCalculate ?
Pouvez-vous me dire pourquoi les commandes ne s'ouvrent pas ?
Merci à tous ceux qui ont répondu.
Artyom, pourquoi écrivez-vous que vous ne l'avez pas résolu ? Il signale tous les instruments, mais il ne fait que charger lourdement le système. Y a-t-il un moyen de réduire la charge ?
La limite de la vérification sur une nouvelle barre ne suffira pas car il y aura aussi des conditions qui devront être vérifiées à chaque tick.
Dans votre code, j'ai essayé d'ajouter OnTimer(), cela a fonctionné dans l'EA avec OnTick() mais comment le faire avec OnCalculate ?
Essayez-le avec une minuterie de 200 millisecondes.