Трейдерский самообман: недоверие к форвардам. - страница 3

 
khorosh:
Форвард - полезная проверка, но не панацея. В результатах оптимизации можно выбрать вариант параметров обеспечивающих  хороший форвард, но это не гарантирует хорошие результаты на реале.
Предложите лучший метод анализа.
 
Youri Tarshecki:
Ориентация на ПОСЛЕДНИЕ изменения - это еще один вид самообмана. Естественно, для торговли нужно использовать свежие настройки. Но ограничиваясь оптимизацией за последний период, вы никогда не сможете понять - а насколько ваш советник устойчив к будущим изменениям. Посмотрите вторую картинку моего поста - это отчетливо видно. Форвард  -это сравнение прошлого с прошлым. Ваша методика никакого отношения не имеет к форвардному анализу. Практически любой советник можно оптимизировать до красивого бэктеста. Причем, закономерность здесь такая - чем больше настроек оптимизируется, тем более красивый бэк получается. И тем более некрасивый получается форвард. Форварды помогают найти именно ту логику, которая использует более долговременные закономерности, а, значит, более перспективна.

Не вижу обоснованного сомнения - ваши утверждения без логически обоснованных выводов.

Докажите, что оптимизация за 3 последних года и проверка её на прошлых данных (за 3 года до начала оптимизации к примеру), худший метод, чем оптимизация на истории шестилетний давности размером 3 года и последующая поверка результатов оптимизации на 3 последних годах?

В любом случае, моё предложение о модификации советника, позволяет оптимизировать как на 6 летних данных так и на 3х летних данных, при этом сразу.

 
-Aleks-:

Не вижу обоснованного сомнения - ваши утверждения без логически обоснованных выводов.

Докажите, что оптимизация за 3 последних года и проверка её на прошлых данных (за 3 года до начала оптимизации к примеру), худший метод, чем оптимизация на истории шестилетний давности размером 3 года и последующая поверка результатов оптимизации на 3 последних годах?

В любом случае, моё предложение о модификации советника, позволяет оптимизировать как на 6 летних данных так и на 3х летних данных, при этом сразу.

Дело не в направлении проверки. А в количестве форвардов. Если вы предпочитаете искать "обратную инерцию" вместо обычной, в вашем случае вы можете сделать это только один раз. -  вы прижаты последним отрезком к настоящему. Делать один-единственный, хоть и "перевернутый" форвард - слишком недостоверно. Кроме того, "проверочный" отрезок в два раза дальше отстоит от, собственно, цели этой проверки, реальной торговли- т.к бэк-отрезок проверкой не является. Но не это главное. То, что вы делаете - частный случай перекрестного сравнения форвардов.  Перекрестные форварды известный метод, но его преимущество перед обычным не очевидно, я сам не делал, но по отзывам -тот же эффект, как и последовательные форварды, кроме того, все равно они считаются только когда их статистически много. А у вас только один. А в условиях МТ вообще  непонятно как такой метод автоматизировать.
 
Youri Tarshecki:
Дело не в направлении проверки. А в количестве форвардов. Если вы предпочитаете искать "обратную инерцию" вместо обычной, в вашем случае вы можете сделать это только один раз. -  вы прижаты последним отрезком к настоящему. Делать один-единственный, хоть и "перевернутый" форвард - слишком недостоверно. Кроме того, "проверочный" отрезок в два раза дальше отстоит от, собственно, цели этой проверки, реальной торговли- т.к бэк-отрезок проверкой не является. Но не это главное. То, что вы делаете - частный случай перекрестного сравнения форвардов.  Перекрестные форварды известный метод, но его преимущество перед обычным не очевидно, я сам не делал, но по отзывам -тот же эффект, как и последовательные форварды, кроме того, все равно они считаются только когда их статистически много. А у вас только один. А в условиях МТ вообще  непонятно как такой метод автоматизировать.
Опять же не пойму, в чём прелесть дробить год на месяцы и усреднять результат? Очевидно, что надо учитывать состояние рынка - тренд или флэт при анализе, и чем больше таких состояний, в том числе и изменений одного состояния на другое, тем более понятна и достоверна будет картина. Или у вас советник на минутках работает?
 
-Aleks-:
Опять же не пойму, в чём прелесть дробить год на месяцы и усреднять результат? Очевидно, что надо учитывать состояние рынка - тренд или флэт при анализе, и чем больше таких состояний, в том числе и изменений одного состояния на другое, тем более понятна и достоверна будет картина. Или у вас советник на минутках работает?
Еще раз спрашиваю - почему тогда вы не оптимизируете на ВСЕй доступной истории? По вашей логике картина тогда будет самая достоверная. Соотношение временных отрезков для анализа я выявляю экспериментально и здесь совершенно неважно на минутках или нет работает советник. Сам эксперимент говорит - в каком режиме просадки меньше, а прибыль больше. Более того, в последнее время меня посещают мысли, что для каждой перменной должнен быть свой собственный оптимальный отрезок оптимизации, но это, видимо, дело будущего.
 
Youri Tarshecki:
Еще раз спрашиваю - почему тогда вы не оптимизируете на ВСЕй доступной истории? По вашей логике картина тогда будет самая достоверная. Соотношение временных отрезков для анализа я выявляю экспериментально и здесь совершенно неважно на минутках или нет работает советник. Сам эксперимент говорит - в каком режиме просадки меньше, а прибыль больше.

Некоторые советники оптимизирую на всей истории (с 2000 года обычно), и не вижу в этом ничего зазорного.

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

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

Опять же не понимаю, почему предложенный мной метод автоматизации Вам не подходит?

Повторюсь - в советнике делаем временные метки, в период которых ставим запрет на открытие ордеров. к примеру

Если (Дата_Открывать==1) Дата_старт=01.01.2015, Дата_стоп=10.05.2015;

Если (Дата_Открывать==2) Дата_старт=01.01.2014, Дата_стоп=31.12.2014;

Вот и получился автоматизированный форвард.

Потом в экселе нарезали полосок - 5 минут, воткнули заготовленные формулы и будет счастье.

Может я что-то не до понимаю о задаче оптимизации?

 
-Aleks-:

Есть более устойчивые паттерны поведения, а есть менее устойчивые, но чем ближе этот паттерн будет найден к текущей истории, тем более долгое время он будет служить -

Это верно. Но при условии, что вы этот паттерн реально нашли, а не произошла банальная подгонка.  Уверенность может дать только повторяемость, а форвард в одном экземпляре мало что покажет, хотя бы просто потому, что фрвард, как правило, хуже бэктеста. Т.е. сравнивать бэктест с форвардом, да еще и в одном экземпляре, в общем-то бессмысленно. Я кстати, не настаиваю, что отрезки надо "дробить", или "укрупнять". Я подчеркивал, что только практика даст ясность, но чем больше фрвардов вы возьмете, тем большая ясность наступит. А насчет самого отрезкая  -я не знаю, какой ответ будет лучше в вашем случае, может, лучше будет отрезок даже больше, чем вы думаете.
 
Yuri_Evseenkov:
Предложите лучший метод анализа.
Пока не придумал.)
 
Stanislav Korotky:

Насколько я помню, я делал так - сохранял во фрейм время первой сделки - это "баланс". Соответственно, при записи параметров и показателей всех прогонов в один файл легко отличить бэктекст от форварда по двум характерным датам. Я сохранял все прогоны именно в один файл (открывается в OnTesterInit, закрывается в OnTesterDeinit).


Уже интереснее. Но у меня ситуация сложнее. Предположим, я попробую отличить бэк от форварда по дате. Но бэков у меня будет штук 20 по количеству переменных за один отрезок истории, а форвард один. Поскольку отрезков 12, то за год дат наберется целая куча (240 бэков +12 форвардов) и попробуй их там распознай. Нужно другое решение. Например - в код надо добавлять возможность сохранять отчет  не тотально на каждый прогон, а при условии появления некоего внешнего для советника сигнала. Скажем, автооптимизатор, который, собственно, и инициирует все прогоны может записывать некие условные циферки в файл-связной. А советник считывает их и сам записывает полученные данные строго в те места, куда требуется. Например, Б-8-2 (таблица бэка, 8-я переменная-строка, 2-й прогон-колонка), Ф-3-11 (таблица форварда, 3-й критерий-строка, 11-й прогон-колонка).
 

Все делается гораздо более проще:

Например:

Есть советник. Он имеет 10 вариантов настройки - 10 сетов. Оптимизация есть суть выбрать один из десяти сетов. Так?

Прогоняем все варианты на всей истории, раскладываем результаты на одинаковую равномерную временную шкалу.

Вуаля. Теперь мы можем тыкнуть в любую точку времени, проанализировать слева от нее на желаемую глубину и выбрать понравившийся сет. Это будет "оптимизация"

Дальше смотрим справа от этой точки - это будет "форвард".

Причина обращения: