MQL4 потоки (thread/fork), это возможно? - страница 6

 
Andrey Khatimlianskii:

Индикаторы вешают поток чарта

поток чарта они вешают в 5ке. в 4ке они вешают UI поток терминала

 
Andrey Khatimlianskii:

Зря пропустили этот пост:


Индикаторы вешают поток чарта, скрипты и советники — нет. Кроме того, все индикаторы на инструменте/ТФ работают в одном потоке.

И задача у вас сводится к обмену данными между двумя советниками. А на эту тему здешний поиск выдаст несколько очень содержательных веток с готовыми рецептами.

>Индикаторы вешают поток чарта, скрипты и советники — нет. Кроме того, все индикаторы на инструменте/ТФ работают в одном потоке.

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

 
Farkhat Guzairov:

>Индикаторы вешают поток чарта, скрипты и советники — нет. Кроме того, все индикаторы на инструменте/ТФ работают в одном потоке.

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

Доки гляньте, там по этому поводу небольшой раздел есть. Думаю, не оч. полный. https://www.mql5.com/ru/docs/runtime/running

Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Каждый скрипт и каждый эксперт работает в собственном отдельном потоке. Все индикаторы, рассчитываемые на одном символе, даже если они запущены на разных графиках, работают в одном потоке. Таким образом, все индикаторы на одном символе делят между собой ресурсы одного потока. В одном потоке с индикаторами также последовательно выполняются...
 
Yuriy Asaulenko:

Доки гляньте, там по этому поводу небольшой раздел есть. Думаю, не оч. полный. https://www.mql5.com/ru/docs/runtime/running

у топикстартера задача была под МТ4 и переписывать код под МТ5 он не хотел

 
Igor Makanu:

у топикстартера задача была под МТ4 и переписывать код под МТ5 он не хотел

Да, забыл.( Насколько помнится, там примерно тоже самое было. Безусловно с отличиями. 

Доки по 4-ке на https://docs.mql4.com/runtime/event_fire Менее внятное описание, чем для 5-ки.

Client Terminal Events - MQL4 programs - MQL4 Reference
Client Terminal Events - MQL4 programs - MQL4 Reference
  • docs.mql4.com
Immediately after the client terminal loads a program (an Expert Advisor or custom indicator) and starts the process of initialization of global variables, the Init event will be sent, which will be processed by OnInit() event handler, if there is such. This event is also generated after a financial instrument and/or chart timeframe is changed...
 
Yuriy Asaulenko:

Доки гляньте, там по этому поводу небольшой раздел есть. Думаю, не оч. полный. https://www.mql5.com/ru/docs/runtime/running

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

Этим все сказано.

 
Farkhat Guzairov:

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

Этим все сказано.

Не все.)

Все события обрабатываются одно за другим в порядке поступления.... и далее.  Т.е., все события идут в одном потоке, в одной очереди. Кроме того, Если в очереди уже есть событие Х либо это событие находится в состоянии обработки, то новое событие Х в очередь mql5-программы не ставится. Чтобы получить следующее событие надо освободить поток от предыдущего. Обработчики должны быть оч. короткими. Внутри MQL это сделать невозможно.

Alexey Navoykov:
Да, вы правы. Программирование на MQL - это что-то из разряда садо-мазо )  Сам часто думаю, какого чёрта я себя мучаю...

Неск раз задавал MQL вопрос про API. В ответ были пространные рассуждения про экосистему, и типа - мы не позволим... не помню что конкретно. В общем, не надейтесь и не ждите.

Хотя, имеющиеся возможности MQL уже позволяют сделать некий эрзац API самостоятельно. Полнофункциональный, пожалуй, и не нужен, но под свои конкретные задачи это вполне реально и несложно.

 
Farkhat Guzairov:

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

Можете легко в этом убедиться, намеренно зациклив индикатор и скрипт.

 
Yuriy Asaulenko #:

 Чтобы получить следующее событие надо освободить поток от предыдущего. Обработчики должны быть оч. короткими.

Благодарюю Вот это я иногда забываю))

Vasiliy Sokolov # :

Вот вот. Разработчики MQ с самого начала заложили в OnCalculate возможность асинхронного расчета, просто большинство пользователей об этом даже не задумывается.

 а этого и достаточно

MQL4 потоки (thread/fork), это возможно?
MQL4 потоки (thread/fork), это возможно?
  • 2018.09.14
  • www.mql5.com
Всем доброго...
Причина обращения: