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

 
Roman:

Начал перечитывать тему а Игорь уже об этом писал. 

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

Игорь учился в вышке профильно, и в этом он должен понимать побольше нас самоучек.
Я изначально склонялся к тому же, что надо выделять память и инициализировать.
Это ещё с разных курсов по Си у меня в памяти отложилось, инициализация и выделение памяти, это залог правильного кодинга, ибо что б не текло и не было мусора. 

По этому вопрос к Игорю, поясни пожалуйста  как это делать в С++?
Только не словами а на примере, словами нифига не понимается ))

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

https://en.cppreference.com/w/cpp/thread

https://en.cppreference.com/w/cpp/atomic

Если нужен пример, то смотрите внизу:

https://en.cppreference.com/w/cpp/thread/thread/join

https://en.cppreference.com/w/cpp/thread/async


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

 
Реter Konow:
Предлагаю в качестве носителя GUI использовать индикатор, а для связи с советником - ресурсы. К тому же, в МТ4 сможете управлять советником тестере с обычного графика с помощью панели. Будут работать все элементы управления,а не только кнопки. Сможете передавать текст, и вообще что угодно в тестируемого советника. Я это уже проверял. Все работает.

Петр, Вы не понимаете.

Есть ОДИН советник. Он сам себя еще запускает дополнительно на невидимом чарте, только в режиме агента. На агенте НЕ РАБОТАЮТ никакие события. Т.е. ресурс никак не опросить, там таймер не запускается, тики не приходят...

Если индикатор запускает советник, то это уже две сущности.

Таких агентов советник может наплодить сколько угодно. Каждый получается как отдельный поток.

 
Andrey Barinov:

Петр, Вы не понимаете.

Есть ОДИН советник. Он сам себя еще запускает дополнительно на невидимом чарте, только в режиме агента. На агенте НЕ РАБОТАЮТ никакие события. Т.е. ресурс никак не опросить, там таймер не запускается, тики не приходят...

Если индикатор запускает советник, то это уже две сущности.

Таких агентов советник может наплодить сколько угодно. Каждый получается как отдельный поток.

То есть как запускает сам себя в режиме агента на невидимом чарте? Это что то новое. Я о таком не знал.
 
Реter Konow:
То есть как запускает сам себя в режиме агента на невидимом чарте? Это что то новое. Я о таком не знал.

ChartApplyTemplate

 
Andrey Barinov:

Петр, Вы не понимаете.

...

Таких агентов советник может наплодить сколько угодно. Каждый получается как отдельный поток.

Тогда получается, многопоточность уже существует? А тут никто о ней не знает?

 
Andrey Barinov:

Есть ОДИН советник. Он сам себя еще запускает

В тестере из КБ такой же принцип. Вам удалось решить проблему отладки такого советник? Когда тестер делал на этом принципе, неудобство написания было в сложностях отладки.

 
Реter Konow:

Тогда получается, многопоточность уже существует? А тут никто о ней не знает?

Это называется "не слышать собеседника".

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

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

fxsaber, 2019.07.25 12:16

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

 
Реter Konow:

Тогда получается, многопоточность уже существует? А тут никто о ней не знает?

Прием известный. Придуман не мной. Сам подсмотрел на форуме, несколько лет назад.

 
fxsaber:

В тестере из КБ такой же принцип. Вам удалось решить проблему отладки такого советник? Когда тестер делал на этом принципе, неудобство написания было в сложностях отладки.

Print, ASSERT, DEBUG. Штатный отладчик в этом случае не использую...

 
Andrey Barinov:

Прием известный. Придуман не мной. Сам подсмотрел на форуме, несколько лет назад.

А насколько такая "многопоточность" соответствует своему понятию? Можно ли разбить задачи программы по потокам используя эту функцию?
Причина обращения: