Как программно проверить - идет 'Оптимизация' или 'Форвард-оптимизация'? - страница 10

 
Youri Tarshecki:

Вопрос - как надо собрать эти 12 прогонов или что надо сделать, чтобы запихнуть эти прогоны в подобную прогу? 

Если делать на чистом MQL с штатным тестером, то довольно трудоемко. От пользователя потребуется переставлять даты в тестере вручную, т.к. нужны штатные форвард прогоны после каждой бек оптимизации.

Потом собираем фреймами, фильтруем и сводим в отчет.

 

Youri Tarshecki:

Речь о том - как анализировать РЕЗУЛЬТАТЫ волкинг-форварда. А его результаты - это те одиночные прогоны бэк-форвард, которые происходят после оптимизации бэка. 

Да, но любые результаты для одной и той же группы параметров входят в множество всех результатов полного прогона N, а любые красивые результаты K входят в число красивых результатов полного прогона т.е. K ⊂ NK . Т.е. никакого преимущества волкинг-форвард не дает.

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

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


elibrarius:

К тому же данные о торговых операциях можно скидывать в файлы или БД только при оптимизации на своем компьютере. При оптимизации в облаке - мы можем получить только стандартный отчет.

Из справки: "Функции работы с фреймами могут вызываться при оптимизации в агентах тестирования, а также локально в экспертах и скриптах. Каждый агент при оптимизации эксперта может посылать в терминал серию фреймов."

т.е. и агенты тестирования работающие в облаке возвращают данные
 
Igor Volodin:

Потом собираем фреймами, фильтруем и сводим в отчет.

У меня вопрос  - я автооптимизатором делаю сначала оптимизацию на бэк участке, а потом форвард прогон, который содержит и бэк и форвард участок.

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

Что мне сделать, чтобы ваша прога смогла отобразить графики баланса всех двенадцати этих прогонов? Т.е. сделать отчет из отдельных прогонов бэк-форвард.

 
Youri Tarshecki:

Что мне сделать, чтобы ваша прога смогла отобразить графики баланса всех двенадцати этих прогонов? Т.е. сделать отчет из отдельных прогонов бэк-форвард.

Моя прога такого не делает (и не сможет). Это чистый MQL вариант для 1-го штатного прогона оптимизации с форвардом или без. Попробуйте сами собирать фреймами историю приращений баланса для нескольких прогонов, в один или несколько файлов, а потом отобразить в экселе, например.
 
Igor Volodin:
Моя прога такого не делает (и не сможет). Это чистый MQL вариант для 1-го штатного прогона оптимизации с форвардом или без. Попробуйте сами собирать фреймами историю приращений баланса для нескольких прогонов, в один или несколько файлов, а потом отобразить в экселе, например.
М ного возни , к тому же я не смогу выровнять по началу форварда.
 
Youri Tarshecki:

У меня вопрос  - я автооптимизатором делаю сначала оптимизацию на бэк участке, а потом форвард прогон, который содержит и бэк и форвард участок.

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

Что мне сделать, чтобы ваша прога смогла отобразить графики баланса всех двенадцати этих прогонов? Т.е. сделать отчет из отдельных прогонов бэк-форвард.

Я сохраняю понравившиеся настройки от оптимизации в стандартный .set файл 2016-01-01.opt, 2016-02-01.opt, 2016-03-01.opt  и т.д. Все файлы помещаю в директорию терминала Files.

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

Затем при работе советника на первом тике каждого дня проверяю есть ли файл для текущего дня. 1 фев. найдется 2016-02-01.opt и считается. Все значения из файла копируются в рабочие переменные. И советник ведет себя так, будто бы вы 1 фев. поменяли входные переменные. Таким образом за весь период тестирования несколько раз подставляются входные переменные нужные для текущего участка.

В итоге имеем график баланса и эквити для всех форвард участков.

Этот метод учитывает так же открытые позиции на момент смены участка. Открытые до 1 фев. по правилам от 1 янв. будут доводиться экспертом уже по новым настройкам (что в общем то и правильно).

 
elibrarius:

Я сохраняю понравившиеся настройки от оптимизации в стандартный .set файл 2016-01-01.opt, 2016-02-01.opt, 2016-03-01.opt  и т.д. Все файлы помещаю в директорию терминала Files.

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

Затем при работе советника на первом тике каждого дня проверяю есть ли файл для текущего дня. 1 фев. найдется 2016-02-01.opt и считается. Все значения из файла копируются в рабочие переменные. И советник ведет себя так, будто бы вы 1 фев. поменяли входные переменные. Таким образом за весь период тестирования несколько раз подставляются входные переменные нужные для текущего участка.

В итоге имеем график баланса и эквити для всех форвард участков.

Этот метод учитывает так же открытые позиции на момент смены участка. Открытые до 1 фев. по правилам от 1 янв. будут доводиться экспертом уже по новым настройкам (что в общем то и правильно).

Ну да, тоже вариант. Недостаток  -надо ждать конца всего процесса, чтобы увидеть общую картину.

Иногда я прерываю процесс, если вижу, что что-то пошло не так

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

А так - не надо замарачиваться с совмещением графиков. 

 
Youri Tarshecki:

Ну да, тоже вариант. Недостаток  -надо ждать конца всего процесса, чтобы увидеть общую картину.

Иногда я прерываю процесс, если вижу, что что-то пошло не так

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

А так - не надо замарачиваться с совмещением графиков. 

Зачем ждать? 2 прохода форварда сделали, 2 файла сохранили - и запускаете тест за 2 месяца (или др. временные участки выбранные вами). И получится результат на 2 участка.

У меня например, если вижу, что сильная просадка, то делаю новый форвард до дня следующего за просадкой например 2016-03-12.opt. Из предположения что характер рынка поменялся и нужна переоптимизация.

 
elibrarius:

Зачем ждать? 2 прохода форварда сделали, 2 файла сохранили - и запускаете тест за 2 месяца (или др. временные участки выбранные вами). И получится результат на 2 участка.

Я не могу прерывать - автотестер работает непрерывно, а если не видно промежуточных результатов  -неясно, надо останавливать или нет.

 И, кстати, имея общий график, трудно будет понять ситуацию по отрезкам 0 прибыльный, скажем, данный месяц или нет. 

 
Youri Tarshecki:

Я не могу прерывать - автотестер работает непрерывно, а если не видно промежуточных результатов  -неясно, надо останавливать или нет.

Я вручную делаю, автотестер еще не придумал. Для моего метода - все ок. К вашему - видимо нужно что-то доработать.

 И, кстати, имея общий график, трудно будет понять ситуацию по отрезкам 0 прибыльный, скажем, данный месяц или нет.

Почему не видно? На графике в тестере и видно - мышку наводите на кривую и видите дату сделки.

 
elibrarius:

Я вручную делаю, автотестер еще не придумал. Для моего метода - все ок. К вашему - видимо нужно что-то доработать.

Почему не видно? На графике в тестере и видно - мышку наводите на кривую и видите дату сделки.

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