![Обработчик события "новый бар" Обработчик события "новый бар"](https://c.mql5.com/36/2/obrabotchik-sobitiya-noviy-bar__3.png)
- 2010.10.04
- Konstantin Gruzdev
- www.mql5.com
Спасибо, очень хорошая статья.
На форуме как-то проскользнула мысль о том, что было бы хорошо иметь стандартный обработчик события «новый бар». Быть может когда-то разработчики придут к этому, а может и нет.
Почему же проскользнула. Вот тут большими буквами написано https://www.mql5.com/ru/forum/2176/page21/#comment_26385, что isNewBar() нужно и можно программировать.
Дальше можно поиграть в игру «найдите десять отличий». Кроме странностей работы эксперта на демо-счете, очевидно, что на демо-счете и в тестере есть отличия и они видны невооруженным взглядом… Оставлю это для страстей на форуме или для следующей статьи, если в этом будет потребность.
Не видно страстей, боюсь многие это даже не увидели. Страсти на чемпионате начнутся, когда сыпаться советники начнут…
Теперь можно пойти дальше и сделать мультивалютный обработчик событий NewBar. Но это тема целой статьи.
А к этому могу лишь добавить великие стихи, великого поэта
О сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель...
Спасибо, очень хорошая статья.
Почему же проскользнула. Вот тут большими буквами написано https://www.mql5.com/ru/forum/2176/page21/#comment_26385, что isNewBar() нужно и можно программировать.
Упс, что-то я это пропустил. Можно было бы еще пару идей вписать. Кстати, я на чемпионат выложил советника на основе п.5. Сырой правда.
Не видно страстей, боюсь многие это даже не увидели.
Да, похоже, что многие еще в шоке от старта чемпионата.
А к этому могу лишь добавить великие стихи, великого поэта
Стихи в тему. Вот кто бы еще решения реальные предлагал.
лучше б разработчики просто ввели функцию isNewBar как стандратную...
Как я вижу, для разработчиков нет смысла вводить стандартную функцию isNewBar, т.к. это частный случай OnTick. Да и с Prival согласен, что это программируемое событие.
Вводить стандартную обработку этого события скорей всего даже необходимо. По крайней мере на уровне экспертов.
По крайней мере это целесообразней с точки зрения многопоточности в работе. Ведь по любому обработку на уровне терминала можно организовать в несколько потоков, а из MQL мы получим только один поток.
На мой взгляд стандартная обработка будет особенная выгодна для мультивалютной работы.
PS
Да вообще разработчикам стоит подумать над изменением существующих обработчиков событий, те же самые OnTrade() и OnTick().
Я бы лично предпочел увидеть у них как минимум символ в качестве параметра...
Я бы и OnTick() изменил, вернее его логику. Сейчас это событие генерируется если пришел новый тик по валютной паре на которой висит советник. С точки зрении мультивалютного анализа, лучше было бы (мне так кажется) генерировать это событие если пришел новый тик по любому инструменту.
Т.е. изменилась матрица (обзор рынка) генерируется событие newTick() c указанием, что там в матрице поменялось. Было бы удобнее все синхронизировать.
Редко, но бывают ситуации, когда котировки по одному инструменту замирают и надолго (видел такое в йеной). И если советник висит на этой паре то ты попал, если не перевел весь код в OnTime().
Вводить стандартную обработку этого события скорей всего даже необходимо. По крайней мере на уровне экспертов.
По крайней мере это целесообразней с точки зрения многопоточности в работе. Ведь по любому обработку на уровне терминала можно организовать в несколько потоков, а из MQL мы получим только один поток.
Т.е. изменилась матрица (обзор рынка) генерируется событие newTick() c указанием, что там в матрице поменялось. Было бы удобнее все синхронизировать.
Такое событие можно получить при помощи TimeCuurent(), а вот что с ним дальше делать, как синронизировать - вопрос.
Я бы и OnTick()
изменил, вернее его логику. Сейчас это событие генерируется если пришел новый
тик по валютной паре на которой висит советник. С точки зрении мультивалютного
анализа, лучше было бы (мне так кажется) генерировать это событие если пришел новый тик по любому инструменту.
Ну я про то же, в OnTick() и OnTrade() как минимум нужно добавить имя символа в качестве параметра (в OnTrade() еще желательно и тип события).
При таком раскладе OnTick() к примеру может генерироваться всякий раз когда приходит новый тик по одному из символов (инструментов) присутствующих в обзоре.
![Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика](/i/community/logo_mql5_small.png)
- www.mql5.com
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Обработчик события "новый бар":
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
Автор: Константин