| / | Форум |
|
Reshetov
03.03.2007 09:56
Не для кого не секрет, что MetaTrader4 уже стал практически вне конкуренции по отношению к другим торговым платформам, благодаря поддержке очень качественного автотрейдинга (и не только). И причиной тому, являются несколько факторов:
Я так думал и многие до сих пор полагают, что бороться с этим злом можно если внедрить автооптимизацию советников, как внешнюю, так и встроенную в терминал. Например ввести функцию Optimize(некие параметры оптимизации). Но на самом деле, как выясняется, такой подход ничего не решает. Например, параметры советника прошли оптимизацию и был взят лучший результат. Поставили его на трейдинг. Если не сливает, то оставляем прежние параметры, пока не начнет сливать. Как только слил, сразу переоптимизацию. Вроде бы логично. Но в результате получается, что последующая переоптимизация также дает подгонку (причем по очень многим инструментам еще и стабильно подгонка за подгонкой). Результат только плачевный, поскольку подобрать таким макаром неподгоночные параметры советника удается очень редко. А почему бы не сократить этот процесс, т.е. отказаться от автооптимизации, как таковой. А вместо нее применить форвардную оптимизацию. Как это делается? Например, у меня в окне установлены максимальные 2000 баров - репрезентативная выборка. Я прогоняю по ним оптимизацию. Потом ставлю советника на трейдинг и гоняю на демо или в реале еще на 500 барах - вне репрезентативной выборки. Если советник не сливает, то внешние параметры остаются прежними. Если сливает переоптимизация. А теперь предположим, что в тестере стратегий есть форвардная оптимизация. Для этого в окне установлен предел 2500 баров. Но оптимизация проводится только по 2000 первых - по репрезентативной выборке, а тестирование только по 500 последним - вне выборки. И отсортированные результаты выдаются только по результатам вне выборки. Причем бесполезными данными тестера считаются, если или в выборке или (либо) вне ее баланс оказался отрицательным. (Желательно, чтобы владелец советника мог сам выбирать количество баров в выборке и вне ее). В этом случае мне нет никакой необходимости терять время на тестирование советника в трейдинге, а результат получается таким же, как и при этом самом тестировании. Т.е. если советник не слил на последних 500 барах, значит я уже с большей вероятностью имею дело не с подгонкой результатов, а с более или менее подобранными под реальный рынок. Многие могут возразить, а почему бы мне не использовать для этой же цели предусмотренными в тестере стратегий ограничениями по датам. Ну, во первых, по датам работать не удобно - проще штаны через голову одевать. Календарные периоды и бары - это совершенно разные понятия. Причиной тому являются праздники и выходные, из-за чего возникают всякие неравномерности. Не говоря о том, что календарные представления конвертировать в бары и обратно весьма сложно. А сколько доступных баров в окне тестер может узнать без проблем. Но дело даже не в этом. Я гонял форвард тесты по многим инструментам. И что получается в результате. Беру несколько лучших результатов оптимизации. Прогоняю форварды вне репрезентативной выборки и все они без исключения оказываются сливными. Т.е. идет абсолютная подгонка под историю. А поскольку результатов оптимизации тестер выдает несколько тысяч, то выявить вручную тестами неподгоночные, практически невозможно - уйдет куча времени и неизвестно, есть ли они вообще в списке выданном после оптимизации или нет. Получаем 4 варианта:
|
|
Репортаж о ходе Чемпионата: шестая неделя (6-13 ноября) Прошло шесть недель соревнования, половина Чемпионата Automated Trading Championship 2006 уже позади. В десятке лучших экспертов постоянные перемещения. Вчерашние лидеры снова покидают свои места. |
|
solandr
03.03.2007 11:55
Думаю, что бороться с подгонкой параметров эксперта на истории просто невозможно. И форвардные тесты (тестирование вне выборки) проблему также не решают. Результат как всегда будет один и тот же. Если стратегия имеет рациональное зерно, способное зарабатывать деньги, то прибыль у вас будет и без оптимизации на истории. Если же его там нет, то оптимизация, включая успешные форвардные тесты, денег вам не принесут. Я уже более полугода никакими оптимизациями в тестере не занимаюсь (максимум - это просто прогоны в тестере для отладки кода). Только тестирование он-лайн (сразу на реальных копейках). По моему мнению у эксперта не должно быть вообще никаких внешних параметров, которые нужно оптимизировать. Если взять концепцию рынка, условно говоря разделяющуюся на 2 фазы - разворот тренда и движение цены от одного разворота до другого, то эксперт должен во-первых решать "всего лишь" :o) 2 задачи - это определение фазы разворота и фазы движения. Очевидно, что каждый разворот в будущем будет иметь разные параметры, то есть если использовать индикаторы, которые сигнализируют о развороте, то один и тот же индикатор покажет разные значения на разных разворотах. И соответственно бессмысленно пытаться подстраивать работу эксперта под параметры индикатора на прошлых разворотах, так как будущие развороты будут другими с соответсвующими последствиями для работы эксперта. Ну а уровень стоплосса для открытой позиции может быть выбран просто на основании логики к примеру стоплосс за ближайшим значимым фракталом (минимум или максимум за последние 1-2 неделю) или ещё как-нибудь логически обоснованным. Трейлинг стоплосса также вряд ли может быть сколь-нибудь обоснован (соптимизирован). Во время движения от одного разворота до другого может случиться куча разных спекулятивных новостей, которые вышибут прибыльную позу по невыгодной цене вне зависимости от значения размера трейлинга стоплосса, который был подобран в тестере. Эксперт просто должен определить повышенную вероятность начала следующего разворота и закрыть прибыльную позицию в перегретой разворотной зоне пускай и не по максимальной цене, так как точное значение максимума никакими расчётами определить невозможно, можно определить лишь повышенную вероятность его возникновения. Это в любом случае статистически будет выгоднее чем трейлинг стоп. Как это сделать - это уже вопросы стратегии, который каждый решает самостоятельно. Эксперт, который работает на основе такого принципа соответственно должен быть более-менее успешным на большинстве валют. Поэтому я провожу реальные тесты сразу на всех доступных валютах брокера (19 штук). Это резко убыстряет скорость набора статистических данных и позволяет быстрее понять направления дальнейшего совершенствования логики работы советника по определению фаз рынка. |
|
Reshetov
03.03.2007 15:00
solandr писал (а): Кто бы спорил? Делов то, хрен да маленько! Осталось только найти
такого эксперта и рынок, который с таким экспертом будет профит
давать. По моему мнению у эксперта не должно быть вообще никаких внешних
параметров, которые нужно оптимизировать. Действительно, и нафига эта возня со всякими тестами, оптимизаторами и прочие ген. алгоритмами? Когда можно просто воткнуть на чарт МТСку и только наблюдать как морда у нее улыбается и баланс растет. Все сразу станут богатыми и счастливыми. |
|
HIDDEN
03.03.2007 16:02
Reshetov, молодца. Хорошо написал.
На самом деле сколько людей столько и мнений. Например я очешь широко использую функцию как тестирование и оптимизация советников. В моих экспертах имеется ряд настроик которые необходимо оптимизировать. И поверте оптимизация даёт свой прирост баланса, нежели эксперт в котором нет совсем внешних настроек и который не оптимизируется совсем. Да я понимаю что в прибыльном эксперте должны быть заложены алгоритмы правильной торговли, а не добиваться прибыльности с помощью подгонки под прошлую историю. Вот вам живой пример эффективности оптимизации. Эксперт оптимизируется каждые сутки, по каждой валютной паре. Ниже результат его торговли, а в аттаче деталезация счета. ![]() |
|
Reshetov
03.03.2007 17:29
HIDDEN писал (а): Я человек не верующий - атеист и на веру ничего не принимаю кроме
доказанных теорем, а стараюсь все перепроверять. Тем паче, что
бизнес на доверии - лохотрон, а реальный бизнес строиться только
на гарантиях. Reshetov, молодца. Хорошо написал. На самом деле сколько людей столько и мнений. Например я очешь широко использую функцию как тестирование и оптимизация советников. В моих экспертах имеется ряд настроик которые необходимо оптимизировать. И поверте оптимизация даёт свой прирост баланса, нежели эксперт в котором нет совсем внешних настроек и который не оптимизируется совсем. А посему, что касаемо оптимизации, то тоже пришел к выводу, что ее необходимо прогонять по мере изменения рыночных тенденций. Раньше гонял по срокам, т.е. например, раз в неделю. Теперь дошел до того, что нет необходимости для переоптимизации, если советник с параметрами прежней оптимизации дает профит. Только если его доходность упала, тогда надо переоптимизировать. Ну и потом, из результатов оптимизации приемлемыми являются лишь те, которые по тестам на графике дают профит на последних 20-30% тестируемого периода. Все остальные - голимая подгонка. Поэтому предлагаю разработчикам чтобы в тестере стратегий выдавались не только результаты оптимизации по всей истории тестирования, а сразу два результата, т.е. например, результат по балансу или прибыльности для первых 80% оптимизируемого периода и отдельно результат последних 20% этого же периода. Если хотя-бы один из этих участков убыточен, то параметры советника на которых он тестировался непригодны. А отличить пригодные от непригодных результатов оптимизации никоим образом не удается, как последующим тестированием и визуальным просмотром графиков. Поскольку результатов тестирования и после генетического алгоритма слишком много, то поиск приемлемых, попросту чрезмерно затратен по времени. |
|
solandr
03.03.2007 18:07
Reshetov писал (а): solandr писал (а): Кто бы спорил? Делов то, хрен да маленько! Осталось только найти
такого эксперта и рынок, который с таким экспертом будет профит
давать. По моему мнению у эксперта не должно быть вообще никаких внешних
параметров, которые нужно оптимизировать. Действительно, и нафига эта возня со всякими тестами, оптимизаторами и прочие ген. алгоритмами? Когда можно просто воткнуть на чарт МТСку и только наблюдать как морда у нее улыбается и баланс растет. Все сразу станут богатыми и счастливыми. Я просто поделился своим мнением исходя из имеющегося своего опыта - всего-навсего... А все сразу богатыми и счастливыми никогда не будут и используемые методы оптимизации не могут являться главной причиной этого факта. Ваше предложение бесспорно может облегчить жизнь тем, кто занимается вот такими оптимизациями с последующими тестами вне выборки. Хотя на этом форуме мне попадались обсуждения запуска тестера, расположенного в другом каталоге с получением результатов экспертом. По моему xeon предлагал вариант реализации. То есть и без помощи разработчиков такое можно уже реализовать, только конечно же это достаточно сложно. PS: 'автооптимизатор' |
|
Reshetov
03.03.2007 18:31
solandr писал (а): Cкорее результатом этого мнения является отсутствие какого
либо опыта, а потому и такой кавалерийский наскок в духе - фигня
все чем вы тут занимаетесь, и только solandr знает как надо делать
МТС. А далее идет куча бреда, взятого из книг американских авторов.
Reshetov писал (а): solandr писал (а): Кто бы спорил? Делов то, хрен да маленько! Осталось только найти
такого эксперта и рынок, который с таким экспертом будет профит
давать. По моему мнению у эксперта не должно быть вообще никаких внешних
параметров, которые нужно оптимизировать. Действительно, и нафига эта возня со всякими тестами, оптимизаторами и прочие ген. алгоритмами? Когда можно просто воткнуть на чарт МТСку и только наблюдать как морда у нее улыбается и баланс растет. Все сразу станут богатыми и счастливыми. Я просто поделился своим мнением исходя из имеющегося своего опыта - всего-навсего... А все сразу богатыми и счастливыми никогда не будут и причина этого кроется не только в методах оптимизации. .. |
|
solandr
03.03.2007 18:36
Reshetov писал (а): Cкорее результатом этого мнения является отсутствие какого
либо опыта, а потому и такой кавалерийский наскок в духе - фигня
все чем вы тут занимаетесь, и только solandr знает как надо делать
МТС. А далее идет куча бреда, взятого из книг американских авторов.
Заметьте, что это сказано было именно вами. Никаких споров по этому вашему заявлению я устраивать не собираюсь. |
|
Reshetov
03.03.2007 18:59
solandr писал (а): Тоже не вижу смысла устраивать личные разборки. Сколько трейдеров,
столько и мнений. Если всех их собрать в одну кучу, то очень быстро
друг другу морды разобьют, но к единому мнению по вопросам торговых
стратегий так и не придут.Reshetov писал (а): Cкорее результатом этого мнения является отсутствие какого
либо опыта, а потому и такой кавалерийский наскок в духе - фигня
все чем вы тут занимаетесь, и только solandr знает как надо делать
МТС. А далее идет куча бреда, взятого из книг американских авторов.
Заметьте, что это сказано было именно вами. Никаких споров по этому вашему заявлению я устраивать не собираюсь. |
|
Reshetov
03.03.2007 19:16
solandr писал (а): Да, я видел эту ветку. И у меня есть свой автооптимизатор написанный
на Java, который выполняет ту же самую задачу и потом прописывает
параметры советников в профили. Но проблема в том, что глядя
на параметры оптимизации, нельзя понять, являются ли они подгоночными
или нет. Их можно только отсортировать по тем или иным параметрам:
прибыли, прибыльности, матожиданию, просадке или количеству
непрерывных прибылей либо убытков. Поэтому весь процесс автоматизации
попросту теряет смысл, поскольку по каждому результату и выуженным
им внешним параметрам советника, потом приходится вручную гонять
тесты и смотреть на графики. Т.е. двойная работа, т.к. во время
оптимизации гонялись тесты по каждому проходу и после нее опять
же приходится. Reshetov писал (а): solandr писал (а): Кто бы спорил? Делов то, хрен да маленько! Осталось только найти
такого эксперта и рынок, который с таким экспертом будет профит
давать. По моему мнению у эксперта не должно быть вообще никаких внешних
параметров, которые нужно оптимизировать. Действительно, и нафига эта возня со всякими тестами, оптимизаторами и прочие ген. алгоритмами? Когда можно просто воткнуть на чарт МТСку и только наблюдать как морда у нее улыбается и баланс растет. Все сразу станут богатыми и счастливыми. Я просто поделился своим мнением исходя из имеющегося своего опыта - всего-навсего... А все сразу богатыми и счастливыми никогда не будут и используемые методы оптимизации не могут являться главной причиной этого факта. Ваше предложение бесспорно может облегчить жизнь тем, кто занимается вот такими оптимизациями с последующими тестами вне выборки. Хотя на этом форуме мне попадались обсуждения запуска тестера, расположенного в другом каталоге с получением результатов экспертом. По моему xeon предлагал вариант реализации. То есть и без помощи разработчиков такое можно уже реализовать, только конечно же это достаточно сложно. PS: 'автооптимизатор' А если бы во время оптимизации сразу же можно было засечь прибыль от начала периода тестирования и до некоторой точки, а также отдельно от этой самой точки и до завершения периода, то все стало бы в той или иной степени наглядным и понятным. Это и есть форвардные тесты. |
|
solandr
03.03.2007 21:23
HIDDEN писал (а): Эксперт оптимизируется каждые сутки, по каждой валютной паре. Ниже результат его торговли, а в аттаче деталезация счета. Как у вас обстоят дела с экспертом в целом? Если я не ошибаюсь, то вы запустили несколько его вариантов (наверное с разными параметрами) в тестирование на демо с нового года. Могли бы ознакомить с общими результатами тестирования эксперта за 2 месяца, который имеет очень впечатляющие результаты на истории 'От идеи до реального счета.' ? Просто так из чистого любопытства спрашиваю, так как у меня тоже были советники, которые загонялись под кривую с не менее впечатляющими результатами, что ваш эксперт, но к сожалению на реале эффект был обратным. Вот и хотелось бы узнать что получилось в результате у вас? |
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий