init() при оптимизации

 
Сколько раз выполняется init() при оптимизации?
 
Насколько я понимаю - каждый раз, столько сколько прогонов - количество вариантов опт.параметров.
 
Просто хочу после первой оптимизации загнать все в один файл и прогнать по другому периоду и номеру варианта. А если init() выполняется каждый раз, то основное время уйдет на чтение файла. Около 3 000 вариантов. На чтение будет уходить хотя бы 3 секунды. Это ж только на чтение уйдет полтора часа.
 
Сделай какой нибудь флаг ввиде файла, например если файла нет, то прогон первый и читаем твой файл, если файл есть значит не читаем другой файл :-)
 
Vinin:
Просто хочу после первой оптимизации загнать все в один файл и прогнать по другому периоду и номеру варианта.
А нужно всё? Можно же делать отбор какой-нибудь перед записью в файл.
 
Все не нужно, но как оказалось переменные объявленные как extern в модуле init() своего значения не меняют. Отказался от extern, то получил, что тестер в режиме оптимизации не работает из-за слишком долгого чтения файла.
 
А пробовали https://docs.mql4.com/ru/globals ?
 
Глобальные переменные нет смысла использовать. Слишком много переменных пришлось бы сохранять. Я понимаю, что подобную проблему решает каждый как может, конечно хотелось бы иметь загрузку оптимизируемых параметров хоть из файла, но помочь смогут только разработчики. Или хотя бы восстанавливать последние результаты оптимизации. Тогда можно было бы и ручками сделать (хотя уйдет много времени).
 
Vinin:
Все не нужно, ...


Так почему бы в deinit() не делать сортировку? Через глобальную переменную можно организовать счётчик тестирований. Ну а если сортировка будет сделана на 1000-ном, а оптимизатор сделает 1003, вряд ли это сильно повлияет. Можно делать и через каждые, скажем, 100 проходов. То есть на 99 проходах дописывать результаты, а на сотом переписывать файл, сохраняя заданное число лучших результатов.

P.S. Ну и само собой тот же счётчик позволит читать в init() не весь файл, а только заданную строчку.

 
Вопрос, а как получить результаты тестирования? Только если самому считать.
 
Vinin:
Вопрос, а как получить результаты тестирования? Только если самому считать.

Я успел добавить P.S. к предыдущему посту, он не поможет?
Причина обращения: