Ошибки, баги, вопросы - страница 3583

 
Alexey Viktorov #:

Так это ещё лучше. Чаще не реже.

Комментарии к статье я прочёл все. Ничего о затыках не встретил.

Впрочем если у кого есть возможность проверить наличие стакана у других ДЦ, просьба поделиться результатом.

нашел, Стакан в Тестере не работает

и зачем чаще то)) и так каждый тик приходит в робота

из Учебника:

Вместе с тем, следует еще раз отметить, что события стакана доступны на платформе только онлайн, но не в тестере. Если торговая система будет построена исключительно на квази-тиках из стакана, для её тестирования потребуется применение сторонних решений, обеспечивающих сбор и воспроизведение стаканов в тестере.


Учебник по MQL5: Автоматизация торговли / Тестирование и оптимизация экспертов
Учебник по MQL5: Автоматизация торговли / Тестирование и оптимизация экспертов
  • www.mql5.com
Разработка экспертов подразумевает не только и не столько реализацию торговой стратегии на MQL5, а в большей степени — тестирование её финансовых...
 
lynxntech #:

внизу есть заметка -  Обратите внимание, что событие OnBookEvent (если оно транслируется для символа) поступает чаще, чем OnTick.

OnBookEvent может поступать гораздо чаще, чем OnTick (далеко не каждое изменение в стакане порождает тик) и, соответственно, требовать больше ресурсов для обработки.

Когда плотно копал в эту сторону, обратил внимание, что OnTick приходит раньше, чем соответствующее OnBookEvent (возможно, зависит от настройки сервера, т.е., от брокера).

OnTick, пришедшие во время обработки (или при наличии в очереди) другого OnTick - отбрасываются. А как с этим у OnBookEvent? По идее, должно быть так же, но, вроде, в явном виде это нигде не попадалось.

Как я понимаю, далеко не кажый форекс-брокер (если вообще есть такие) транслирует стакан и, соответственно, OnBookEvent.

 
lynxntech #:

нашел, Стакан в Тестере не работает

и зачем чаще то)) и так каждый тик приходит в робота

из Учебника:

Вместе с тем, следует еще раз отметить, что события стакана доступны на платформе только онлайн, но не в тестере. Если торговая система будет построена исключительно на квази-тиках из стакана, для её тестирования потребуется применение сторонних решений, обеспечивающих сбор и воспроизведение стаканов в тестере.


Так и OnChartEvent в тестере не работает… И вышеуказанный индикатор из статьи тоже не работает в тестере. К чему вы об этом говорите? Меня интересует все-ли ДЦ транслируют стаканы по валютным парам или нет. А кому что использовать - дело каждого. Я никого ни к чему не агитирую.

 
lynxntech #:
и так каждый тик приходит в робота

Именно что не каждый!

 
Alexey Viktorov #:

Так и OnChartEvent в тестере не работает… И вышеуказанный индикатор из статьи тоже не работает в тестере. К чему вы об этом говорите? Меня интересует все-ли ДЦ транслируют стаканы по валютным парам или нет. А кому что использовать - дело каждого. Я никого ни к чему не агитирую.

Индикатор шпион работает, может только кастомные события работают.. EventChartCustom

 
JRandomTrader #:

Именно что не каждый!

я про OnChartEvent, есть доказательства? откуда такие мысли? 

в общем для меня не актуально, на первом тике нового бара откроет или на втором(он может и выгоднее будет 50/50)

 
lynxntech #:

я про OnChartEvent, есть доказательства? откуда такие мысли? 

в общем для меня не актуально, на первом тике нового бара откроет или на втором(он может и выгоднее будет 50/50)

Так вот же! https://www.mql5.com/ru/book/automation/experts/experts_ontick

Все события в экспертах обрабатываются одно за другим в порядке поступления, поскольку эксперты, как и все другие MQL-программы, являются однопоточными.
Если в очереди уже есть событие OnTick или такое событие обрабатывается, то новые события OnTick в очередь не ставятся.

Или вот: https://www.mql5.com/ru/docs/runtime/event_fire#newtick

NewTick #

Событие NewTick генерируется при поступлении новых котировок и обрабатывается функцией OnTick() у присоединенных советников.
Если при поступлении новой котировки выполнялась функция OnTick, запущенная на предыдущей котировке,
то пришедшая котировка будет проигнорирована советником, так как соответствующее событие не будет поставлено в очередь событий эксперта.
Все пришедшие во время выполнения программы новые котировки программой игнорируются до тех пор, пока не завершится очередное выполнение функции OnTick().
После этого функция будет запущена только после прихода очередной новой котировки. 
 

не велика беда, так работает на всех обработчиках,

Из Справки:

Программа получает события только от графика, на котором она запущена. Все события обрабатываются одно за другим в порядке поступления. Если в очереди уже есть событие NewTick либо это событие находится в состоянии обработки, то новое событие NewTick в очередь mql5-программы не ставится. Аналогично, если в очереди mql5-программы уже находится событие ChartEvent или такое событие обрабатывается, то новое событие такого типа не ставится в очередь. Обработка событий таймера производится по такой же схеме – если в очереди находится или уже обрабатывается событие Timer, то новое событие таймера не ставится в очередь.

Про стакан там не сказано, но он ведь не работает в Тестере, и сыпет не "нужными" изменениями, т.е. он еще больше заспамит робота чем все вышеперечисленные обработчики.

 
Alexey Viktorov #:

Спасибо. Почти прочёл.

Вот меня интересует такой вопрос: Ведь статья лохматого 2011 года… Прошло аж ТРИНАДЦАТЬ ЛЕТ! Представляете на сколько изменился язык?

Я не знаю у всех-ли брокеров имеются стаканы цен по валютным парам, но MQ-Demo работает с огромным успехом.

На любом графике можно получить тики любой валютной пары. Следовательно получив тик по паре, можно с огромным успехом получить и новый бар, и значения любого индикатора, и может ещё кому что пожелается в пределах разумного.

Я не эксперт, поэтому не могу понять, каким образом вы собираетесь получить тики из стакана? Ну или хотя бы не сам тик, а событие "новый тик".

Мнится мне, вы путаете тёплое с мягким. Поправьте, если ошибаюсь.

 
Aleksandr Slavskii #:

Я не эксперт, поэтому не могу понять, каким образом вы собираетесь получить тики из стакана? Ну или хотя бы не сам тик, а событие "новый тик".

Мнится мне, вы путаете тёплое с мягким. Поправьте, если ошибаюсь.

https://www.mql5.com/ru/articles/1179

Рецепты MQL5 - обработка события BookEvent
Рецепты MQL5 - обработка события BookEvent
  • www.mql5.com
В статье рассматриваются событие стакана BookEvent и принцип его обработки. В качестве примера создается MQL5-программа, обрабатывающая состояния стакана. Используется объектно-ориентированный подход. Результаты обработки выводятся на экран в виде панели и уровней стакана.