Асинхронное и многопоточное программирование в MQL - страница 32

 
Реter Konow:

А как результаты расчетов получать обратно?

В принципе, он может записать их в ресурс, верно?

А если для расчетов нужно передать массив данных? Дать ему комманду через OnChartEvent(), обратиться к ресурсу, прочтет данные, осуществит расчет, и далее запишет результат в ресурс?

Но, по любому, комманду можно дать только через EventChartCustom()?

А если его зациклить после первого обращения к нему, чтобы он постоянно обращался и читал ресурс и выполнял комманды от туда?

Сорри за большое количество вопросов. ))

У Вас впереди интересное время экспериментов!

Я делегирую всю торговую логику. Ее результаты не нужно особо никуда сообщать, они и так доступны из любой точки терминала.

 
Andrey Barinov:

У Вас впереди интересное время экспериментов!

Я делегирую всю торговую логику. Ее результаты не нужно особо никуда сообщать, они и так доступны из любой точки терминала.

Благодарю за помощь. Много нового узнал. Буду экспериментировать и сообщать результаты в эту ветку. Но, быстро не будет, так как еще много задач нужно решить перед этим.

Думаю так. Если при запуске OBJ_CHART его зациклить на чтении ресурса, то дальше с ним можно общаться через него, и он будет выполнять все передаваемые ему задачи, которые может выполнять запустивший его оригинал.


Добавлено: в документации сказано, что шаблон не может быть помещен в советник в виде ресурса. Значит, возникает проблема с переносимостью. Но! советник может создать шаблон самого себя когда нужно и далее, загрузить его и заставить выполнять свою копию только нужные функции, общаясь с ней через ресурсы после ее зацикливания. Интересно, если этот вариант не подведет ни в одном пункте, вопрос с многопоточностью можно закрывать.

 
Реter Konow:

Добавлено: в документации сказано, что шаблон не может быть помещен в советник в виде ресурса. Значит, возникает проблема с переносимостью. Но! советник может создать шаблон самого себя когда нужно и далее, загрузить его и заставить выполнять свою копию только нужные функции, общаясь с ней через ресурсы после ее зацикливания. Интересно, если этот вариант не подведет ни в одном пункте, вопрос с многопоточностью можно закрывать. 

Шаблон не надо никуда переносить. Его нужно один раз создать при запуске главного советника (пока не создано агентов)

 
Andrey Barinov:

Шаблон не надо никуда переносить. Его нужно один раз создать при запуске главного советника (пока не создано агентов)

Имел ввиду переносимость программ использующих шаблоны. Можно ведь наплодить множество шаблонов с разным функционалом и запускать при необходимости из главного совеника. Но, такой советник нужно переносить вместе со всеми шаблонами с компьютера на компьютер, потому что их нельзя поместить в него. 
 
Реter Konow:

Благодарю за помощь. Много нового узнал. Буду экспериментировать и сообщать результаты в эту ветку. Но, быстро не будет, так как еще много задач нужно решить перед этим.

Думаю так. Если при запуске OBJ_CHART его зациклить на чтении ресурса, то дальше с ним можно общаться через него, и он будет выполнять все передаваемые ему задачи, которые может выполнять запустивший его оригинал.


Добавлено: в документации сказано, что шаблон не может быть помещен в советник в виде ресурса. Значит, возникает проблема с переносимостью. Но! советник может создать шаблон самого себя когда нужно и далее, загрузить его и заставить выполнять свою копию только нужные функции, общаясь с ней через ресурсы после ее зацикливания. Интересно, если этот вариант не подведет ни в одном пункте, вопрос с многопоточностью можно закрывать.

Решение да интересное, но оно возникло из за не имения другого полноценного.
Так же не забывайте, используя данный подход вы не сможете создать более 98 потоков!
Так как терминал не позволяет открыть более 99 графиков. А это уже ограничение возможностей.
Для GUI где не столь много требуется потоков, да решение рабочее, там где требуется более 98 потоков, увы не вариант.
А кто нибудь проверял в этом подходе какое время затрачивается на запуск агента-эксперта? При том что он создаёт копию шаблона и т.д.
Какое время затрат в данном решении?

 
Roman:

Решение да интересное, но оно возникло из за не имения другого полноценного.
Так же не забывайте, используя данный подход вы не сможете создать более 98 потоков!
Так как терминал не позволяет открыть более 99 графиков. А это уже ограничение возможностей.
Для GUI где не столь много требуется потоков, да решение рабочее, там где требуется более 98 потоков, увы не вариант.
А кто нибудь проверял в этом подходе какое время затрачивается на запуск эксперта? При том что он создаёт копию шаблона и т.д.
Какое время затрат в данном решении?

Согласен. Это костыльное решение и даже если все надежды на него оправдаются, оно доступно только для меня и еще нескольких человек, у которых развита технология межпрограммного взаимодействия. Остальным оно не подойдет. Факт.
 
Roman:

Решение да интересное, но оно возникло из за не имения другого полноценного.
Так же не забывайте, используя данный подход вы не сможете создать более 98 потоков!
Так как терминал не позволяет открыть более 99 графиков. А это уже ограничение возможностей.
Для GUI где не столь много требуется потоков, да решение рабочее, там где требуется более 98 потоков, увы не вариант.
А кто нибудь проверял в этом подходе какое время затрачивается на запуск агента-эксперта? При том что он создаёт копию шаблона и т.д.
Какое время затрат в данном решении?

Всё вам не нравится, значит одна вам дорога - в dll. Я оставлял вам ссылки на справочник с примерами, смотрели? Или всё мимо ушей?

 
Vict:

Всё вам не нравится, значит одна вам дорога - в dll. Я оставлял вам ссылки на справочник с примерами, смотрели? Или всё мимо ушей?

Вы меня опередили с ответом ) я как раз их сейчас смотрю, спасибо за ссылки то что надо по теме C++ ))
А то что сложно или нет, это другой вопрос, понимание что такое future у меня есть ))
Мне всё нравиться )) разные подходы понять, и потом выбрать тот что будет более мне понятен и соответствовать требованиям, всё просто.

 
Roman:

Вы меня опередили с ответом ) я как раз их сейчас смотрю, спасибо за ссылки то что надо по теме C++ ))
А то что сложно или нет, это другой вопрос, понимание что такое future у меня есть ))
Мне всё нравиться )) разные подходы понять, и потом выбрать тот что будет более мне понятен, всё просто.

ок, пишите если что, набросаем ваш евентлуп, думаю ))

 
Реter Konow:
Это костыльное решение

Нет, это хороший фильтр компетенции.