Предложение разработчикам. Борьба с подгонкой внешних параметров советников на исторических данных
Думаю, что бороться с подгонкой параметров эксперта на истории просто невозможно. И форвардные тесты (тестирование вне выборки) проблему также не решают. Результат как всегда будет один и тот же. Если стратегия имеет рациональное зерно, способное зарабатывать деньги, то прибыль у вас будет и без оптимизации на истории. Если же его там нет, то оптимизация, включая успешные форвардные тесты, денег вам не принесут. Я уже более полугода никакими оптимизациями в тестере не занимаюсь (максимум - это просто прогоны в тестере для отладки кода). Только тестирование он-лайн (сразу на реальных копейках). По моему мнению у эксперта не должно быть вообще никаких внешних параметров, которые нужно оптимизировать. Если взять концепцию рынка, условно говоря разделяющуюся на 2 фазы - разворот тренда и движение цены от одного разворота до другого, то эксперт должен во-первых решать "всего лишь" :o) 2 задачи - это определение фазы разворота и фазы движения. Очевидно, что каждый разворот в будущем будет иметь разные параметры, то есть если использовать индикаторы, которые сигнализируют о развороте, то один и тот же индикатор покажет разные значения на разных разворотах. И соответственно бессмысленно пытаться подстраивать работу эксперта под параметры индикатора на прошлых разворотах, так как будущие развороты будут другими с соответсвующими последствиями для работы эксперта. Ну а уровень стоплосса для открытой позиции может быть выбран просто на основании логики к примеру стоплосс за ближайшим значимым фракталом (минимум или максимум за последние 1-2 неделю) или ещё как-нибудь логически обоснованным. Трейлинг стоплосса также вряд ли может быть сколь-нибудь обоснован (соптимизирован). Во время движения от одного разворота до другого может случиться куча разных спекулятивных новостей, которые вышибут прибыльную позу по невыгодной цене вне зависимости от значения размера трейлинга стоплосса, который был подобран в тестере. Эксперт просто должен определить повышенную вероятность начала следующего разворота и закрыть прибыльную позицию в перегретой разворотной зоне пускай и не по максимальной цене, так как точное значение максимума никакими расчётами определить невозможно, можно определить лишь повышенную вероятность его возникновения. Это в любом случае статистически будет выгоднее чем трейлинг стоп. Как это сделать - это уже вопросы стратегии, который каждый решает самостоятельно. Эксперт, который работает на основе такого принципа соответственно должен быть более-менее успешным на большинстве валют. Поэтому я провожу реальные тесты сразу на всех доступных валютах брокера (19 штук). Это резко убыстряет скорость набора статистических данных и позволяет быстрее понять направления дальнейшего совершенствования логики работы советника по определению фаз рынка.
По моему мнению у эксперта не должно быть вообще никаких внешних
параметров, которые нужно оптимизировать.
...
Эксперт просто должен определить повышенную вероятность начала
следующего разворота и закрыть прибыльную позицию в перегретой
разворотной зоне
Действительно, и нафига эта возня со всякими тестами, оптимизаторами и прочие ген. алгоритмами? Когда можно просто воткнуть на чарт МТСку и только наблюдать как морда у нее улыбается и баланс растет. Все сразу станут богатыми и счастливыми.
На самом деле сколько людей столько и мнений. Например я очешь широко использую функцию как тестирование и оптимизация советников. В моих экспертах имеется ряд настроик которые необходимо оптимизировать. И поверте оптимизация даёт свой прирост баланса, нежели эксперт в котором нет совсем внешних настроек и который не оптимизируется совсем. Да я понимаю что в прибыльном эксперте должны быть заложены алгоритмы правильной торговли, а не добиваться прибыльности с помощью подгонки под прошлую историю.
Вот вам живой пример эффективности оптимизации. Эксперт оптимизируется каждые сутки, по каждой валютной паре. Ниже результат его торговли, а в аттаче деталезация счета.

