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

 
solandr:
HIDDEN:
Эксперт оптимизируется каждые сутки, по каждой валютной паре. Ниже результат его торговли, а в аттаче деталезация счета.

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

Технически приходится решать массу задач и проблем. Я запускал 20 версий эксперта с разными параметрами на демо счете, типо соревнование между ними, проработали они неделю результаты были как то не очень, начал разбирать торговлю, тестировать, а потом посмотрел логи и ужаснулся, у меня терминалы то и дело отключаются и подключаются, потом еще был один глюк который тоже на форуме разберали, убрать его так и не получилось, но с переустановкой терминала он пропал сам сабой. А из за этого глюка было очень много открыто ордеров никак не относящихся к эксперту. Когда перевел все терминалы работать через дата центр он по непонятной мне причине зависал и не давал катеровки терминалам. Вобщем чимпионатик сорвался.

А так пробывал и демо счета и мини реал, все работает как и было задумано, претензий к эксперту нет. Восновном вылазиют глюки и ошибки именно програмного обеспечения или операционной системы, глюки по железу пока не обнаружены. Тестируем новые технологии. Картинка выложенная выше и стейт это уже следующий этам тестирования с автооптимизатором.
 
Спасибо за информацию. Будем ждать более длительных результатов работы эксперта. Например за следующие пару месяцев. Успехов в тестировании!
 

Написано чрезвычайно наукообразно, а на самом деле старая и дурная идея.
Поймите простую вещь: как только вы начинаете оптимизировать на out-of-sample она перестает быть out-of-sample. Все, точка. Если вы из 10 экспертов которые зарабатывают на оптимизационном выбрали те 5, которые не сливают на контрольном - то это та же самая подгонка. С тем же успехом могли бы оптимизировать по всему отрезку.
Вообще проблема борьбы с подгонкой является чрезвычайно сложной, из предлагаемых решений наиболее грамотным считаю крайне элегантную мысль предложенную Бакеевым в его статье. Общая суть такая: мы не можем создать ценовую историю такую, какая будет на реале для тестирования. Что же, создадим плохую историю (например смешав приращения цены из правильной истории) и повторим на ней процесс оптимизации. Дальше сравним: насколько прибыльность на "правильной" истории отличается от прибыльности на "неправильной". Это и подскажет нам какова степень подгонки.
Больше к сожалению ни одной здравой идеи не видел. Просто распихивание подгонки по темным углам, иначе говоря самообман.

 
kamal:

Написано чрезвычайно наукообразно, а на самом деле старая и дурная идея.
Поймите простую вещь: как только вы начинаете оптимизировать на out-of-sample она перестает быть out-of-sample. Все, точка. Если вы из 10 экспертов которые зарабатывают на оптимизационном выбрали те 5, которые не сливают на контрольном - то это та же самая подгонка. С тем же успехом могли бы оптимизировать по всему отрезку.
Вообще проблема борьбы с подгонкой является чрезвычайно сложной, из предлагаемых решений наиболее грамотным считаю крайне элегантную мысль предложенную Бакеевым в его статье. Общая суть такая: мы не можем создать ценовую историю такую, какая будет на реале для тестирования. Что же, создадим плохую историю (например смешав приращения цены из правильной истории) и повторим на ней процесс оптимизации. Дальше сравним: насколько прибыльность на "правильной" истории отличается от прибыльности на "неправильной". Это и подскажет нам какова степень подгонки.
Больше к сожалению ни одной здравой идеи не видел. Просто распихивание подгонки по темным углам, иначе говоря самообман.

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

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

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

А именно прогоняю оптимизацию по N баров истории. Выбираю лучший результат. Настраиваю по найденным параметрам эксперта. Далее гоняю уже настроенного эксперта на реале или демо по M баров (где M < N). Если советник за M баров дает прибыль, то его прежние параметры остаются еще на M баров. Если сливал, то приходится прогонять переоптимизацию, с целью подобрать более кошерные параметры.
Логика тут понятна, ведь если советник не сливает в трейдинге, то значит параметры у него подобраны правильно и их нет смысла менять. Если сливает - значит подобранные параметры были подгоночными. Таким макаром получаем советника, который адаптируется под рынок и меняет свои параметры вместе с рынком.

А теперь тоже самое вставляем прямо в оптимизатор. Берем историю за N + M баров. Оптимизируем по N первых баров. А проверяем по M последних. Если на участках от M+N до M-ного и от M-ного до 0 бара не было убытков, то значит этот результат оптимизации следует применить.

Если посмотреть на оба варианта, то мы видим их полную идентичность, т.е. оптимизация и в том и в другом случае проводится на участке от M+N и до M-го бара. А решение для переоптимизации принимается для участка от M-го и до 0 бара. Абсолютно та же самая отфильтровка заведомых подгонок, но зато сразу же еще на этапе оптимизации.
 

Как я говорил ранее сколько людей столько и мнений.
Лично я придерживаюсь такой стратегии, если эксперт с оптимизацией или без нее приносит прибыль значит это хорошо и эксперт является прибыльным и стабильным.
А применять оптимизацию и как часто дело каждого, только выбор оптимальных параметров из огромного колличества оптимизируемых вариантов должен быль правильным. Т.е. не тупо выбирать самый прибыльный вариант или выбирать по мат. ожиданию, просадке. Выбираемый вариант должен удовлетворять логически правильным параметрам. Основанные как на психологии самого трейдера или на логике эксперта.

Если допустим у меня из 10000 вариантов выбирается по следующим принципам.
1. Максимальный баланс
2. Мат. ожидание
3. Просадка.
4. Оптимальный траллинг стоп
5. Оптимальный стоп лосс
6. Оптимальный тейк профит
7. Оптимальный прирост баланса по валютной паре для 1-й сделки.

Делая выборку из огромного колличесва вариантов по выше описанным параметрам я получаю оптимальный вариант торговли с оптимальными параметрами.

По поводу оптимизации на N барах и тестирование на М барах не в пределах оптимизации думаю следующие.
Это нужно делать только для проверки стабильности эксперта именно в тестере. В реальной торговли этот вариант не подходит, т.к. если скажем провести оптимизацию по истории на позапрошлой недели, проверить стабильность на прошлой, нет горантии того что эксперт с параметрами позапрошлой недели будет максимально одаптирован к рынку на этой неделе. Опять таки все это заботает на небольших тайм фреймах, если эксперт работает на дневках, то тогда оптимизация должна делаться как минимум за 1-2 месяца и 1 раз в месяц, для часовых таймфреймов для одаптации эксперта вполне хватит его оптимизировать по 2-м последним неделям.

 
Reshetov писал (а):
Еще раз повторю, почему я не беру идею Бакеева или проч. авторов. Тем паче что этот самый Бакеев с гедонистским выражением лица предлагает создавать какую-то искусственную историю, на которой якобы надо все гонять. Попробуйте хотя-бы создать какую нибудь неправильную историю погоды, в которой никакие приметы не срабатывают. Например, попутайте циклоны с антициклонами и заставьте на этой бредовой модели работать программы предназначенные для метеопрогнозов. В результате получите чушь собачью и всякую прочую бакеевщину.

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

Ну вот опять, написали много всего, а суть только та что вы не поняли вообще то что предлагает Бакеев. Только не надо свое неумение читать спихивать на других, пожалуйста.

Reshetov писал (а):
Суть в том, что ту же самую задачу, которую предлагаю воткнуть в оптимизатор, я выполняю, но вручную. И она дает плоды, то бишь профиты.

А именно прогоняю оптимизацию по N баров истории. Выбираю лучший результат. Настраиваю по найденным параметрам эксперта. Далее гоняю уже настроенного эксперта на реале или демо по M баров (где M < N). Если советник за M баров дает прибыль, то его прежние параметры остаются еще на M баров. Если сливал, то приходится прогонять переоптимизацию, с целью подобрать более кошерные параметры.
Логика тут понятна, ведь если советник не сливает в трейдинге, то значит параметры у него подобраны правильно и их нет смысла менять. Если сливает - значит подобранные параметры были подгоночными. Таким макаром получаем советника, который адаптируется под рынок и меняет свои параметры вместе с рынком.

А теперь тоже самое вставляем прямо в оптимизатор. Берем историю за N + M баров. Оптимизируем по N первых баров. А проверяем по M последних. Если на участках от M+N до M-ного и от M-ного до 0 бара не было убытков, то значит этот результат оптимизации следует применить.

Если посмотреть на оба варианта, то мы видим их полную идентичность, т.е. оптимизация и в том и в другом случае проводится на участке от M+N и до M-го бара. А решение для переоптимизации принимается для участка от M-го и до 0 бара. Абсолютно та же самая отфильтровка заведомых подгонок, но зато сразу же еще на этапе оптимизации.

Особое внимание на эту строчку: "Если сливал, то приходится прогонять переоптимизацию, с целью подобрать более кошерные параметры". "Всякий, кто имеет хоть какой опыт автотрейдинга, знает," что это и есть подгонка в чистом виде. И тут не важно выпонена ли она средствами MQL или вот так "ручками". Если поведение на контрольном проверяется для различных параметров системы до получения прибыльных параметров, то контрольный становится оптимизационным со всеми вытекающими отсюда последствиями.
 
kamal:

Вообще проблема борьбы с подгонкой является чрезвычайно сложной, из предлагаемых решений наиболее грамотным считаю крайне элегантную мысль предложенную Бакеевым в его статье. Общая суть такая: мы не можем создать ценовую историю такую, какая будет на реале для тестирования. Что же, создадим плохую историю (например смешав приращения цены из правильной истории) и повторим на ней процесс оптимизации. Дальше сравним: насколько прибыльность на "правильной" истории отличается от прибыльности на "неправильной". Это и подскажет нам какова степень подгонки.
Больше к сожалению ни одной здравой идеи не видел. Просто распихивание подгонки по темным углам, иначе говоря самообман.


Большое спасибо за ссылку на эту статью! Думаю, что хотя бы один следующий абзац из неё должен заставить задуматься многих оптимизаторов над тем чем они в действительности занимаются! Жаль что она мне раньше не попадалась. Сэкономил бы себе тогда достаточное количество личного времени, убитого на длительную бессмысленную подгонку. Наверное было бы неплохо видеть эту статью здесь на сайте в этом разделе https://www.mql5.com/ru/articles/mt4/tester Пускай даже не все её станут читать по разным причинам (включая принципиальное несогласие с автором) и уж тем более использовать на практике, но знать о ней всем экспертописателям просто необходимо в качестве так сказать каких-то базовых понятий об оптимизации иначе дорожка будет у всех одна и та же - миллионы во время оптимизации и слив потом на реале.



Со своей стороны хотел бы поделиться вот этой ссылкой http://forum.fxclub.org/showthread.php?t=32942
В ней автор производит статистический анализ приращений как взятых на реальных котировках, так и синтетически сгенерированных. Думаю, что эта ветка будет в продолжение темы, поднятой Бакеевым по поводу оптимизации. Там говорится о том, что если возможно найти способ зарабатывать на синтетически сгенерированных данных (в этом плане подход имеет общие черты с подходом Бакеева по случайному перемешиванию имеющихся реальных приращений), то возможно будет потом применить этот подход на более-менее подходящем рынке с повышенной вероятностью успеха.

PS: Под повышенной вероятностью успеха подразумевается вероятность >0,5, то есть отличная от случайной.
 
А вообще если разработчики МТ4 пойдут на организацию в тестере возможности прогонки по "смешанным приращениям" по методу Бакеева, или же посредством генерации синтетических данных, о которых говорил Северный Ветер, то думаю, что эта возможность станет практически революционной по своему значению для тестера и вообще для самой оптимизации как таковой. Что методологически выведет разработку стратегий в MetaTrader на более высокий качественный уровень. Думаю, что реализацию "смешанных приращений по данным М1 с соответствующим перестроением остальных таймфреймов" организовать гораздо проще нежели сгенерить синтетические данные, похожие по своим статпараметрам на тот или иной валютный инструмент. В общем очень хотелось бы чтобы разработчики заложили такую возможность например при разработке нового МТ5, над которым сейчас работают.

PS: Наверное для упрощения технической реализации "смешанных приращений по данным М1 с соответствующим перестроением остальных таймфреймов" вполне достаточно ограничиться случайным перемешиванием готовых баров М1, представляя каждый из баров в виде значений приращений относительно цены открытия бара. То есть приращения бара будут в таком случае записаны следующим образом.
delta_Open=0,
delta_High=High-Open,
delta_Low=Low-Open,
delta_Close=Close-Open.
После этого бары перемешиваются случайным образом (Необходимо иметь возможность генерить сколь угодное количество реализаций таких перемешиваний баров).
Далее из этих приращений баров по М1 формировать итоговую историю М1 для тестирования, соблюдая правило равенства цены закрытия предыдущего бара цене открытия последующего бара.
Из этой тестовой последовательности М1 перестраивать все остальные таймфреймы.
 
solandr:
Со своей стороны хотел бы поделиться вот этой ссылкой http://forum.fxclub.org/showthread.php?t=32942
В ней автор производит статистический анализ приращений как взятых на реальных котировках, так и синтетически сгенерированных. Думаю, что эта ветка будет в продолжение темы, поднятой Бакеевым по поводу оптимизации. Там говорится о том, что если возможно найти способ зарабатывать на синтетически сгенерированных данных (в этом плане подход имеет общие черты с подходом Бакеева по случайному перемешиванию имеющихся реальных приращений), то возможно будет потом применить этот подход на более-менее подходящем рынке с повышенной вероятностью успеха.

PS: Под повышенной вероятностью успеха подразумевается вероятность >0,5, то есть отличная от случайной.

К сожалению не смогу ответить как вы, с благодарностью за ссылку. Северного Ветра я читал, но имею к нему серьезное предубеждение. Проблема заключается в том что из 10 его постов 3 содержат весьма полезные для обывателя наблюдения, 6 - картинки (имеющие высокую методическую, так сказать, ценность) а вот еще один есть какая-то вопиющая глупость которая под впечатлением остального впечатывается надолго в мозг неподготовленного читателя. Одной из таких глупостей является например его утверждение о возможности систематического заработка в орлянке. При этом у него такая манера разговора что стоит ему начать что-то объяснять про то что это уже доказано строго лет 50 назад (что нельзя :) ) он начинает просто хамить. То есть читать можно, но относиться надо осторожно.
Подход Бакеева реализуем очень просто - надо чтобы кто-то добрый составил штук 10-15 псевдоисторий, хотя бы для начала по евроюсд. У меня к сожалению до этого никак не доходят руки. Там еще есть несколько технических сложностей (скажем моделирование гэпов, хотя полагаю на первый раз их можно опустить). Но в целом что делать ясно если кто-то сделает полагаю ему все скажут огромное спасибо.
 
kamal писал (а):
solandr:
Со своей стороны хотел бы поделиться вот этой ссылкой http://forum.fxclub.org/showthread.php?t=32942
В ней автор производит статистический анализ приращений как взятых на реальных котировках, так и синтетически сгенерированных. Думаю, что эта ветка будет в продолжение темы, поднятой Бакеевым по поводу оптимизации. Там говорится о том, что если возможно найти способ зарабатывать на синтетически сгенерированных данных (в этом плане подход имеет общие черты с подходом Бакеева по случайному перемешиванию имеющихся реальных приращений), то возможно будет потом применить этот подход на более-менее подходящем рынке с повышенной вероятностью успеха.

PS: Под повышенной вероятностью успеха подразумевается вероятность >0,5, то есть отличная от случайной.

К сожалению не смогу ответить как вы, с благодарностью за ссылку. Северного Ветра я читал, но имею к нему серьезное предубеждение. Проблема заключается в том что из 10 его постов 3 содержат весьма полезные для обывателя наблюдения, 6 - картинки (имеющие высокую методическую, так сказать, ценность) а вот еще один есть какая-то вопиющая глупость которая под впечатлением остального впечатывается надолго в мозг неподготовленного читателя. Одной из таких глупостей является например его утверждение о возможности систематического заработка в орлянке. При этом у него такая манера разговора что стоит ему начать что-то объяснять про то что это уже доказано строго лет 50 назад (что нельзя :) ) он начинает просто хамить. То есть читать можно, но относиться надо осторожно.
Подход Бакеева реализуем очень просто - надо чтобы кто-то добрый составил штук 10-15 псевдоисторий, хотя бы для начала по евроюсд. У меня к сожалению до этого никак не доходят руки. Там еще есть несколько технических сложностей (скажем моделирование гэпов, хотя полагаю на первый раз их можно опустить). Но в целом что делать ясно если кто-то сделает полагаю ему все скажут огромное спасибо.

Достаточно скрипт написать, и будет он бары переставлят как хочешь. И будет вам орлянка.