Блог им. MoscowTrades

Как понять предел оптимизации параметров стратегии?

Как известно, каждая торговая стратегия зависит от набора чисел, т/е. параметров. Мы можем оптимизировать их и подбирать устраивающие нас комбинации. Известны рекомендации подбирать параметры так, чтобы небольшое их изменение не приводило к большому изменению результата торговли. Вопрос — до какой степени имеет смысл уточнять оптимальное значение параметра?

Допустим, мы тестируем систему со скользящей средней и увидели, что оптимальное значение — где-то около 60. Стоит ли находить значение с точностью до единиц?

22 комментария
Стоит ли находить значение с точностью до единиц?
С одной стороны, стоит, вблизи максимума меньше вероятность уйти на склон.
С другой стороны, оптимизация оч часто вообще бессмысленное занятие, т.к. она находит максимум именно отрезка истории, на кот проводится оптимизация, и этот максимум часто не имеет никакого отношения к будущей реальности.
avatar
Сергей Сергаев, а что такое раздельное тестирование? Имеется ввиду случайные входы плюс выходы по стратегии и наоборот?
avatar
Стоит ли находить значение с точностью до единиц?

А в чем проблема, если даже найти после запятой пятое число самое оптимальное? Или за это засмеют в кругах оптимизаторов?

Бери лучшую оптимизацию и смотри не на красоту линии, а просадки и куски где она была не оптимальной. Именно на этих отрезках все черти сидят. Ну и остальное — стопы, проскальз, комисс проверь по намеренно  ухудшенным условиям.
avatar
Rationalist, не понял, на красоту (те линейность) линии эквити не смотреть? Мне казалось это один из лучших критериев проверки.


avatar
MoscowTrades, линию эквити можно так любую оптимизировать, что бы стоячком стояла. Но она сглаживается и от красоты картины упустишь куски линии где большой шум с просадками. 
На общие критерии проверки не надо смотреть, т.к. это твои деньги, твои результаты будут. А именно разберись с участками где эквити хромала и из-за чего. 
Хотя. Если для красоты. И так сойдет.
avatar
Rationalist, так «разобраться с результатами где эквити хромала» и означает выровнять эквити, или я что-то не так понял?
avatar

Сергей Сергаев, спасибо, понятно.

Но вы так описали вопрос как будто бы в реверсивных системах есть что-то плохое. А мне всегда казалось что именно они наименее «подогнаны» под рынок. 

avatar

Сергей Сергаев, спасибо! Но разница в скорости роста/падения по идее более характерна для акций и товаров, но не для валют например? А боковик — чем он плох для реверсивной контр-трендовой системы типа линий Боллингера? И кроме того, описанные вами закономерности видимо зависят от таймфрейма и полагаю более характерны для старших?

Если же с вами согласиться, то написанное по сути явно говорит о том что нельзя делать системы работающие в обе стороны (даже не реверсивные). Параметры лонга и шорта должны обязательно отличаться, так?

 

avatar
Сергей Сергаев, я ни в коем случае не оспариваю вашу точку зрения — я просто пытаюсь через свои вопросы лучше ее понять. 
avatar
тестируем систему со скользящей средней и увидели, что оптимальное значение — где-то около 60. Стоит ли находить значение с точностью до единиц?

Если речь идет о временных диапазонах, то я бы искал значения, кратные физическим целым. То есть если таймфрейм минутный, то кратный 60, если 5-минутный, то кратный 12 и так далее.
В целом надо смотреть на природу «значения». В идеальном случае оптимизация может и не понадобиться ;)
Если система имеет реальный эдж, то она должна быть эффективна и устойчива в широком диапозоне оптимизируемых параметров. И да, системы на простых индикаторах типа СС в принципе не могут быть эффективными, поэтому пример не корректный.
avatar
Reznor, а почему системы на простых индикаторах не эффективны? Есть какое-то фундаментальное объяснение, или это личный опыт?
avatar
MoscowTrades, поток входных данных не дифференцируемый.
avatar
Стоит ли находить значение с точностью до единиц?

Ну у вас там в любом случае будет какое-то число, почему именно 60 а не 57, например?
avatar
MadQuant, ну вот в том и вопрос — надо ли уточнять до 57, или достаточно примерно 60.
avatar
MoscowTrades, тут важно понимать, что оптимальные параметры для торговой системы на будущее нельзя вычислить точно, можно только вычислить какую-то их приблизительную оценку, которая является случайной величиной с некоторым матожиданием и дисперсией. Если ты не знаешь, какая у твоей оценки параметра дисперсия, то ты вероятнее всего вообще не понимаешь чем занимаешься )
Вам нужно разделить вашу выборку на train и test. На первой выборке определяете определяете наилучшее значение параметра, при котором находится Макс/Мин оптимизируемой функции. Далее смещаетесь из точки с некоторым шагом и находите значения функции вблизи локального минимума. Определяете диапазон изменения параметра, при котором наблюдается минимум и как ведёт себя функция. Далее делаете тоже самое для test выборки. По зависимости функции от параметра на тесте определяете насколько устойчив и приемлим этот минимум на тесте. Если значения функции удовлетворительны, то самое простое, это взять среднее между значениям параметра на train и test, т.к.это учитывает дрифт модели со временем. Вариант сложнее, использовать характерные времена дрифта и динамически изменять параметры со временем. Желательно иметь несколько таких train и test для надёжности.
avatar

теги блога MoscowTrades

....все тэги



UPDONW
Новый дизайн