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
Yedelkin:
Explication. Si un conseiller expert ne traite pas les ticks pour un symbole auquel il est attaché à un graphique, la génération continue d'événementsNewTick pour ce symbole entraînera un débordement de la file d'attente des événements traités par cet EA.
Qu'est-ce que tu veux dire ?
Il n'y a pas de OnTick() dans l'Expert Advisor, mais les événements NewTick sont mis en file d'attente ?
Comment savez-vous ce qui a analysé la file d'attente ? )
Je n'ai pas trouvé de moyen de désactiver le flux de ticks (événementNewTick) pour le symbole avec le conseiller expert attaché au graphique, si nécessaire.
J'ai l'impression d'avoir travaillé du dimanche au vendredi sans aucun repos... :))
Qu'est-ce que tu veux dire ?
Comment avez-vous su... ?
Je l'ai appris de deux manières. J'ai d'abord fait connaissance avec la combinaison EventChartCustom - OnChartEvent sur l'exemple d'un simple Expert Advisor collectant des signaux d'indicateurs à partir de symboles étrangers. En même temps, le conseiller expert ne travaille pas avec les ticks de son propre symbole, la fonction Ontick() dans le code du conseiller expert a été commentée. En exécutant l'EA dans le testeur, j'ai constaté que le temps de parcours diffère selon le symbole attaché à l'EA. Voir, par exemple, l'exemple ci-dessous. Avec les mêmes paramètres d'optimisation, les temps d'exécution sont sensiblement différents.
Le conseiller expert n'a pas de OnTick(), alors que les événements NewTick sont mis en file d'attente ?
Pour vérifier la réponse à cette question (la deuxième méthode), j'ai modifié le code de l'Expert Advisor de la manière suivante
C'est-à-dire que j'ai inséré une ligne avec un fond jaune pour détecter le fait de la réception de nouveaux ticks par le symbole. Les résultats montrent que les ticks pour le symbole, auquel le conseiller expert est attaché, sont reçus régulièrement :Eh bien, puisque le manuel dit " l'événement NewTick est généré lorsqu'un nouveau tick est reçu par un symbole, au graphique duquel le Conseiller Expert est attaché"Le fait que de nouveaux ticks soient reçus devrait entraîner la génération de l'événementNewTick.
À en juger par votre question, vous pensez qu'aucun événement NewTick n'est généré lorsque OnTick() est désactivé ? Mais je n'ai pas trouvé cette information dans le manuel.
On a l'impression d'avoir travaillé du dimanche au vendredi, sans repos... :))
C'est-à-dire que j'ai inséré une ligne sur fond jaune pour détecter le fait que de nouveaux ticks arrivent par symbole. D'après les résultats, vous pouvez voir que les ticks de
au symbole auquel le conseiller expert est attaché sont reçues régulièrement :
Avez-vous vérifié quel événement provoque l'appel de OnChartEvent avant d'appeler l'événement personnalisé ?
-------------
si
vous mettez un simple EA et le laissez tourner dans le testeur, il ne s'active pas.
Avez-vous d'autres fonctions qui appellent OnChartEvent ?
avez-vous d'autres fonctions qui appellent OnChartEvent.
Oui, bien sûr. Puisque le conseiller expert collecte les signaux d'indicateurs à partir de symboles tiers en utilisant la liaison EventChartCustom - OnChartEvent, chaque indicateur possède sa propre instance de la fonction EventChartCustom(). Le premier paramètre de chaque instance de la fonction EventChartCustom() contient un identifiant de graphique, auquel notre EA est attaché ; le second paramètre est zéro.
S'il est inséré dans un conseiller expert, il ne sera pas activé.
Il ne s'agit que d'une partie du code, - du conseiller expert qui collecte les signaux d'indicateurs provenant d'autres symboles. S'il n'y a pas d'indicateurs, cette partie du code (la fonction OnChartEvent) ne traitera pas les événements personnalisés en raison de leur absence.
Avez-vous vérifié quel événement provoque l'appel de OnChartEvent avant d'appeler l'événement personnalisé ?
Non, un peu faux. Je voulais voir si les ticks sont reçus par le symbole, au graphique duquel l'Expert Advisor est attaché, lorsque la fonction OnChartEvent() traite les événements personnalisés provenant des indicateurs d'autres symboles. On peut voir que les ticks de l'EURGBP sont reçus. Sur la base de la référence, je conclus que lorsque de nouveaux ticks arrivent pour le symbole, l'événement NewTick est généré.
Il n'est pas possible de déterminer laquelle de vos fonctions utilisées a conduit à des résultats de chronométrage différents. Sans code complet, c'est juste une supposition par le marc de café.
NewTick n'est pas directement lié à OnChartEvent de quelque manière que ce soit. C'est pourquoi le mécanisme de suivi des files d'attente que vous proposez est plutôt artificiel. Je ne suis pas sûr que ce soit correct.
Dans ce cas, je ne prétends pas que c'est NewTick qui crée les retards de test. Et je pense que ce sont les mécanismes de vos fixations qui sont à blâmer, pas l'événement lui-même.
Il n'est pas possible de déterminer laquelle de vos fonctions utilisées a conduit à des résultats de chronométrage différents. Sans code complet, c'est juste une supposition par le marc de café.
NewTick n'est pas directement lié à OnChartEvent de quelque manière que ce soit. C'est pourquoi le mécanisme de suivi des files d'attente que vous proposez est plutôt artificiel. Je ne suis pas sûr que ce soit correct.
Dans ce cas, je ne prétends pas que c'est NewTick qui crée les retards de test. Et je pense que ce sont vos mécanismes de liaison qui sont à blâmer, pas l'événement lui-même.
Ce n'est pas ce que je voulais dire depuis le début. Dans mon premier message, j'ai dit que je n'avais pas trouvé le moyen de désactiver les événements tick pour un symbole avec un Expert Advisor attaché à son graphique. Vous avez réagi à cette phrase, mais vous n'avez pas fourni un moyen de désactiver le flux de ticks pour le symbole requis, si nécessaire. J'en conclus que non seulement moi, mais vous aussi ne connaissez pas cette voie. Ma suggestion est donc toujours d'actualité : introduisez une fonction de basculement qui vous permette de désactiver par programme la génération de l'événement . NewTickpour le symbole qui a un conseiller expert attaché à son graphique.
En ce qui concerne les commentaires sur le "devinement par le gee" et "l'artificialité des mécanismes de suivi des files d'attente" - je n'ai pas proposé de regarder dans le code depuis le début et de chercher une réponse à la question "pourquoi cela se passe-t-il de cette façon ?". Comme vous pouvez le voir dans ma suggestion, j'ai déjà trouvé la réponse pour moi-même. Mais considérons le problème d'un point de vue plus abstrait, sans focaliser notre attention sur le code d'un conseiller expert particulier.
NewTick n'est en aucun cas relié directement à OnChartEvent.
Ok, supposons que ça l'est. Ainsi, NewTick estindirectement lié à OnChartEvent, mais il est connecté. Je l'ai déjà dit dans l'explication mais je vais le répéter encore une fois. Vous savez mieux que moi qu'il existe une "file d'attente commune d'événements" où s'empilent tous les événements qui se produisent, qu'ils soient prédéfinis ou définis par l'utilisateur. Ces événements sont traités un par un, dans l'ordre où ils sont reçus. Comme la file d'attente a une taille limitée, lorsqu'elle est pleine, les anciens événements sont supprimés sans être traités. C'est bien ça ?
Ainsi, il s'avère que si le conseiller expert ne prévoit pas de traiter les événements NewTick, mais que ces événements sont toujours générés, alors ma file d'attente générale d'événements sera simplement encombrée d'événements NewTick inutiles, et il y aura un risque de ne pas traiter les événements utilisateur obsolètes qui doivent être traités par le conseiller expert. J'espère que vous êtes d'accord avec cette conclusion. C'est pourquoi j'ai fait la suggestion ci-dessus.
Bien sûr, je ne connais pas toutes les subtilités du fonctionnement de la file d'attente des événements et de l'événement NewTick. Il se peut donc que je me trompe dans certaines conclusions et je considérerai toute explication avec intérêt.
Dans ce cas, je ne prétends pas que c'est NewTick qui crée les retards de test. Et je pense que ce sont les mécanismes de vos fixations qui sont à blâmer, pas l'événement lui-même.
Pour référence. Le Conseiller Expert articule les instances d'un seul et même indicateur avec les mêmes paramètres et avec le même "mécanisme de liaison" sur les symboles adjacents, sur un seul et même intervalle de temps. La liaison est la même : EventChartCustom - OnChartEvent.
Ai-je bien compris que vous êtes d'accord avec l'affirmation selon laquelle "s'il n'y a pas de OnTick() dans un conseiller expert, les événements NewTick ne sont pas du tout mis en file d'attente" ?
Pourquoi deviner et inventer des hypothèses ?
votre demande d'"introduire une fonction de commutation permettant de désactiver de manière programmatique la génération d'événements" . NewTickpour le symbole auquel le conseiller expert est attaché au graphique. " est clair.
Écrivez à Servicedesk.
tout le reste, c'est se battre contre des moulins à vent.
Pourquoi deviner et concocter des hypothèses ?
tout le reste est une lutte contre des moulins à vent.
Vous ne dites rien :) Certains ont l'habitude de travailler à l'aveuglette, tandis que d'autres cherchent à en savoir plus sur le phénomène à endiguer. Les hypothèses naissent en l'absence de telle ou telle information. Merci de participer à la discussion.
J'ai écrit au SD. Je ne savais pas que des suggestions pouvaient y être adressées.