Асинхронное и многопоточное программирование в MQL - страница 27
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Начал перечитывать тему а Игорь уже об этом писал.
Вот об этом Юр я и пытался сказать, что надо выделять память и регистрировать поток.
Игорь пишет надо выделять и регистрировать, вы пишите не надо не чего делать.
Вот от этого и голова кругом. В итоге тупик..
Игорь учился в вышке профильно, и в этом он должен понимать побольше нас самоучек.
Я изначально склонялся к тому же, что надо выделять память и инициализировать.
Это ещё с разных курсов по Си у меня в памяти отложилось, инициализация и выделение памяти, это залог правильного кодинга, ибо что б не текло и не было мусора.
По этому вопрос к Игорю, поясни пожалуйста как это делать в С++?
Только не словами а на примере, словами нифига не понимается ))
Блин, ну не потянете вы многопоточность на плюсах, не в обиду. Если же настрой железный, то читать и разбираться:
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
Повторю - это сложная тема, легко наговнокодить (например, отцепитесь от порождённого потока, который разрушится позже общих данных, оптимизации компилятора при отсутствии должной синхронизации и ещё вагон всего).
Предлагаю в качестве носителя GUI использовать индикатор, а для связи с советником - ресурсы. К тому же, в МТ4 сможете управлять советником тестере с обычного графика с помощью панели. Будут работать все элементы управления,а не только кнопки. Сможете передавать текст, и вообще что угодно в тестируемого советника. Я это уже проверял. Все работает.
Петр, Вы не понимаете.
Есть ОДИН советник. Он сам себя еще запускает дополнительно на невидимом чарте, только в режиме агента. На агенте НЕ РАБОТАЮТ никакие события. Т.е. ресурс никак не опросить, там таймер не запускается, тики не приходят...
Если индикатор запускает советник, то это уже две сущности.
Таких агентов советник может наплодить сколько угодно. Каждый получается как отдельный поток.
Петр, Вы не понимаете.
Есть ОДИН советник. Он сам себя еще запускает дополнительно на невидимом чарте, только в режиме агента. На агенте НЕ РАБОТАЮТ никакие события. Т.е. ресурс никак не опросить, там таймер не запускается, тики не приходят...
Если индикатор запускает советник, то это уже две сущности.
Таких агентов советник может наплодить сколько угодно. Каждый получается как отдельный поток.
То есть как запускает сам себя в режиме агента на невидимом чарте? Это что то новое. Я о таком не знал.
ChartApplyTemplate
Петр, Вы не понимаете.
...Таких агентов советник может наплодить сколько угодно. Каждый получается как отдельный поток.
Тогда получается, многопоточность уже существует? А тут никто о ней не знает?
Есть ОДИН советник. Он сам себя еще запускает
В тестере из КБ такой же принцип. Вам удалось решить проблему отладки такого советник? Когда тестер делал на этом принципе, неудобство написания было в сложностях отладки.
Тогда получается, многопоточность уже существует? А тут никто о ней не знает?
Это называется "не слышать собеседника".
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Асинхронное и многопоточное программирование в MQL
fxsaber, 2019.07.25 12:16
В рамках только MQL обе задачи решаются через автоматический запуск советника-считалки.
Тогда получается, многопоточность уже существует? А тут никто о ней не знает?
Прием известный. Придуман не мной. Сам подсмотрел на форуме, несколько лет назад.
В тестере из КБ такой же принцип. Вам удалось решить проблему отладки такого советник? Когда тестер делал на этом принципе, неудобство написания было в сложностях отладки.
Print, ASSERT, DEBUG. Штатный отладчик в этом случае не использую...
Прием известный. Придуман не мной. Сам подсмотрел на форуме, несколько лет назад.