
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Prival:
Редко, но бывают ситуации, когда котировки по одному инструменту замирают и надолго (видел такое в йеной). И если советник висит на этой паре то ты попал, если не перевел весь код в OnTime().
Lizar:
Такое событие можно получить при помощи TimeCuurent(), а вот что с ним дальше делать, как синронизировать - вопрос.
А причем тут TimeCuurent()?
Справка гласит:
В обработчике OnTick() данная функция вернет время пришедшего обрабатываемого тика. В других случаях (например, вызов в обработчиках OnInit(), OnDeinit(), OnTimer() и так далее) это – время прихода последней котировки по любому символу, доступного в окне "Обзор рынка", то самое время, которое показано в заголовке этого окна.
Справка гласит:
В обработчике OnTick() данная функция вернет время пришедшего обрабатываемого тика. В других случаях (например, вызов в обработчиках OnInit(), OnDeinit(), OnTimer() и так далее) это – время прихода последней котировки по любому символу, доступного в окне "Обзор рынка", то самое время, которое показано в заголовке этого окна.
Да это понятно. только если поместить ее в OnTime мы сможем обновлять время не чаще раза в минуту, а если в текущую OnTick() то рискуем пропустить тики по какой-то из пар (в мультах).
А что делать в блоке обработки это понятно (для мультов) - Получаем новое значение, сравниваем с имеющимся и делаем выводы был новый тик или нет.
Но вот скажите мне, нафига это делать в эксперте?
Справка гласит:
ошибка. вот что гласит справка https://www.mql5.com/ru/docs/basis/function/events
Событие NewTick генерируется только для экспертов при поступлении нового тика по символу, к графику которого прикреплен эксперт.
Еще раз. Мы говорим про советник который висит на каком-то символе. Он запускается по событию
void OnTick() {}
если находиться внутри этой функции, а тиков по этой паре уже более часа нет, то и ничего сделать в течении часа нельзя. Пока единственный выход, это делать в таймере, он запускается независимо от прихода тиков по инструменту.
Да это понятно. только если поместить ее в OnTime мы сможем обновлять время не чаще раза в минуту, а если в текущую OnTick() то рискуем пропустить тики по какой-то из пар (в мультах).
ошибка. вот что гласит справка https://www.mql5.com/ru/docs/basis/function/events
Еще раз. Мы говорим про советник который висит на каком-то символе. Он запускается по событию
void OnTick() {}
если находиться внутри этой функции, а тиков по этой паре уже более часа нет, то и ничего сделать в течении часа нельзя. Пока единственный выход, это делать в таймере, он запускается независимо от прихода тиков по инструменту.
Да, если действовать в рамках этого https://www.mql5.com/ru/docs/basis/function/events, то согласен, что наилучший вариант, как сейчас видится, это OnTime. Но это нас только спасет от зависимости поступления тиков. И не спасет от однопоточности: пока обрабатываем сигнал по одному инструменту, рискуем пропустить или запаздать с обработкой других. Особенно это актуально становится при условии "время обработки торговых заявок от 2 до 7 секунд" + реквоты.
А про TimeCuurent() вспомнил, потому что Interesting заговорил про тики в реальном времени по всем парам находящимся в обзоре рынка.
В статье столько вариаций кода, но в итоге все равно не понятно, какую функцию корректнее использовать на МТ4 чтобы хоть чуть-чуть, что бы повысить соответствие того что рисует тестер с торговлей. Подскажите!