Доброго времени суток, подскажите как распределяются потоки внутри терминала, я что то запутался слегка ? То что робота распаралеливать
нельзя это я знаю, меня другое интересует.
Я немного запутался два варианта опишу как я понимаю может быть и буду благодарен за разъяснения:
Вариант 1:
- каждый робот работает в своем потоке
- все события запускаемые внутри робота запускаются в потоке робота синхронно.
Вариант 2:
- каждый робот запускается в своем потоке
- все события робота запускаются во вторичных потоках относительно потоку робота
Касательно событий, меня интересуют по большому счету лишь 4:
- OnTick
- OnTradeTransaction
- OnTrade
- OnBookEvent
Как минимум последние два думаю должны в своем потоке каждый запускаться, или же я не прав ? Если верен только лишь первый вариант, то в какой последовательности они тогда движутся (события имею ввиду).
https://www.mql5.com/ru/docs/runtime/running
- www.mql5.com
https://www.mql5.com/ru/docs/runtime/running
Благодарю за ссылку - полезной оказалась, однако остались кое какие вопросы еще.
И так, как я понял:
- На каждого эксперта по потоку
- OnTick - запускается в потоке эксперта (Если долго обрабатывается и пришло еще несколько срабатываний данного события, то они игнорируются)
- OnTradeTransaction всегда предшествует OnTrade (т.е. друг относительно друга они в одном потоке выполняются). Вопрос, относительно OnTick - данные событие во вторичном потоке ? Или же они так же совместно с OnTick работают в одном потоке? Имею ввиду что если к примеру зациклить OnTick - то события OnTradeTransaction и OnTrade все еще будут поступать верно ?
- OnBookEvent - как я понял из информации от сюда, данное событие запускается в одном потоке на одном графике и транслирует все стаканы которые были подписаны все роботы / индикаторы на данном графике верно ? Имею ввиду что опять же если чисто теоритически я где нибудь зациклю данное событие то получается что ни одна другая программа на данном графике не сможет получить данное событие пока первая программа где данные событие было зациклено - не выйдет из цикла верно ?
Благодарю за ссылку - полезной оказалась, однако остались кое какие вопросы еще.
И так, как я понял:
- На каждого эксперта по потоку
- OnTick - запускается в потоке эксперта (Если долго обрабатывается и пришло еще несколько срабатываний данного события, то они игнорируются)
- OnTradeTransaction всегда предшествует OnTrade (т.е. друг относительно друга они в одном потоке выполняются). Вопрос, относительно OnTick - данные событие во вторичном потоке ? Или же они так же совместно с OnTick работают в одном потоке? Имею ввиду что если к примеру зациклить OnTick - то события OnTradeTransaction и OnTrade все еще будут поступать верно ?
- OnBookEvent - как я понял из информации от сюда, данное событие запускается в одном потоке на одном графике и транслирует все стаканы которые были подписаны все роботы / индикаторы на данном графике верно ? Имею ввиду что опять же если чисто теоритически я где нибудь зациклю данное событие то получается что ни одна другая программа на данном графике не сможет получить данное событие пока первая программа где данные событие было зациклено - не выйдет из цикла верно ?
Все события обрабатываются одно за другим в порядке поступления.
Благодарю за помощь. жаль что сейчас выходной и нет возможности протестить и удостовериться что верно все понял
на МТ5 не искал, под МТ4 точно биткоин в выходные работает, думаю что и в МТ5 можно найти криптовалюты на демо в выходные
;)
Крипты вообще без продыху работают ?) не знал такого финомина, интересно
на МТ5 не искал, под МТ4 точно биткоин в выходные работает, думаю что и в МТ5 можно найти криптовалюты на демо в выходные
;)
Какой у него символ не подскажите ли ? (как в инструментах забить его) Хотя в демке от MetaTrader - не нашел крипты вообще, видимо ее нет тут.
Andrey Barinov:
Крайне не рекомендуется использовать бесконечные циклы для обработки событий.
Это я для примера что бы яснее мысль была. Так то понятное дело, я не в одном своем проекте (кроме тестовых) бесконечные циклы не использовал наверное, считаю что это вообще не стоит делать но возможно иногда без них не обойтись однако пока не сталкивался с подобными ситуациями...)
Крипты вообще без продыху работают ?) не знал такого финомина, интересно
нашел и на МТ5 крипту, символ BTCUSD, можно BCHUSD - тоже тикает в выходные , проверил и ордера выставляет
Роботы запускаются каждый в своем потоке, а вот события генерит терминал и роботу фиолетово, как он там их создает )) В одном потоке работают индикаторы на чарте.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго времени суток, подскажите как распределяются потоки внутри терминала, я что то запутался слегка ? То что робота распаралеливать нельзя это я знаю, меня другое интересует.
Я немного запутался два варианта опишу как я понимаю может быть и буду благодарен за разъяснения:
Вариант 1:
Вариант 2:
Касательно событий, меня интересуют по большому счету лишь 4:
Как минимум последние два думаю должны в своем потоке каждый запускаться, или же я не прав ? Если верен только лишь первый вариант, то в какой последовательности они тогда движутся (события имею ввиду).