Reshetov, молодца. Хорошо написал.
На самом деле сколько людей столько и мнений. Например я очешь широко использую функцию как тестирование и оптимизация советников. В моих экспертах имеется ряд настроик которые необходимо оптимизировать. И поверте оптимизация даёт свой прирост баланса, нежели эксперт в котором нет совсем внешних настроек и который не оптимизируется совсем.
А посему, что касаемо оптимизации, то тоже пришел к выводу, что ее необходимо прогонять по мере изменения рыночных тенденций. Раньше гонял по срокам, т.е. например, раз в неделю. Теперь дошел до того, что нет необходимости для переоптимизации, если советник с параметрами прежней оптимизации дает профит. Только если его доходность упала, тогда надо переоптимизировать.
Ну и потом, из результатов оптимизации приемлемыми являются лишь те, которые по тестам на графике дают профит на последних 20-30% тестируемого периода. Все остальные - голимая подгонка.
Поэтому предлагаю разработчикам чтобы в тестере стратегий выдавались не только результаты оптимизации по всей истории тестирования, а сразу два результата, т.е. например, результат по балансу или прибыльности для первых 80% оптимизируемого периода и отдельно результат последних 20% этого же периода. Если хотя-бы один из этих участков убыточен, то параметры советника на которых он тестировался непригодны. А отличить пригодные от непригодных результатов оптимизации никоим образом не удается, как последующим тестированием и визуальным просмотром графиков. Поскольку результатов тестирования и после генетического алгоритма слишком много, то поиск приемлемых, попросту чрезмерно затратен по времени.
По моему мнению у эксперта не должно быть вообще никаких внешних
параметров, которые нужно оптимизировать.
...
Эксперт просто должен определить повышенную вероятность начала
следующего разворота и закрыть прибыльную позицию в перегретой
разворотной зоне
Действительно, и нафига эта возня со всякими тестами, оптимизаторами и прочие ген. алгоритмами? Когда можно просто воткнуть на чарт МТСку и только наблюдать как морда у нее улыбается и баланс растет. Все сразу станут богатыми и счастливыми.
Я просто поделился своим мнением исходя из имеющегося своего опыта - всего-навсего... А все сразу богатыми и счастливыми никогда не будут и используемые методы оптимизации не могут являться главной причиной этого факта.
Ваше предложение бесспорно может облегчить жизнь тем, кто занимается вот такими оптимизациями с последующими тестами вне выборки. Хотя на этом форуме мне попадались обсуждения запуска тестера, расположенного в другом каталоге с получением результатов экспертом. По моему xeon предлагал вариант реализации. То есть и без помощи разработчиков такое можно уже реализовать, только конечно же это достаточно сложно.
PS: 'автооптимизатор'
По моему мнению у эксперта не должно быть вообще никаких внешних
параметров, которые нужно оптимизировать.
...
Эксперт просто должен определить повышенную вероятность начала
следующего разворота и закрыть прибыльную позицию в перегретой
разворотной зоне
Действительно, и нафига эта возня со всякими тестами, оптимизаторами и прочие ген. алгоритмами? Когда можно просто воткнуть на чарт МТСку и только наблюдать как морда у нее улыбается и баланс растет. Все сразу станут богатыми и счастливыми.
Я просто поделился своим мнением исходя из имеющегося своего опыта - всего-навсего... А все сразу богатыми и счастливыми никогда не будут и причина этого кроется не только в методах оптимизации. ..
Заметьте, что это сказано было именно вами. Никаких споров по этому вашему заявлению я устраивать не собираюсь.
Заметьте, что это сказано было именно вами. Никаких споров по этому вашему заявлению я устраивать не собираюсь.
По моему мнению у эксперта не должно быть вообще никаких внешних
параметров, которые нужно оптимизировать.
...
Эксперт просто должен определить повышенную вероятность начала
следующего разворота и закрыть прибыльную позицию в перегретой
разворотной зоне
Действительно, и нафига эта возня со всякими тестами, оптимизаторами и прочие ген. алгоритмами? Когда можно просто воткнуть на чарт МТСку и только наблюдать как морда у нее улыбается и баланс растет. Все сразу станут богатыми и счастливыми.
Я просто поделился своим мнением исходя из имеющегося своего опыта - всего-навсего... А все сразу богатыми и счастливыми никогда не будут и используемые методы оптимизации не могут являться главной причиной этого факта.
Ваше предложение бесспорно может облегчить жизнь тем, кто занимается вот такими оптимизациями с последующими тестами вне выборки. Хотя на этом форуме мне попадались обсуждения запуска тестера, расположенного в другом каталоге с получением результатов экспертом. По моему xeon предлагал вариант реализации. То есть и без помощи разработчиков такое можно уже реализовать, только конечно же это достаточно сложно.
PS: 'автооптимизатор'
А если бы во время оптимизации сразу же можно было засечь прибыль от начала периода тестирования и до некоторой точки, а также отдельно от этой самой точки и до завершения периода, то все стало бы в той или иной степени наглядным и понятным. Это и есть форвардные тесты.
Эксперт оптимизируется каждые сутки, по каждой валютной паре. Ниже результат его торговли, а в аттаче деталезация счета.
Как у вас обстоят дела с экспертом в целом? Если я не ошибаюсь, то вы запустили несколько его вариантов (наверное с разными параметрами) в тестирование на демо с нового года. Могли бы ознакомить с общими результатами тестирования эксперта за 2 месяца, который имеет очень впечатляющие результаты на истории 'От идеи до реального счета.' ?
Просто так из чистого любопытства спрашиваю, так как у меня тоже были советники, которые загонялись под кривую с не менее впечатляющими результатами, что ваш эксперт, но к сожалению на реале эффект был обратным. Вот и хотелось бы узнать что получилось в результате у вас?

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Я так думал и многие до сих пор полагают, что бороться с этим злом можно если внедрить автооптимизацию советников, как внешнюю, так и встроенную в терминал. Например ввести функцию Optimize(некие параметры оптимизации). Но на самом деле, как выясняется, такой подход ничего не решает. Например, параметры советника прошли оптимизацию и был взят лучший результат. Поставили его на трейдинг. Если не сливает, то оставляем прежние параметры, пока не начнет сливать. Как только слил, сразу переоптимизацию. Вроде бы логично. Но в результате получается, что последующая переоптимизация также дает подгонку (причем по очень многим инструментам еще и стабильно подгонка за подгонкой). Результат только плачевный, поскольку подобрать таким макаром неподгоночные параметры советника удается очень редко.
А почему бы не сократить этот процесс, т.е. отказаться от автооптимизации, как таковой. А вместо нее применить форвардную оптимизацию.
Как это делается? Например, у меня в окне установлены максимальные 2000 баров - репрезентативная выборка. Я прогоняю по ним оптимизацию. Потом ставлю советника на трейдинг и гоняю на демо или в реале еще на 500 барах - вне репрезентативной выборки. Если советник не сливает, то внешние параметры остаются прежними. Если сливает переоптимизация.
А теперь предположим, что в тестере стратегий есть форвардная оптимизация. Для этого в окне установлен предел 2500 баров. Но оптимизация проводится только по 2000 первых - по репрезентативной выборке, а тестирование только по 500 последним - вне выборки. И отсортированные результаты выдаются только по результатам вне выборки. Причем бесполезными данными тестера считаются, если или в выборке или (либо) вне ее баланс оказался отрицательным. (Желательно, чтобы владелец советника мог сам выбирать количество баров в выборке и вне ее). В этом случае мне нет никакой необходимости терять время на тестирование советника в трейдинге, а результат получается таким же, как и при этом самом тестировании. Т.е. если советник не слил на последних 500 барах, значит я уже с большей вероятностью имею дело не с подгонкой результатов, а с более или менее подобранными под реальный рынок.
Многие могут возразить, а почему бы мне не использовать для этой же цели предусмотренными в тестере стратегий ограничениями по датам. Ну, во первых, по датам работать не удобно - проще штаны через голову одевать. Календарные периоды и бары - это совершенно разные понятия. Причиной тому являются праздники и выходные, из-за чего возникают всякие неравномерности. Не говоря о том, что календарные представления конвертировать в бары и обратно весьма сложно. А сколько доступных баров в окне тестер может узнать без проблем. Но дело даже не в этом. Я гонял форвард тесты по многим инструментам. И что получается в результате. Беру несколько лучших результатов оптимизации. Прогоняю форварды вне репрезентативной выборки и все они без исключения оказываются сливными. Т.е. идет абсолютная подгонка под историю. А поскольку результатов оптимизации тестер выдает несколько тысяч, то выявить вручную тестами неподгоночные, практически невозможно - уйдет куча времени и неизвестно, есть ли они вообще в списке выданном после оптимизации или нет.
Получаем 4 варианта: