Есть ли система прерываний при обработки событий MT4. Если при обработке события NewTick обработчиком OnTick, происходит событие Timer, то какой сценарий выполняется: - страница 5
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В моём советнике критичные к скорости выполнения расчеты должны выполняться по приходу нового тика. Прочие расчеты и различного рода отображения информации должны выполняться во время простоя советника между завершением обработки прошлого тика и приходом будущего. Я использую миллисекундный таймер для инициирования попыток обработки некритичных расчетов. Поэтому мне важно, чтобы расчеты по таймеру не мешали расчетам по приходу тиков. Отсюда и интерес к системе обработчиков и порядку их взаимодействия.
Ну никто же не заставляет все, что происходит в терминале, реализоваться в виде одной MQL-программы.
В советнике должны быть ТОЛЬКО торговые критически-важные дела - потому что это логично. Все остальное - в другой MQL-программме: еще один советник или индикатор.
Ну никто же не заставляет все, что происходит в терминале, реализоваться в виде одной MQL-программы.
В советнике должны быть ТОЛЬКО торговые критически-важные дела - потому что это логично. Все остальное - в другой MQL-программме: еще один советник или индикатор.
Да хоть сколько можно программ сделать, но терминал может одновременно обрабатывать только одну команду. Поэтому когда несколько советников висят на одном терминале я всегда проверяю занятость канала. Как не разбивай, а все равно очередь ( Единственный, видимый для меня, вариант - это иметь возможность ручного прерывания или ручного запуска проверки события. Если приказ уде висит на терминале, то остается только ждать (например открытие или закрытие ордеров)
замкнутый круг ... Как только появится протокол общения этот протокол сразу встанет в очередь. В цикле Вы можете проверять приход тика когда хотите, даже внутри таймера. Т.е. Вы можете прервать обработку одного события в пользу другого. Больше вариантов прерывания события я не вижу ...
Ошибаетесь. Здесь будет 2 потока. Рабочий поток тиков никогда ничего не ждет кроме новых тиков и обрабатывает их сразу по приходу, отправляя нотификацию медленному потоку.
Медленный поток обновляет свое состояние когда успевает. На быстром потоке тиков это никак не сказывается.
Ошибаетесь. Здесь будет 2 потока. Рабочий поток тиков никогда ничего не ждет кроме новых тиков и обрабатывает их сразу по приходу, отправляя нотификацию медленному потоку.
Медленный поток обновляет свое состояние когда успевает. На быстром потоке тиков это никак не сказывается.
Протокол проектирует разработчик. Если разработчик в курсе только синхронных протоколов, то действительно у него будут блокировки. Если он знает принципы асинхронной и односторонней передачи данных, то может сделать протокол, отвечающей поставленной задаче - без потерь времени в высокоприоритетном потоке.
Да хоть сколько можно программ сделать, но терминал может одновременно обрабатывать только одну команду.
Давно не так.