![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Si vous montriez un morceau de code qui génère l'entrée, vous pourriez trouver l'erreur de logique plus rapidement.
Mais il devrait y avoir une solution communément acceptée dans MQL, non ? Comment "synchroniser" l'ouverture des barres pour différents symboles ? Eh bien, apparemment, nous devrions attendre l'ouverture d'une nouvelle barre pour tous les symboles utilisés. Mais comment le faire correctement ?
Pour le symbole négocié, le tick de la nouvelle barre est arrivé plus tôt, donc les anciennes barres du symbole analysé ont été impliquées dans l'analyse, le début a été calculé, et attend l'heure suivante. quelque chose comme ça.
C'est probablement comme ça que ça se passe. Mais il doit y avoir une solution dans MQL, non ? Ce n'est pas une super-fonction. Comment "synchroniser" le début de l'ouverture des barres pour différents symboles en temps réel ?
Si vous montriez un morceau de code qui génère l'entrée, il serait plus rapide de trouver l'erreur dans la logique.
Mais il devrait y avoir une solution communément acceptée dans MQL, non ? Comment "synchroniser" l'ouverture des barres pour différents symboles ? Eh bien, apparemment, nous devrions attendre l'ouverture d'une nouvelle barre pour tous les symboles utilisés. Mais comment le faire correctement ?
Oui - Appelez Bill Gates.
Bingo - Appelez Bill Gates
Eh bien, Bill Gates n'a rien à voir avec MQL. Il ne semble pas non plus avoir quelque chose à voir avec le forex : ))))))))).
Si vous montriez un morceau de code qui génère l'entrée, vous pourriez trouver l'erreur de logique plus rapidement.
Mais il devrait y avoir une solution communément acceptée dans MQL, non ? Comment "synchroniser" l'ouverture des barres pour différents symboles ? Eh bien, apparemment, nous devrions attendre l'ouverture d'une nouvelle barre pour tous les symboles utilisés. Mais comment le faire correctement ?
Dans mon exemple, il suffit d'attraper le début de l'heure pour n'importe quel instrument.
Vous n'avez pas besoin de synchroniser - je pense que c'est ce que vous faites.
tout en considérant que par d'autres, la nouvelle heure est aussi arrivée !
parce que ça va venir !
et effectuer le calcul, après quoi la décision est prise d'entrer dans la sortie.
Vous attrapez le tic-tac ! !! Et un nouveau tic-tac et le début de l'heure ne sont pas les mêmes !
un tic ne viendrait pas pendant environ 5 minutes...vous devez changer la logique d'attraper la nouvelle barre pour une barre plus douce.
vous avez des conditions trop dures pour le début de la barre - j'ai suggéré une condition plus souple
mais si tous les symboles (qui sont TAKING A tick ne viennent pas, alors un peu faux aussi - JUSTE CETTE VERY LOW VARIABILITY !
---
vous pourriez nous donner un morceau de code, nous pourrions en parler substantiellement.
----
Il semble que vous ayez quelque chose comme ça dans votre code.
attraper un NOUVEAU tick sur EURUSD et si en même temps il y a un tick sur USDCHF, alors vous êtes ok.
et si les deux événements sont séparés par le temps, VOUS N'ENTREZ PAS.
C'EST UNE LOGIQUE DÉFECTUEUSE
YuraZ писал (а):
honnêtement et ce n'est pas vraiment joli... Si le tic-tac n'est pas arrivé aux paires spécifiées et que vous le manquerez à nouveau.
Si le tick n'est pas arrivé, vous ne pouvez pas placer un ordre immédiatement, sauf si vous utilisez un script,
Et seulement si les tiques arrivent aux sociétés de courtage et qu'elles ne les transmettent pas à votre terminal (dans la journée).
C'est pourquoi, lorsque j'implémentais un Expert Advisor multi-devises, je réalisais une State Machine par Miles (ou Moore),
qui surveille les états ouverts d'ordre pour les paires nécessaires. Bien sûr, ce n'était pas toujours possible
Naturellement, je n'étais pas toujours en mesure d'ouvrir au prix nécessaire, mais cette approche garantissait que les ordres seraient TOUJOURS ouverts.
YuraZ a écrit (a) :
franchement et ce n'est pas vraiment joli... Si la tique n'est pas venue pour ces paires et que vous allez encore les manquer
Si le tick n'est pas arrivé, vous ne pouvez pas placer un ordre en une seule fois, à moins d'utiliser un script,
Et seulement si les tiques arrivent aux sociétés de courtage et qu'elles ne les transmettent pas à votre terminal (dans la journée).
C'est pourquoi, lorsque j'implémentais un Expert Advisor multi-devises, je réalisais une State Machine par Miles (ou Moore),
qui surveille les états ouverts d'ordre pour les paires nécessaires. Bien sûr, ce n'était pas toujours possible
Naturellement, je n'étais pas toujours en mesure d'ouvrir au prix nécessaire, mais cette approche garantissait que les ordres seraient TOUJOURS ouverts.
facile ! il est possible de passer un ordre :-) si le tick n'est pas venu
Réfléchissez-y ! Si vous ne trouvez rien, je vous donne un indice !
+1 une des options que VOUS avez indiquées
VOUS Attrapez le tic-tac ! !! et un nouveau tic-tac et le début de l'heure ne sont pas la même chose.
Un tic peut ne pas survenir avant environ 5 minutes...Vous devez changer la logique d'attraper subtilement une nouvelle barre pour une plus douce.
vous avez des conditions trop dures pour le début de la barre - j'ai suggéré une condition plus souple
mais si l'on utilise tous les instruments (qui n'arrivent pas), alors cela ne fonctionne pas non plus - C'EST LA FAIBLE VARIABILITÉ !
Oui, le problème est que l'EA doit fonctionner sur des bougies fermées. Par conséquent, si un chandelier n'a pas clôturé sur l'un des instruments utilisés, la décision ne sera pas prise.
C'est plus difficile avec le code car je ne suis pas un programmeur. Je ne peux pas exposer tout le code, comme vous pouvez le voir. Mais le programmeur qui l'a fait pour moi est maintenant sous un gros contrat et est très occupé et ne peut pas le faire. Je cherche donc d'abord une solution à ce problème, afin de ne pas marcher à nouveau sur le même râteau.
Si vous montriez un morceau de code qui génère l'entrée, vous pourriez trouver l'erreur de logique plus rapidement.
Mais il devrait y avoir une solution communément acceptée dans MQL, non ? Comment "synchroniser" l'ouverture des barres pour différents symboles ? Eh bien, apparemment, nous devrions attendre l'ouverture d'une nouvelle barre pour tous les symboles utilisés. Mais comment le faire correctement ?
Il n'y a pas besoin de synchronisation ou d'invention d'autres vélos. Tout a été inventé il y a longtemps. La présence d'une nouvelle barre formée est vérifiée uniquement pour l'instrument sur lequel l'Expert Advisor est installé à l'arrivée du premier tick. Et l'événement start() se déclenche également uniquement sur ce symbole à l'arrivée d'un nouveau tick. Je vous ai donné un morceau de code qui effectue cette vérification afin que la position suivante, en cas de requotes, ne soit pas ouverte sur la barre suivante et qu'après un échec, elle tente de s'ouvrir sur la même barre. Tout fonctionne bien pour moi, que ce soit en mode mono- ou multi-devises. Dans le cas des requotes, la transaction est ouverte sur la même barre, mais seulement avec un certain retard, et donc pas toujours au prix d'ouverture de la barre, mais avec un certain décalage. C'est-à-dire qu'il y aura des différences avec le testeur, mais pas dans les barres, mais dans le prix d'ouverture.
VOUS Attrapez le tic-tac ! !! et un nouveau tic-tac et le début de l'heure ne sont pas la même chose.
le tic-tac peut ne pas venir avant 5 minutes ---Vous devez changer la logique d'attraper subtilement une nouvelle barre pour une plus douce.
vous avez des conditions trop dures pour le début de la barre - j'ai suggéré une condition plus souple
mais si l'on utilise tous les instruments (qui ne se manifestent pas), cela ne fonctionne pas non plus - C'EST LA FAIBLE VARIABILITÉ !
Oui, le problème est que l'EA doit fonctionner sur des bougies fermées. Par conséquent, si un chandelier n'a pas clôturé sur l'un des instruments utilisés, la décision ne sera pas prise.
C'est plus difficile avec le code car je ne suis pas un programmeur. Je ne peux pas exposer tout le code, comme vous pouvez le voir. Mais le programmeur qui l'a fait pour moi est maintenant sous un gros contrat et est très occupé et ne peut pas le faire. Je cherche donc d'abord une solution à ce problème, afin de ne pas retomber sur le même râteau.
Et comment envisagez-vous la fermeture de l'heure en principe !
L'EURUSD a fermé et une nouvelle heure est ouverte, tandis que l'USDCHF est occupé pendant 15 minutes... Et bien, les tiques ne viennent pas !
Si un instrument a fermé l'HEURE, alors les autres peuvent être considérés comme fermés également.
les tiques peuvent ne pas venir les chercher
---
il ne faut pas penser que l'heure doit être clôturée par une coche pour toutes les paires nécessaires
il suffit d'obtenir le début d'une nouvelle barre sur n'importe quelle paire
---