Discussion de l'article "Le gestionnaire d'événements "New Bar""

 

Un nouvel article Le gestionnaire d'événements "New Bar" a été publié :

Le langage de programmation MQL5 est en mesure de résoudre des problèmes à un tout nouveau niveau. Même ces tâches, qui offrent déjà de telles solutions, grâce à la programmation orientée objet peuvent atteindre un niveau supérieur. Dans cet article, nous prenons un exemple particulièrement simple de vérification d'une nouvelle barre sur un graphique, qui a été transformé en un outil plutôt puissant et polyvalent. Quel outil ? Découvrez-le dans cet article.

Exécutons les deux Expert Advisors sur des graphiques avec la même paire et la même période. Voyons ce que nous avons :


Tout d'abord, les deux Expert Advisors signalent de manière synchronisée la nouvelle barre. Puis ils se taisent et seulement quatre minutes plus tard, ils informent qu'il y a uen nouvelle barre (ce temps est marqué comme 1). C'est bon - je viens de me déconnecter d'Internet pendant quelques minutes et j'ai décidé de voir ce qui se passera. Malgré le fait que peu de barres se soient formés, nous n'avons pas reçu cette information. Dans notre nouvel Expert Advisor, nous pouvons corriger cet inconvénient, puisque notre méthode isNewBar() permet de faire une telle chose.

Auteur : Konstantin Gruzdev

 
oh mon dieu... je n'ai pas pu aller jusqu'au bout... J'aurais aimé que les développeurs introduisent la fonction isNewBar comme standard.... le nombre d'erreurs est stupéfiant... et ce dans une fonction primitive d'apparition de la nouvelle barre.
Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 
Je dirais que
 

Merci, très bon article.

На форуме как-то проскользнула мысль о том, что было бы хорошо иметь стандартный обработчик события «новый бар». Быть может когда-то разработчики придут к этому, а может и нет.

Pourquoi il est passé inaperçu. Ici même, il est écrit en grosses lettres https://www.mql5.com/ru/forum/2176/page21/#comment_26385 que isNewBar() est nécessaire et peut être programmé.

En outre, vous pouvez jouer au jeu "trouvez dix différences". Outre les bizarreries du fonctionnement de l'Expert Advisor sur le compte de démonstration, il est évident qu'il y a des différences sur le compte de démonstration et dans le testeur, et elles sont visibles à l'œil nu... Je laisse cela aux passions sur le forum ou au prochain article, si le besoin s'en fait sentir.

On ne voit pas les passions, j'ai bien peur que beaucoup de gens ne l'aient même pas vu. Les passions dans le championnat commenceront quand les conseillers commenceront à tomber....

Nous pouvons maintenant aller plus loin et créer un gestionnaire d'événements NewBar multidevises. Mais cela fait l'objet d'un article entier.

Et à cela, je ne peux qu'ajouter un grand poème d'un grand poète.

Que de découvertes merveilleuses

Prépare l'esprit de la lumière

Et l'expérience, le fils des erreurs difficiles,

Et le génie, l'ami des paradoxes,

Et le hasard, inventeur de Dieu....

 
Prival:

Merci, très bon article.

Pourquoi il est passé inaperçu. Juste là, en grosses lettres, il est dit https://www.mql5.com/ru/forum/2176/page21/#comment_26385 que isNewBar() est nécessaire et peut être programmé.

Oups, quelque chose m'a échappé. J'aurais pu ajouter quelques idées supplémentaires. D'ailleurs, j'ai posté un EA basé sur le point 5. Il est brut, cependant.

On ne voit pas les passions, je crains que beaucoup de gens ne l'aient même pas vu.

Oui, il semble que beaucoup de gens soient encore sous le choc du début du championnat.

Et à cela, je ne peux qu'ajouter un grand poème, un grand poète.

Un poème sur le thème. J'aimerais que quelqu'un propose de vraies solutions.

 
maryan.dirtyn:
il serait préférable que les développeurs introduisent simplement la fonction isNewBar comme une fonction standard...
De mon point de vue, cela n'a pas de sens pour les développeurs d'introduire une fonction isNewBar standard, car c'est un cas spécial de OnTick. Et je suis d'accord avec Prival pour dire qu'il s'agit d'un événement programmable.
[Supprimé]  
Lizar:
De mon point de vue, il n'est pas logique que les développeurs introduisent une fonction isNewBar standard, car il s'agit d'un cas particulier de OnTick. Et je suis d'accord avec Prival pour dire qu'il s'agit d'un événement programmable.

Il est même probablement nécessaire d'introduire un traitement standard de cet événement. Au moins au niveau des experts.

En tout cas, c'est plus pratique du point de vue du multithreading dans le travail. Après tout, tout traitement au niveau du terminal peut être organisé en plusieurs fils, mais dans MQL, nous n'aurons qu'un seul fil.

À mon avis, le traitement standard sera particulièrement avantageux pour le travail en multidevise.

PS

En général, les développeurs devraient penser à modifier les gestionnaires d'événements existants, les mêmes OnTrade() et OnTick().

Personnellement, je préférerais qu'ils aient au moins un symbole comme paramètre...

 

Je modifierais également OnTick(), ou plutôt sa logique. Maintenant, cet événement est généré s'il y a un nouveau tick sur la paire de devises sur laquelle l'Expert Advisor est accroché. Du point de vue de l'analyse multidevises, il serait préférable (je le pense) de générer cet événement s'il y a un nouveau tick sur n'importe quel instrument.

Si la matrice a changé (révision du marché), l'événement newTick() est généré avec indiquant ce qui a changé dans la matrice. Il serait plus pratique de tout synchroniser .

Rarement, mais il y a des situations où les cotations d'un instrument se figent pendant un long moment (j'ai vu une telle situation pour le yen). Et si le conseiller expert se bloque sur cette paire, vous êtes dans le pétrin si vous n'avez pas traduit tout le code en OnTime().

 
Interesting:

Il est probablement même nécessaire d'introduire un traitement standard de cet événement. Au moins au niveau des experts.

En tout cas, c'est plus pratique du point de vue du multithreading dans le travail. Après tout, tout traitement au niveau du terminal peut être organisé en plusieurs fils, alors que MQL n'en aura qu'un seul.

Oui, je suis d'accord avec la question du multithreading. Mais il s'agit d'un problème général de traitement de tout événement, et pas spécifiquement de NewBar.
 
Prival:

Par exemple, si la matrice a changé ( aperçu du marché ), l'événement newTick() est généré avec indiquant ce qui a changé dans la matrice. Il serait plus pratique de tout synchroniser .


Un tel événement peut être reçu à l'aide de TimeCuurent(), mais la question est de savoir ce qu'il faut en faire et comment le synchroniser.
[Supprimé]  
Prival:

Je modifierais également OnTick(), ou plutôt sa logique. Actuellement, cet événement est généré s'il y a un nouveau tick sur la paire de devises sur laquelle l'Expert Advisor est accroché. Du point de vue de l'analyse multidevises, il serait préférable (à mon avis) de générer cet événement en cas de nouveau tick pour n'importe quel instrument.


Je veux dire la même chose, dans OnTick() et OnTrade() il faut au moins ajouter le nom du symbole comme paramètre (dans OnTrade() il est aussi souhaitable d'ajouter le type d'événement).

Dans ce cas, OnTick(), par exemple, peut être généré à chaque nouveau tick sur l'un des symboles (instruments) présents dans la vue d'ensemble.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика - Документация по MQL5