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

 
Andrey Pogoreltsev:

В MQL5 есть ассинхронность, например OrderSendAsync.

Что касается взаимодействия с сетью или файловой системой - используйте WinAPI, я писал выше решение. По-моему, все есть для этого. Как использовать эти методы можете почитать на сайте Microsoft. Что еще остается нераскрытым?)

Да, про OrderSendAsync мне известно, но это только для отправки заявок.
Примерно в эту сторону WinAPI и смотрел, но по незнанию что в mql потоки не доступны, прототипы в инклуднике ввели в заблуждение.

 
Andrey Pogoreltsev:

В MQL5 есть ассинхронность, например OrderSendAsync.

в MQL4/5  всегда была асинхронность и многопоточность исполнения MQL кода https://www.mql5.com/ru/docs/runtime/running

т.е. все "готово из коробки", единственная проблема это обмен данными между MQL программами, готового решения от разработчиков нет, вернее есть только глобальные переменные терминала - так они задумывали обмен данными - очень неудобно и не эффективно, но есть в КБ готовые решения для обмена данными

выше упоминали обучение НС - там требуется многопоточность, ну  как бы да, но в поставке МТ идет только Алглиб и я сколько его использовал, не увидел чтобы требовалось обучение НС более 1-2 секунд, т.е. зачем тут быстродействие? - если будете использовать сторонние пакеты НС - там вариантов нет, придется выбираться за пределы МТ - использовать dll, тогда опять в чем проблема с организацией обмена данными и многопоточностью? - все реализуете в dll

было упоминание Питонов... там вообще не идет речи о скорости, очень и очень специфическая среда для разработки НС, вроде все есть, а вот пользоваться этим просто не возможно - ждать и ждать...увлекательнейшее занятие работа с НС в Питоне! )))

ЗЫ: в Питоне нет многопоточности в нормальном смысле этого понятия, но тут я могу ошибаться, очень не нравится мне Питон - много шума и мейнстрима, все работает из коробки, но .... но просто не возможно работать с такой тормозной системой, единственный плюс - много готового кода под Питон и большое интернет сообщество

 

А чем голые указатели так небезопасны?

По-моему, разработчики лукавят, а настаящая причина - не дать дёргать из длл. Скорее всего ещё и какое-нибудь хитрое соглашение о вызовах влепили.

 
Vict:

А чем голые указатели так небезопасны?

По-моему, разработчики лукавят, а настаящая причина - не дать дёргать из длл. Скорее всего ещё и какое-нибудь хитрое соглашение о вызовах влепили.

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

 
Roman:

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

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

 
Vict:

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

Не не, так и есть, вспомните повальный декомпил в mql4, наработанные ошибки были учтены и реализована защита.
По большому счёту это действенный выбор безопасности, в ущерб прямых вызовов WinAPI, но так как открыт доступ к dll, то функциональность не меняется, меняется способ взаимодействия.
По этому теперь не где не встретите декомпила и возможного взлома вашей программы. И это хорошо и респект разработчикам. 

 
Vict:

А чем голые указатели так небезопасны?

админ Ренат на такие вопросы всегда отвечал, что Метаквоты всегда выбирают решение, которое гарантированно может обеспечить безопасность, ну как вариант, Вы получив указатель на память сможете внедрить свой вирус, который сможет добавить свой код к скомпилированным ex4 / ex5


Roman:

 в ущерб прямых вызовов WinAPI

опять двадцать пять! какой ущерб? есть рантайм, там крутится программа, она не может самостоятельно работать без этого рантайма - так понятно?

- Вы можете запустить в отдельном процессе тело функции из Python с помощью WinAPI ?

-..... тело функции из Java с помощью WinAPI ?

-..... тело функции из WordBASIC с помощью WinAPI ?


как вариант, вот Метаквоты дали однозначный ответ - такого функционала не предусмотрено, займитесь дальше по инстанциям: пишем в Python Software , Oracle, Microsoft - вынесите им еще мозг

)))

 
Roman:

Не не, так и есть, вспомните повальный декомпил в mql4, наработанные ошибки были учтены и реализована защита.
По большому счёту это действенный выбор безопасности, в ущерб прямых вызовов WinAPI, но так как отрыт доступ к dll, то функциональность не меняется, меняется способ взаимодействия.
По этому теперь не где не встретите декомпила и возможного взлома вашей программы. И это хорошо и респект разработчикам. 

Учтены, и подекли с маркета стали компилировать в натив

Renat

Он уже с 500 билда слабо декомпилируем, так как полностью была изменена система защиты.

После перехода на движок MQL5 и Маркет, тема с декомпилами умрет полностью. Кто не в курсе - продукты из маркета компиляются в 32/64 натив(чистый ассемблер, не декомпилировать никак) во время покупки и шифруются под железо покупателя.

А декомпиляция с каких-то других площадок метаквотом даже выгодна - загнать всех к себе пугая страшными и злыми декомпилами. В общем - ничего личного, просто бизнес.
 
fxsaber:

В рамках только MQL обе задачи решаются через автоматический запуск советника-считалки.

Вот-вот, у меня так и сделано. Правда, Web-Request я не использую, а вот автооптимизация - уж у меня-то с Лигой ТС - работает во всю. Причем, отбор идет в несколько проходов, сперва оптимизируется "чистая" система, фиксируются ее параметры,  потом запускается оптимизация безубытка, фиксируются его параметры, и далее - запускается оптимизация защитных СЛ (если необходимо). Причем, везде идет работа с фреймами и обработкой данных из них.

Вся необходимая многопоточность - уже имеется штатно.

 
Igor Makanu:

админ Ренат на такие вопросы всегда отвечал, что Метаквоты всегда выбирают решение, которое гарантированно может обеспечить безопасность, ну как вариант, Вы получив указатель на память сможете внедрить свой вирус, который сможет добавить свой код к скомпилированным ex4 / ex5

Вы действительно считаете, что я не могу запустить терминал с экспертом под отладчиком и найти с какого относительного адреса начинается исполнение? Адрес любой функции или переменной? Другое дело, что эти адреса могут меняться (из-за применённых хитростей), но в теории я могу узнать всё, что дали бы мне нормальные указатели.

Пугает их другое - через указатели в рантайме выяснить адреса фунций и дёргать их в дллках.