Допускаются ли на маркет программы с распараллеливанием задач?

 

Здравствуйте, у меня вопрос по сервису - Маркет.

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

Связь с MetaTrader 5 через именованные каналы без применения DLL
Связь с MetaTrader 5 через именованные каналы без применения DLL
  • 2012.10.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Перед многими разработчиками встает одинаковая проблема - как пробиться в песочницу торгового терминала без применения небезопасных DLL. Одним из простых и безопасных методов является использование стандартных именованных каналов (Named Pipes), которые работают как обычные файловые операции. Они позволяют организовать межпроцессорное клиент-серверное взаимодействие между программами. Посмотрите практические примеры на C++ и MQL5 в виде сервера, клиента, обмен данными между ними и замер производительности.
 
hlaiman:

Здравствуйте, у меня вопрос по сервису - Маркет.

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

В Маркете Dll то запрещены, а вы хотите exe запускать.

Ответ: не можете.

 
hlaiman:

Здравствуйте, у меня вопрос по сервису - Маркет.

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

Сможете, если параллельные задачи объедините  в одном эксперте. Запуск параллельных задач в отдельных потоках возможен через  ChartApplyTemplate() применяя к OBJ_CHART.
 
Yurich:
Сможете, если параллельные задачи объедините  в одном эксперте. Запуск параллельных задач в отдельных потоках возможен через  ChartApplyTemplate() применяя к OBJ_CHART.

Ага.  А данными можно обмениваться через кастомные события.

--

Ещё есть вариант с выкладыванием обучающего приложения в Code Base в виде исходников. А основной эксперт продавать в маркете.

 
Urain:

В Маркете Dll то запрещены, а вы хотите exe запускать.

Ответ: не можете.

Насколько я понимаю - DLL может быть запрещены, потому что они в связке терминал-советник, работают внутри вызывающего процесса и могут быть опасны, а EXE - это отдельный процесс, каких в винде навалом.

Что касается обмена данными по именованным каналам, так он вроде разрешен и выполняется он на подобие файлового, с клиентской стороны даже функции те же, и опасность его, думаю находится приблизительно на том же уровне.

Yurich:
Сможете, если параллельные задачи объедините  в одном эксперте. Запуск параллельных задач в отдельных потоках возможен через  ChartApplyTemplate() применяя к OBJ_CHART.

Чето мне кажется, что разнесение по потокам внутри процесса терминала, при всей геморрности, вряд ли даст какой то весомый приварок.

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

MetaDriver:

Ага.  А данными можно обмениваться через кастомные события.

--

Ещё есть вариант с выкладыванием обучающего приложения в Code Base в виде исходников. А основной эксперт продавать в маркете.

С выкладыванием проблем нет, я даже послал запрос о возможности опубликовать статью, правда пока тишина...


 

 
hlaiman:

Насколько я понимаю - DLL может быть запрещены, потому что они в связке терминал-советник, работают внутри вызывающего процесса и могут быть опасны,

а EXE - это отдельный процесс, каких в винде навалом.

ага, и значит EXE безопасны. логика деревянная. :)

 
hlaiman:

Чето мне кажется, что разнесение по потокам внутри процесса терминала, при всей геморрности, вряд ли даст какой то весомый приварок.

А вы попробуйте и будете приятно удивлены.
 
sergeev:

ага, и значит EXE безопасны. логика деревянная. :)

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

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

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

Yurich:
А вы попробуйте и будете приятно удивлены.

Спасибо, обязательно попробую. Как я понял, возможный сценарий - советник помещает данные во внешнюю переменную или файл и запускает через ChartApplyTemplate() другой советник, который отрабатывает эти данные, формирует ответный результат и вываливаться через ExpertRemove().

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

 

hlaiman:

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

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

Если вы можете привести такие-же, конкретные доводы по влиянию на терминал и советник отдельного процесса и\или файлового обмена с ним

какие вам доводы нужны?  надеюсь вы ж не глупый, и понимаете чем грозит использование EXE файлов, не?

- пожалуйста, только без страшилок про хакеров и вирусы, ведь они существуют независимо.

ага, в параллельной вселенной :)
 
MetaDriver:

Ещё есть вариант с выкладыванием обучающего приложения в Code Base в виде исходников. А основной эксперт продавать в маркете.

вот как раз на этот вариант от МК еще не было ответа.

и что то по результату беседы мне подсказывает, что такое не прокатит в маркете.

 
sergeev:

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

какие вам доводы нужны?  надеюсь вы ж не глупый, и понимаете чем грозит использование EXE файлов, не?

ага, в параллельной вселенной :)

Опять одни эмоции, чисто по человечески я понимаю, что вы вероятно хорошо владеете WinAPI и вам нравится им пользоваться, но поймите и вы, что через него делается подавляющее большинство вредоносного софта и решение MetaQuotes не пускать этот софт внутрь своего процесса вполне логично.
Поэтому, промоушен в направлении использования советниками низкоуровневых функций системных DLL, является "медвежьей услугой" разработчикам - имхо, без обид)
 

Причина обращения: