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

 
Integer:

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

А как это технически можно реализовать для использования в тестере? Наверное нужен скрипт который формирует напрямую FXT файл? Вы могли бы написать такой скрипт? Было бы очень полезно для всех. И такой скрипт непременно нужно было бы поместить в CodeBase. Только разумеется он должен переставлять не просто готовые бары М1, а бары в виде приращений как говорилось выше. Тогда мы получим просто другую реализацию истории при тех же самых приращениях баров. И тестирование на этой истории может дать какую-то дополнительную оценку жизнеспособности эксперта согласно идее Бакеева.
 

Проще будет так: создать файл hst (на основе периодконвертера) с каким-нибудь экзотическим периодом в имени файла, потом скоприровать файл в другой терминал, переименовать файл в М1. Дальше стандартным периодконвертером сгенерировать старшие таймфремы. Или другой вариант - сразу сгенерировать все таймфремы в файлы csv (или только М1), потом импортировать их куда угодно. soland, ты сам сможешь это сделать (загружаешь бары в многомерный массив, перемешиваешь их (не трогая время), потом последовательно корректируешь цены, чтобы цена открытия нового была сдвинута на 1 пункт относительно цены закрытия передыдущего и выгружаешь данные в файл csv). Мне не интересно, у меня скептическое, если не сказать саркастическое отношение к идее Бакеева. Что систематически выигрывать в орлянку нельзя доказано. Допустим, берем и создаем синтетическую историю генератором случайных чисел - каждое новое случайное число дает нам тик вверх или тик вниз. Получается что мы будем пытаться применить теханализ к игре в орлянку. Идея Бакеева - переставляем бары случайным образом , и что получается - ведь случайным образом перставляем и получаем ряд аналогичный предыдущему варианту (тоесть созданный случайным образом). Смысла не вижу в этом. Конечно было бы здорово создать советника который бы после оптимизация по ряду созданному на основе случайных чисел какой-то период давал прибыль. Имею в виду, что оптимизировав его на каом-то участке он давал прибыль за следующим за ним участком. Это бы означало многое - что найден абсолютный грааль и остается его только регулярно оптимизировать. Но это невозможно, в силу того, что невозможность систематического выигрыша в орлянку доказана (Интересно кто доказал, и где найти эти выкладки).

 

Вашу идею технической реализации понял. Спасибо! Единственное, что наверное нужно сдвиг цены открытия следующего бара по отношению к закрытию предыдущего бара выбирать случайным образом из трёх чисел -1,0,1 пункт. А ещё лучше просто взять все имеющиеся на истории сдвиги баров и также смешать их случайным образом как и сами бары. Тогда наверное все условия формирования новой перемешанной истории будут соблюдены.

Также нужно будет не забыть отключить интернет от компа с перемешанной историей М1 так как терминал может без спроса закачать историю М1 с сервера брокера.

 

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

 
Integer:

Идея Бакеева - переставляем бары случайным образом , и что получается - ведь случайным образом перставляем и получаем ряд аналогичный предыдущему варианту (тоесть созданный случайным образом). Смысла не вижу в этом. Конечно было бы здорово создать советника который бы после оптимизация по ряду созданному на основе случайных чисел какой-то период давал прибыль. Имею в виду, что оптимизировав его на каом-то участке он давал прибыль за следующим за ним участком. Это бы означало многое - что найден абсолютный грааль и остается его только регулярно оптимизировать. Но это невозможно, в силу того, что невозможность систематического выигрыша в орлянку доказана (Интересно кто доказал, и где найти эти выкладки).


НЕТ! Бакеев предлагает не оптимизировать по "смешанному" ряду, а просто производить проверку на предмет того насколько результат полученный во время оптимизации по "правильной" истории является обусловленным чистой подгонкой. То есть каков вклад в полученных результатах оптимизации на "правильной" истории корреляционной составляющей, которая может быть обусловлена например большим трендом или флетом и "паттерной" составляющей - то есть теми особенностями или неоднородностями рынка (арбитражностью), которые теоретически существуют на самом деле (иначе заработок невозможен) и которые советник как раз и должен отслеживать. Вот как раз разрушая корреляционные связи (присутствующие тренды, флеты) посредством смешивания баров мы в итоге по идее Бакеева должны оставить "паттерные" составляющие, которые по его мнению должны вновь образоваться в соответствие с концепцией случайности рынка. При этом в новом смешанном ряду истории у нас будут образованы другие тренды, флеты и развороты движений. Думаю, что эта идея заслуживает как минимум проверки на практике прежде чем от неё можно будет отказаться. Тем более что вариант технической реализации Вы уже предложили.
Думаю, что история смешанного ряда будет выглядеть также естественно как и существующие "правильные" истории. И ничего не зная о том какой ряд будет показан человеку (ряд без указания дат и значений цены) человек никак не сможет догадаться, что вот это "настоящая" история, а вот это "смешанная".
Если советник с полученными во время оптимизации на правильной истории параметрами сможет показать положительный прирост депо на "смешанной" истории, а вернее среднее изменение баланса на нескольких реализациях "смешанной" истории окажется положительным при оптимальных параметрах, то это может дать повышенную (неслучайную) вероятность того, что на реале у вас будет примерно такое же развитие событий. То есть по мнению автора это может дать какие-то необходимые гарантии того, что данному советнику можно доверять реальные деньги, а не только демобаксы из тестера.
Если результат будет отрицательным во время такой проверки, то это будет говорить лишь о том, что данный советник просто был "грамотно" подогнан под историю, пускай даже под ОЧЕНЬ ДЛИТЕЛЬНУЮ (в несколько лет) (а генетические алгоритмы этому даже очень способствуют!)  и никакой работоспособной идеи в себе не содержит.
 
Integer:

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


Действительно 0 - это неправильно. Только -1 и 1 пункт сдвига. Хотя думаю, что вариант с простым смешиванием сдвигов имеющейся истории выглядит интереснее, так как у нас будут ещё и гэпы для полноты ощущений реального рынка так сказать :o).

Спасибо за подсказку по неотключению от интернета. Я раньше с этим просто не сталкивался.
 
solandr:
НЕТ! Бакеев предлагает не оптимизировать по "смешанному" ряду, а просто производить проверку на предмет того насколько результат полученный во время оптимизации по "правильной" истории является обусловленным чистой подгонкой. То есть каков вклад в полученных результатах оптимизации на "правильной" истории корреляционной составляющей, которая может быть обусловлена например большим трендом или флетом и "паттерной" составляющей - то есть теми особенностями или неоднородностями рынка (арбитражностью), которые теоретически существуют на самом деле (иначе заработок невозможен) и которые советник как раз и должен отслеживать. Вот как раз разрушая корреляционные связи (присутствующие тренды, флеты) посредством смешивания баров мы в итоге по идее Бакеева должны оставить "паттерные" составляющие, которые по его мнению должны вновь образоваться в соответствие с концепцией случайности рынка. При этом в новом смешанном ряду истории у нас будут образованы другие тренды, флеты и развороты движений. Думаю, что эта идея заслуживает как минимум проверки на практике прежде чем от неё можно будет отказаться. Тем более что вариант технической реализации Вы уже предложили.
Думаю, что история смешанного ряда будет выглядеть также естественно как и существующие "правильные" истории. И ничего не зная о том какой ряд будет показан человеку (ряд без указания дат и значений цены) человек никак не сможет догадаться, что вот это "настоящая" история, а вот это "смешанная".
Если советник с полученными во время оптимизации на правильной истории параметрами сможет показать положительный прирост депо на "смешанной" истории, а вернее среднее изменение баланса на нескольких реализациях "смешанной" истории окажется положительным при оптимальных параметрах, то это может дать повышенную (неслучайную) вероятность того, что на реале у вас будет примерно такое же развитие событий. То есть по мнению автора это может дать какие-то необходимые гарантии того, что данному советнику можно доверять реальные деньги, а не только демобаксы из тестера.
Если результат будет отрицательным во время такой проверки, то это будет говорить лишь о том, что данный советник просто был "грамотно" подогнан под историю, пускай даже под ОЧЕНЬ ДЛИТЕЛЬНУЮ (в несколько лет) (а генетические алгоритмы этому даже очень способствуют!) и никакой работоспособной идеи в себе не содержит.

solandr, Вы тоже чуть-чуть невнимательно прочли статью. Не про это говорит Бакеев. Вот смотрите, я сейчас постараюсь пересказать, а если я что не так говорю Вы меня поправите.
Суть вот в чем. Пусть у нас есть отрезок "правильной" истории и мы на нем прогнали процедуру оптимизации (оптимизируя параметры такой-то и такой-то в спектре таком-то и таком-то). Пусть оптимальные параметры показывают такую-то прибыльность. Нас интересует, каков вклад подгонки под историю в этом результате. Чтобы понять это мы берем историю "неправильную", перестановку тиков/баров, и повторяем процедуру оптимизации. Бакеев, как физик-ядерщик, прекрасно понимает что заработать на случайном блуждании никак нельзя (переставленный ценовой ряд не является СБ, но если вы вычтете разницу цен в начале и в конце то станет мартингалом). Поэтому любой положительный результат оптимизации на мартингале есть чистая подгонка. И по тому насколько результаты оптимизации мартингала хуже результатов оптимизации реального ряда мы понимаем степень подгонки во втором.
Пример. Пусть вы придумали алгоритм, оптимизировали на реальной истории получили прибыль 100% годовых макспросадку 50% (можно конечно оперировать и в каких-то других терминах). Далее вы запустили оптимизацию на псевдоистории и лучшие параметры показали 90% годовых при 60% просадки. Запустили на еще одной псевдоистории и получили 120% годовых при 56% просадки. Еще несколько раз прогнали разные псевдоистории - и поняли, что широта оптимизации дает даже на мартингале/сб результаты вроде тех что Вы получили на реальной истории, а значит алгоритм не заслуживает доверия.
Между делом у Бакеева есть пара примеров, как стратегии "плохой" так и "хорошей".
Integer, насчет доказательств - возьмите любую продвинутую книжку по теории вероятностей, ту же "Вероятность" Ширяева. Доказано строго все это в 50ых годах прошлого века Дж. Дубом.
 
Спасибо за поправку! Перечитаю статью ещё раз, но уже неторопясь. :o)
 

Да, было бы класно, если бы сделали перекрестную проверку, т.е. например, есть стратегия, которая требует подгоники параметоров, мы тренеруем её на некотором интервале исторических данных, а проверям её на интервале , следующим за интервалом тренировки. ...
Если взять участок оптимизации и постоянно проверять результаты вне этого участка, то можно в принципе добиться от системы выработки правил торговли, которые будут работать, некоторый интервал после периода теренировки системы, а также и чуть больше (доверительный интервал).
Такую возможность дают программы НейрошеллДейТрейдинг5.3 и ТрейдиингСолюшен. ..
ИМХО, очень удобно для проверки разных торговых ситем.

 
klot:

Да, было бы класно, если бы сделали перекрестную проверку, т.е. например, есть стратегия, которая требует подгоники параметоров, мы тренеруем её на некотором интервале исторических данных, а проверям её на интервале , следующим за интервалом тренировки. ...
Если взять участок оптимизации и постоянно проверять результаты вне этого участка, то можно в принципе добиться от системы выработки правил торговли, которые будут работать, некоторый интервал после периода теренировки системы, а также и чуть больше (доверительный интервал).
Такую возможность дают программы НейрошеллДейТрейдинг5.3 и ТрейдиингСолюшен. ..
ИМХО, очень удобно для проверки разных торговых ситем.

Где можно раздобыть это хозяйство? .. . и чем лечить
Причина обращения: