Bogue MQL5 lors du travail avec l'accès aux séries chronologiques iClose/iOpen, etc. - page 8
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
Il est possible d'essayer de déterminer.
S'il s'agit de minutes, vous pouvez comparer l'heure de la dernière barre avec TimeCurrent(). Si ce n'est pas M1, vous pouvez demander iTime(_Symbol,PERIOD_M1,0) et comparer avec TimeCurrent().
Vous pouvez comparer le cours acheteur ou le dernier cours (selon le symbole) avec le cours de clôture de la dernière barre. Vous pouvez demander directement à SymbolInfoTick le symbole actuel. En plus de l'offre et de la demande, il y a aussi le temps de tic-tac.
Merci, au moins quelques informations sur où et comment chercher les bugs si quelque chose a mal tourné.
mais je pense, que tout de même besoin d'une fonction intégrée pour vérifier l'état, ou mieux encore, il devrait être un drapeau, comme int _LastError, qui stockerait le nombre de ticks manqués, il serait utile lors de l'appel OnCalculate() - dans les calculs complexes ne retour immédiat, pour libérer le flux du symbole
Merci, au moins quelques informations sur où et comment chercher les bugs si quelque chose a mal tourné.
mais je pense, que tout de même besoin d'une fonction intégrée pour vérifier le statut, ou mieux encore, ce serait un drapeau, comme int _LastError, qui stockerait le nombre de ticks manqués, il serait pratique lors de l'appel OnCalculate() - dans les calculs complexes faire immédiatement retour, pour libérer le flux de symboles
pensé, réfléchi.... ce n'est pas la solution. que sera la connaissance des ticks manqués (Slava dit, qu'il est garanti que l'indicateur reçoit TOUS les ticks, et ce fait conduit à toutes les pendaisons non seulement des programmes MQL, mais même du terminal client) ? dans tous les cas, ces ticks devront être collectés et traités, et cela signifie, si nous avons manqué un tick, pourquoi espérer soudainement que la prochaine fois ce sera possible ? - c'est un cercle vicieux.
Je pensais... L'arrivée d'un nouveau tick devrait interrompre toutes les opérations, les calculs dans l'indicateur à ce moment-là, et toute fonction MQL standard devrait retourner une erreur pendant son exécution, si un nouveau tick arrive à ce moment-là ... Le travail avec l'indicateur devient alors clair, pratique et prévisible. Pour les autres types de programmes (scripts, Expert Advisors), il est presque inutile.
Et toutes sortes de vérifications de tics dans l'indicateur pour leur pertinence - pour dire les choses clairement, ce n'est pas la solution.
Nous avons une idée pour les indicateurs, qui ne contiennent pas le flag #property tester_everytick_calculate, d'inclure le mode de calcul basé sur la réception du paquet de ticks, au lieu de chaque tick.
Cela résoudra radicalement le problème des indicateurs lents, en préservant la possibilité d'un traitement garanti de chaque tick pour certains indicateurs.
Nous avons une idée pour les indicateurs, qui ne contiennent pas le flag #property tester_everytick_calculate, d'inclure le mode de calcul sur la base de la réception d'un paquet de ticks, au lieu de sur chaque tick.
Cela résoudra de façon spectaculaire le problème des indicateurs retardés, en préservant la possibilité d'un traitement garanti de chaque tick pour certains indicateurs.
Ainsi, vous serez en mesure d'avoir un indicateur très rapide avec un tel design ?
Si c'est le cas, c'est une excellente nouvelle !
Nous avons une idée pour les indicateurs, qui ne contiennent pas le flag #property tester_everytick_calculate, d'inclure le mode de calcul sur la base de l'acceptation du paquet de ticks, au lieu de chaque tick.
Cela résoudra radicalement le problème des indicateurs lents, en préservant la possibilité d'un traitement garanti de chaque tick pour certains indicateurs.
Et si vous faites une fonction standard pour obtenir un tableau multidevises synchronisé, ce sera une vraie fête.
Nous avons une idée pour les indicateurs, qui ne contiennent pas le flag #property tester_everytick_calculate, d'inclure le mode de calcul sur la base de la réception d'un paquet de ticks, au lieu de sur chaque tick.
Cela résoudra radicalement le problème des indicateurs lents, en préservant la possibilité du traitement garanti de chaque tick pour certains indicateurs.
Bonne idée !
Et de préférence, il devrait fonctionner sans aucune#propriété par défaut.
Si quelqu'un en a besoin autrement, alors qu'il mette#propriété.
Mais il existe une autre catégorie de problèmes - en temps réel, à chaque instant. Dans ce cas, soit vous avez le temps d'effectuer des calculs après un tick avant que le tick suivant n'arrive, soit vous ne l'avez pas, et alors la solution de trading ne sera pas pertinente (il n'y a pas de troisième voie). C'est pourquoi il n'y a qu'une seule façon correcte de résoudre le problème : interrompre tous les calculs en cours et renvoyer l'erreur lorsqu'un nouveau tick arrive. Sinon, on peut oublier le temps réel. Aujourd'hui, les ticks sont de plus en plus rapides chaque jour, et le chemin à parcourir est encore long. Il est donc nécessaire de planifier l'avenir, sans compter qu'il est impossible de traiter tous les ticks sans décalage dans le temps dans le présent.
La solution pour recevoir les ticks par paquets est bonne et probablement pas très chère, si nous n'avons pas besoin de temps réel (mais on ne sait pas comment les EA fonctionneront avec les indicateurs qui travaillent sur les prix "d'hier", mais passons).
Mais il existe un autre type de tâches - en temps réel, à chaque instant. Soit vous avez le temps d'effectuer des estimations après la réception d'un tick, soit vous ne l'avez pas, et la solution commerciale ne sera pas pertinente (il n'y a pas de troisième alternative). C'est pourquoi il n'y a qu'une seule façon correcte de résoudre le problème : interrompre tous les calculs en cours et renvoyer l'erreur lorsqu'un nouveau tick arrive. Sinon, on peut oublier le temps réel. Aujourd'hui, les ticks sont de plus en plus rapides chaque jour, et le chemin à parcourir est encore long. Il est donc nécessaire de planifier l'avenir, sans compter qu'il est impossible de traiter tous les ticks sans décalage dans le temps dans le présent.
La plupart des indicateurs EAs travaillent avec des barres fermées[1], c'est pourquoi le saut des ticks n'a pas d'importance, c'est le cas pour les indicateurs travaillant avec des ticks, mais ils ne sont pas nombreux, ils peuvent juste être alloués"#property tester_everytick_calculate".
Et encore une fois, si vous avez besoin de super-crochets, vous n'avez pas besoin d'un indicateur pour cela, tout cela peut être écrit dans le code du conseiller expert. Il n'est donc pas raisonnable de ralentir le travail de l'indicateur au nom de chaque tick.
Nous attendons"#property tester_everytick_calculate".
La plupart des indicateurs EAs travaillent avec des barres fermées[1], c'est pourquoi le saut des ticks n'a pas d'importance, c'est le cas pour les indicateurs travaillant avec des ticks, mais ils ne sont pas nombreux, ils peuvent juste être alloués"#property tester_everytick_calculate".
Et encore une fois, si vous avez besoin de super-crochets, vous n'avez pas besoin d'un indicateur pour cela, tout cela peut être écrit dans le code du conseiller expert. Il n'est donc pas raisonnable de ralentir le travail de l'indicateur au nom de chaque tick.
En attente de"#property tester_everytick_calculate"