Обсуждение статьи "Рецепты MQL5 - Сохраняем результаты оптимизации торгового эксперта по указанным критериям" - страница 2

 
Записывать куда? 
 
Anatoli Kazharski:
Добавляйте в динамический массив, как есть, а потом отсортируйте в конце оптимизации. 

Т.е. сделать дополнительно двухмерный массив, куда класть номер прохода и показатели на него?


А если сразу писать в файл? Т.е. можно ли так делать - забывать нулями строки без значения, а потом при появлении значения их перезаписывать?

 
Dennis Kirichenko:
Записывать куда? 

В файл, конечно.

 
Aleksey Vyazmikin:

В файл, конечно.


Ну Анатолий Вам правильно заметил. Собирать результаты в список или динамический массив (мне нравится больше список) по ходу оптимизации, в теле обработчика OnTesterPass(). А в конце оптимизации, в теле обработчика OnTesterDeinit(), провести сортировку списка/массива по нужному критерию и сохранить его.

 
Dennis Kirichenko:

Ну Анатолий Вам правильно заметил. Собирать результаты в список или динамический массив (мне нравится больше список) по ходу оптимизации, в теле обработчика OnTesterPass(). А в конце оптимизации, в теле обработчика OnTesterDeinit(), провести сортировку списка/массива по нужному критерию и сохранить его.


Что-то не увидел про список, что Вы имеете ввиду?

 
Aleksey Vyazmikin:

Что-то не увидел про список, что Вы имеете ввиду?


Имею в виду то, что есть такой тип данных - CList - список. В него удобно собирать результаты в Вашей задаче. Но предварительно результаты нужно обернуть в тип узла - это потомок CObject.

 
Dennis Kirichenko:

Имею в виду то, что есть такой тип данных - CList - список. В него удобно собирать результаты в Вашей задаче. Но предварительно результаты нужно обернуть в тип узла - это потомок CObject.


Понятно - глянул, и понял, что там заморочек не мало - надо разбираться, если пользоваться... а примеры какие то сложные мне попались. Может покажете, как это сделать на примере этой конкретной задачи?

 

Огромнейшее Вам СПАСИБО, Анатолий!

Мне при тестировании в режиме оптимизации точек входа необходимо выводить в файл информацию о проценте выигрышных/убыточных сделок.

Вроде как тривиальная задача, но мудохался 2 дня, потом обиделся на метаквот и забил на две недели.

Сегодня, матерясь на метаквотов (ладно уж они как-то странно реализовали функции OnTester и OnTesterPass, так еще им и впадлу в справочнике упомянуть, что эти функции необходимо FrameAdd и FrameNext типа "инициализировать", иначе они через ж... работают), с оглядкой на ваш пример таки дописал, то что было нужно))

 
Не работает, при оптимизации в облаке сохраняет менее половины результатов.
Причина обращения: