Блог им. MoscowTrades

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

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

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

22 комментария
Стоит ли находить значение с точностью до единиц?
С одной стороны, стоит, вблизи максимума меньше вероятность уйти на склон.
С другой стороны, оптимизация оч часто вообще бессмысленное занятие, т.к. она находит максимум именно отрезка истории, на кот проводится оптимизация, и этот максимум часто не имеет никакого отношения к будущей реальности.
avatar
Оптимизация начинается с раздельного тестирование входов и выходов.
Если делать это сразу, то это не оптимизация, а подгонка под конкретную ценовую кривую с ее аномалиями…
avatar
Сергей Сергаев, а что такое раздельное тестирование? Имеется ввиду случайные входы плюс выходы по стратегии и наоборот?
avatar
MoscowTrades, подгонка бывает параметрическая — когда путем многослойного последовательного тестирования выбираются «наилучшие» параметры, подгонка под кривую с конкретными артефактами.
другой тип опасной подгонки — логическая, когда автор тестирует сразу условия входа и выхода, при этом он не задумываясь «связывает» логику данных условий. Например вход если цена пересекла SMAn снизу вверх, а выход — если цена пересекла SMAn сверху вниз. В данном случае логическая подгонка это применение SMAn.
Другими словами, если невозможно провести раздельное тестирование условий системы, то это сразу проявляет наличие логической подгонки.
Проверку качества выходов системы можно сделать на случайных входах, или на равномерных входах (с равным промежутком, например входим раз в неделю во вторник в 12 часов). 
Проверка качества входа преследует цель выявить систематическое отклонение последующего движения цены (после входа то есть) в требуемую сторону. Если такого систематического движения в среднем не наблюдается, то условие входа не выигрывает от случайного входа )
avatar

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

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

avatar
MoscowTrades, существует фактор, что цены падают примерно в 3 раза быстрее, чем растут, и волатильность при падении тоже обычно выше, чем волатильность при росте. Также оценка колебаний рынка показывает, что примерно 50% времени рынки в боковиках. Эти факторы явно свидетельствует, что реверсивные системы если и могут существовать, то лишь на узких участках графика, да и то, если в логике таких систем присутствует функция адаптации к движению, то есть не просто SMA, а например AMA Кауфмана или типо того…
avatar

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

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

 

avatar
MoscowTrades, я не настаиваю, я лишь излагаю плоды собственного опыта. 
Да, для основных резервных валют колебания роста/падения более симметричны.
нельзя делать системы работающие в обе стороны (даже не реверсивные)
Делать можно все что угодно, главное, чтобы было понимание логики и деньги приносило сообразно принимаемому риску )
avatar
Сергей Сергаев, я ни в коем случае не оспариваю вашу точку зрения — я просто пытаюсь через свои вопросы лучше ее понять. 
avatar
Стоит ли находить значение с точностью до единиц?

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

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


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