Форвард хуже бэктеста - насколько допустимо!? - страница 3

 
Paragormon:
А как назвать ситуацию, когда бэктест ХУЖЕ форарда?
Халявой )
 
Ну ладно, хоть горшком назови. Но где тут подгонка, если форвард-прогоняется по-новой? Бэк, кстати, может быть хуже, но оба могут быть в минусе, так что о халяве пока речи нет.
 
meat:

Мне кажется, эта цикличность является случайной величиной, и предсказывать её бесполезно.  У нас есть цепочка:   оптимизация - форвард - оптимизация - форвард - и т.д.  На каждом форварде у нас могут быть совершенно разные параметры системы. По сути можно даже сказать, что перед нами уже совсем другая система.  Т.е. мы постоянно перескакиваем с одной системы на другую. Есть ли смысл пытаться прогнозировать цикличность результатов это чехарды... Я не вижу смысла.  Каждое соотношение бэка и форварда будет получено при разных параметрах. Так о каком сравнении можно говорить...

А мне, вот почему-то кажется, что величина это не случайная и, похоже, придется собрать статистику, раз назвался груздем.-) Параметры системы, естественно, разные, но сама система по каким-то своим свойствам может сильнее-слабее совпадать с рыночными, а поскольу сам рынок цикличен, то и соотношение это будет колебаться. Если система состоит из набора индикаторов, то сочетания индикаторов и составляют попытку смоделировать закономерности, а  оптимизация всего лишь оперативная рулежка, не более... Т.е. если система попадает в смысл происходящего- соотношение должно быть лучше, даже если бэктест и форвард оба неприбыльные, если нет - то отдельная удача просто отражает хаотичность процесса.
 
Paragormon:
Прекрасно. Значит, фаз с меньшими номерами должно быть минимум две  Периодичность равна частоте форвардов. И сколько тогда надо замеров вообще для достоверности?

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

Paragormon:


Периодичность равна частоте форвардов.

С какого перепугу?  Периодичность должна соответствовать цикличности. Частоты - это гармоники внутри периода.

Paragormon:

И сколько тогда надо замеров вообще для достоверности?


Четко сформулируйте функцию удачи:

Удача = f(t), где t - время

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

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

 
Paragormon:

Во-первых мне не очень понятно погрешность чего нужно выявить, чтобы сравнить с ним отношение бэка и форварда.И с чего вдруг.  Собственно, об этом и топик. Погрешность -это стат расхождение,  ошибка как минимум двух стат рядов. Один ряд есть. А второй-это что? Погрешность нашего моделирования? Т.е. тест на тиках вы предлагаете сравнивать с тестом на минутках? Тест на минутках с реальной историей торгов?Но брокеры могут нас подвинуть, как правильно тут заметили, в обе стороны и это как раз то,что от советника не зависит и что мало имеет смысла обсуждать и тем более моделировать. Во-вторых суть оптимизации в том  и состоит, что мы берем часть истории и обучаем наш советник  на ее данных, просто особенность его обучения в том, что он, как правило, не имеет долговременной памяти (что, кстати, чаще хорошо, но иногда плохо). Т.е. ЛЮБОЙ результат-это проявление хоть какой-нибудь, но закономерности. И если мы не выявили превалирующей или нужной нам закономерности, то при чем тут погрешность? И вообще непонятно при чем тут подгонка. Форвард -он по определению для советника новость, это на бэке для него вечный день сурка. Т.е. обучающая подгонка параметров под историю, актуализация параметров и, если надо, изменение кода-это и есть суть оптимизации. Просто по той причине, что ничего достовернее истории у нас нет. Бэктест же-это проверка, насколько она прошла удачно. Просто у меня есть гипотеза, что степень этой удачности,  не хаотична, а циклична и, следовательно, это уже адаптивность и ее можно попытаться померить, вот и все. Надеялся, что сообщество накопило на эту тему данные. Похоже, не очень накопило.-(

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

Берется N бек тестов, находится процентное отклонение прибылей друг от друга. Если форвард попадает в это отклонение, то он верный, если он хуже, или лучше, значит он не заслуживает доверия. Это и будет погрешность оптимизации.

Второе, оптимизация это слепой перебор параметров. Если вы создаете торговую стратегию, вы знаете, на каких закономерностях она базируется. Если вы знаете закономерности и знаете ,что они меняются, то эти параметры и нужно измерять, для того ,чтобы подставлять в настройки. Возьмем примитивнийший пример. Есть RCI, знаем, что когда он оказывается выше 90,  цена разворачивается и на этом совершаем сделку. Но периодически приходится подгонять параметр, то 70, до 95. Так возьмем окно, за 1000 баров, найдем уровень, на котором максимальный процент разворотов и подставим его в настройках. Теперь мы точно знаем ,что с величиной 73, у нас будет 90% прибыльных сделок. Это хорошо, но нужно еще найти, а насколько это стабильно. Возьмем еще одно окно в 1000 баров и сравним, насколько процент верных разворотов стал меньше или больше. Так взяв несколько окон ,можно будет судить о том, насколько быстро меняется эта закономерность и можно ли ей доверять. Теперь можно принимать решение о том, насколько эта стратегия прибыльная. Совершенно не обязательно все оптимизировать и надеяться, что на форварде будет + Можно заранее просчитать, какой результат будет на форварде и с какой вероятностью. Но это примитивный пример, со сложными примерами работать интереснее.

 
Если же заранее не знать ,какие закономерности собираешься использовать, а накидывать индюки в надежде получить грааль, то это не работа, это игра в монетку.
 
223231:

Берется N бек тестов, находится процентное отклонение прибылей друг от друга. Если форвард попадает в это отклонение, то он верный, если он хуже, или лучше, значит он не заслуживает доверия. Это и будет погрешность оптимизации.

Это бред. Все вопрос вероятностей, нельзя отсеивать форвард только из-за того что он не подходит по параметрам.
 
TheXpert:
Это бред. Все вопрос вероятностей, нельзя отсеивать форвард только из-за того что он не подходит по параметрам.

Это не бред, а всего лишь рабочая гипотеза, которая требует проверки.

ИМХО адекватнее таким образом отсеивать не форварды, а результаты на обучающей выборке. В таком случае, переобучение и недообучение будет исключено. Хотя, конечно же мы рискуем выплеснуть и "младенца", но лучше перестраховаться, нежели опростоволоситься.

 
Paragormon:
А мне, вот почему-то кажется, что величина это не случайная и, похоже, придется собрать статистику, раз назвался груздем.-)

Действительно, со статистики и нужно было начинать. А то получается спор, основанный лишь на фантазиях.  Для начала обнаружьте эти закономерности (цикличность), тогда уже можно будет от чего-то плясать.  Но как по мне, это крайне маловероятно.

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

В общем прогнозирование форварда - это масло масляное.  Лучше работать с причинами, первоисточниками.  А форвард - это следствие.

 
Если форвард хуже бэктеста, то это означает что (1) стратегия была переобучена (переоптимизирована, подогнана и т.п.) под бэктест и (2) стратегия не уловила закономерности, т.е. обучай или переобучай эту стратегию на бэктесте результат на реале будет хреновым. Как разбивать историю на форвард и бэктест значения какое соотношение результатов большого значения тут иметь не будет. Можно разработать хорошую стратегию целиком на бэктесте, не имея форварда, и она будет работать на реале также хорошо как и на бэктесте. Нужно долго и упорно подумать, написать кучу неудачных советников, задуматься почему они неудачные (уж точно не потому что неправильное соотношение форварда к бэктесту выбрали). Большинство начинающижх трейдеров начинают с хорошо известных неработающих стратегий основанных на разного рода индикаторах oversold/overbought, пересечения машек и прочей херни. Соберите все эти индикаторы, обучите их на истории, пусть они вам предскажут например покупать в определённый момент времени. А теперь задумайтесь, почему цена должна пойти верх? Только потому что наши индикаторы подстроенные под историю так ей сказали? Цена не двигается индикаторами! Тогда ворпос: а чем она двигается? Вот когда помыслите и правильно ответите на этот вопрос, тогда и напишете советник успешный не только на бэктесте, но и на форварде, при любом его соотношении к бэктесту. А индикаторы сами напишите, свои, уникальные, для той закономерности которую обнаружили.