init() при оптимизации - страница 2

 
Vinin:
Вопрос, а как получить результаты тестирования? Только если самому считать.
Имеется в виду критерий оптимизации? Да, похоже нужно самому. Но зато и критерий может быть свой. Следующий шаг - встраивание в init() своего генетического алгоритма :)
 
Может лучше свой оптимизатор писать тогда?
 
Может и лучше. Без наворотов, соответственно с большей уверенностью в отношении багов. Можно даже без учёта свопов и комиссий - речь ведь о препроцессинге. Единственное что для этого по настоящему нужно - уметь компилировать MQL-код в ехе, иначе игра не стоит свеч
 

Кстати, про генетический алгоритм я не случайно пошутил, встроенный не имеет фильтра по числу сделок и благодаря этому имеет склонность сваливаться в подгонку.

А протащить через тестирование свой критерий оптимизации (не говоря уж о стандартном) не просто - а очень просто. И даже не слишком трудоёмко.

 

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

Этот расчёт итогов несложен - посмотрите 'Самостоятельная оценка результатов тестирования эксперта'

Результаты сохранять в файл.

 
А я уже начал думать, не написать ли статью по оптимизации многострадального MACD Sample.mq4 по критерию Прибыль/Просадка :)
 

Спасибо всем, буду искать другие пути.

 

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

 
lna01:
А я уже начал думать, не написать ли статью по оптимизации многострадального MACD Sample.mq4 по критерию Прибыль/Просадка :)

Ну в общем я это сделал :). В смысле набросал на коленке код, записывающий данные тестирования в файл, по окончании оптимизации читающий данные, сортирующий их по отношению Прибыль/Просадка и снова записывающий в тот же файл. Для разнообразия правда взял для опытов не MACD Sample а Moving Average. Вроде это нормально работает. 100 проходов оптимизации на 52890 барах по ценам открытия заняли у меня около 36 секунд, как в полном варианте, так и с закомментированными блоками, содержащими операции с файлами и глобальными переменными. Засекал правда вручную, но ясно, что разницы большой нет. Думаю с оптимизацией по читаемым из файла параметрам проблем тоже быть не должно, всё можно сделать аналогично. Советника прилагаю, но прошу не очень ругаться на стиль, неинтеллектульный способ перебора параметров, отсутствие комментариев и много ещё за что мне в этом коде совестно :) - просто хотел по быстрому проверить идею. При запуске нужно установить оптимизацию по параметру Counter от 1 до 100 с шагом 1. Что либо ещё делать с параметрами не советую :). Разве что досконально разобравшись в коде, но тогда и менять их и ни к чему уже будет.
Файлы:
 
lna01:
lna01:
А я уже начал думать, не написать ли статью по оптимизации многострадального MACD Sample.mq4 по критерию Прибыль/Просадка :)

Ну в общем я это сделал :). В смысле набросал на коленке код, записывающий данные тестирования в файл, по окончании оптимизации читающий данные, сортирующий их по отношению Прибыль/Просадка и снова записывающий в тот же файл. Для разнообразия правда взял для опытов не MACD Sample а Moving Average. Вроде это нормально работает. 100 проходов оптимизации на 52890 барах по ценам открытия заняли у меня около 36 секунд, как в полном варианте, так и с закомментированными блоками, содержащими операции с файлами и глобальными переменными. Засекал правда вручную, но ясно, что разницы большой нет. Думаю с оптимизацией по читаемым из файла параметрам проблем тоже быть не должно, всё можно сделать аналогично. Советника прилагаю, но прошу не очень ругаться на стиль, неинтеллектульный способ перебора параметров, отсутствие комментариев и много ещё за что мне в этом коде совестно :) - просто хотел по быстрому проверить идею. При запуске нужно установить оптимизацию по параметру Counter от 1 до 100 с шагом 1. Что либо ещё делать с параметрами не советую :). Разве что досконально разобравшись в коде, но тогда и менять их и ни к чему уже будет.
Идея интересная, попробую воспользоваться. Спасибо.