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

 
Farkhat Guzairov:
Соглашусь, пока иных способов не вижу. Хотя можно извращаться с глобальными переменами, но это крайний случай.

не проверял, но читал на форуме, что работа с глобальными переменными в тестере стратегий очень сильно нагружает жесткий диск ПК

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

 
Farkhat Guzairov:

Что то не увидел в этой статье описание работы с потоком, работа с СУБД у меня не вызывает никаких проблем, уже лет 5 как. 

У меня просто математика, расчет матрицы векторов на базе статистики , которая обновляется.

Эту статью я привел только как пример написания dll на C#, напрямую, без прослойки на C++dll. Не надо все понимать так прямолинейно. А насчет работы с потоками и асинхронныыми операциями в C# в частности и в .NET в целом, надо читать MSDN.

Вот навскидку первое попавшееся https://docs.microsoft.com/ru-ru/dotnet/standard/parallel-programming/task-parallel-library-tpl

 
Farkhat Guzairov:
Соглашусь, пока иных способов не вижу. Хотя можно извращаться с глобальными переменами, но это крайний случай.

1. А почему-бы не перейти на МТ5? Все-таки, пошустрее будет.

2. Я, в свое время, увидел единственное решение всех проблем - ДЛЛ С++. Если незнакомы, то тяжело, конечно. А если знакомы, то все проблемы исчезают.

3. Я еще делаю (точнее, делал) 2 советника. Один для поставки данных, второй - для вызова торговых функций из ДЛЛ. Они (советники) в разных потоках и никак не мешают друг другу.

 
Yuriy Asaulenko:

Ренат на днях делал на С#. Тема была. 64х версия у него так и не пошла.

все работает

х64 и х86

норм

потоки на шарпе тоже сделал

без них тока консольное дышит

на MQL тоже делал, работает, вот:

https://www.mql5.com/ru/articles/2599

Работа с сокетами в MQL, или Как стать провайдером сигналов
Работа с сокетами в MQL, или Как стать провайдером сигналов
  • www.mql5.com
Сокеты… Что вообще сейчас в нашем информационном мире может без них существовать? Впервые появившиеся в 1982 г. и практически не изменившиеся до настоящего времени, они исправно работают на нас каждую секунду. Это основа сети, нервные окончания нашей Matrix, в которой мы живем. Утром вы включили терминал MetaTrader, и он сразу создал сокеты и...
 
Renat Akhtyamov:

все работает

х64 и х86

норм

потоки на шарпе тоже сделал

без них тока консольное дышит

на MQL вот

А что в теме не отписался, что работает? Или я пропустил?

При чем тут сокеты? Статью посмотрел. Я, вообще, тоже сокеты использую, но в ДЛЛ сокеты проще реализовать, чем в MQL их пихать.

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

 
Yuriy Asaulenko:

А что в теме не отписался, что работает? Или я пропустил?

есть там ссылки
 
Yuriy Asaulenko:
...

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

спасибо за предложение, но у меня потребности нет.

 
Renat Akhtyamov:

все работает

х64 и х86

норм

потоки на шарпе тоже сделал

без них тока консольное дышит

на MQL тоже делал, работает, вот:

https://www.mql5.com/ru/articles/2599

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

 
Yuriy Asaulenko:

1. А почему-бы не перейти на МТ5? Все-таки, пошустрее будет.

2. Я, в свое время, увидел единственное решение всех проблем - ДЛЛ С++. Если незнакомы, то тяжело, конечно. А если знакомы, то все проблемы исчезают.

3. Я еще делаю (точнее, делал) 2 советника. Один для поставки данных, второй - для вызова торговых функций из ДЛЛ. Они (советники) в разных потоках и никак не мешают друг другу.

1. Так сложилось исторически, брокер не поддерживал МТ5;

2. Разобраться не проблема, но если есть готовый примеру, буду рад.

3. Тоже есть своя разработка раздачи сигнала Сервер+Клиент на СУБД MySQL уже давно, даже думаю мой исходник гуляет в сети, по крайней мере обращался чувак, которому я точно ее не давал, просил доработать его хотелки.

 
Farkhat Guzairov:

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

Пока Ренат спит. )) 

Я делаю в ДЛЛ через коллекции. Один поток (или потоки) пишет данные в коллекцию(и), другие эти коллекции читают начиная с конца, и удаляют из коллекции уже прочитанное. Потоки никак не взаимодействуют друг с другом. И читаются самые новые данные, но, в итоге все данные будут прочитаны. Все полностью асинхронно.

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