Новая версия платформы MetaTrader 5 build 2615: Фундаментальный анализ и комплексный критерий в тестере стратегий - страница 23

 
Roman:

Надоело изучать всё то, что вокруг да около. 
Когда есть инструменты специально для этого предназначенные.
И как бы задача не в вычислениях, а в не блокирующих вызовах.
 

Не думаю, что использование обещанных (8 месяцев назад!) ThreadXXX функций даст ускорение в 100 и более раз, как OpenCL. Ну получите еще несколько потоков в распоряжение, а задачи им как задавать? Наверное, заранее прописывать где то... Неудобно это все... И сейчас можно таким методом распараллелить вычисления на несколько советников, связав их работу через ресурсы. Просто, это еще менее удобное решение...
 
Реter Konow:
Откатитесь на более ранние версии МТ и проблема решена.

Проблему решил перенеся все вычисления за пределы терминала. Теперь он используется только для сбора исходной информации

 
Думаю, затык с внедрением многопоточности обусловлен рисками крашей терминала при ее неграмотном использовании. В СБ есть сложные в освоении штуки (3D, мат. и прочие библиотеки...), но они не вредят работе МТ даже, если их неумеючи использовать (поэтому, их незадумываясь добавили), а штатная многопоточность, очевидно, критически опасна для стабильности его работы. Поэтому, ее не внедряют и ждать/просить бессмысленно. Имхо.
 
Реter Konow:
... а задачи им как задавать? Наверное, заранее прописывать где то...
Наверное, в коде советника будут обьявляться функции со спец.префиксом, которые по сути, как бы, самостоятельные скрипты, но запускаемые на инициализации эксперта прямо из его кода. Работать будут в фоновом режиме (как сервисы) в своих потоках, а общаться с хостовой программой станут через какую то форму общей памяти. 

Неплохое решение, но, неизвестно когда его увидим... 
 
По сути, OpenCL это тоже самое, только на порядки быстрее, круче и главное - СЕЙЧАС. ;)
 

этот баг с иконкой так и не исправили!

 
Такое сообщение возникает во время Оптимизации у каждого локального Агента, когда Tester\bases-папка забивается.
2020.09.26 04:22:58.718 Core 6  genetic pass (0, 75) tested with error "Tester Agent is wrong for task processing due low disk space" in 0:00:02.953
2020.09.26 04:22:58.718 Core 6  connection closed

При этом кнопка Stop остается гореть, что есть правильно.


Использую RAM-drive для Тестера. Он не резиновый, к сожалению. Когда получаю такое сообщение, то руками просто убиваю папку Tester\bases и продолжаю нормально работать с Тестером.

Возможно ли сие действие автоматизировать со стороны Тестера? Забилась Tester\bases-папка - почистил. Речь, конечно, про локальные Агенты.


У меня несколько сотен кастомных символов, на них запускаю пакетную Оптимизацию. Ну и получаю время от времени эту ситуацию. В общем, прошу подумать в этом направлении, чтобы повысить удобство работы с Оптимизатором.

Строка для поиска: Uluchshenie 027.
 

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


Возможно ли это дело поправить?

 
fxsaber:

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


Возможно ли это дело поправить?

в идеале это из одиночного прохода тестера нужно уметь сохранить в файл с нужным именем

ЗЫ: как вариант как в TesterStatistics() такая функция должна отдать картинку как массив - ресурс

Функция может быть вызвана внутри OnTester() или OnDeinit() в тестере. В других случаях результат неопределён.

 
Igor Makanu:

в идеале это из одиночного прохода тестера нужно уметь сохранить в файл с нужным именем

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