Как понять предел оптимизации параметров стратегии?
Как известно, каждая торговая стратегия зависит от набора чисел, т/е. параметров. Мы можем оптимизировать их и подбирать устраивающие нас комбинации. Известны рекомендации подбирать параметры так, чтобы небольшое их изменение не приводило к большому изменению результата торговли. Вопрос — до какой степени имеет смысл уточнять оптимальное значение параметра?
Допустим, мы тестируем систему со скользящей средней и увидели, что оптимальное значение — где-то около 60. Стоит ли находить значение с точностью до единиц?
С одной стороны, стоит, вблизи максимума меньше вероятность уйти на склон.
С другой стороны, оптимизация оч часто вообще бессмысленное занятие, т.к. она находит максимум именно отрезка истории, на кот проводится оптимизация, и этот максимум часто не имеет никакого отношения к будущей реальности.
Оптимизация начинается с раздельного тестирование входов и выходов.
Если делать это сразу, то это не оптимизация, а подгонка под конкретную ценовую кривую с ее аномалиями…
MoscowTrades, подгонка бывает параметрическая — когда путем многослойного последовательного тестирования выбираются «наилучшие» параметры, подгонка под кривую с конкретными артефактами.
другой тип опасной подгонки — логическая, когда автор тестирует сразу условия входа и выхода, при этом он не задумываясь «связывает» логику данных условий. Например вход если цена пересекла SMAn снизу вверх, а выход — если цена пересекла SMAn сверху вниз. В данном случае логическая подгонка это применение SMAn.
Другими словами, если невозможно провести раздельное тестирование условий системы, то это сразу проявляет наличие логической подгонки.
Проверку качества выходов системы можно сделать на случайных входах, или на равномерных входах (с равным промежутком, например входим раз в неделю во вторник в 12 часов).
Проверка качества входа преследует цель выявить систематическое отклонение последующего движения цены (после входа то есть) в требуемую сторону. Если такого систематического движения в среднем не наблюдается, то условие входа не выигрывает от случайного входа )
MoscowTrades, существует фактор, что цены падают примерно в 3 раза быстрее, чем растут, и волатильность при падении тоже обычно выше, чем волатильность при росте. Также оценка колебаний рынка показывает, что примерно 50% времени рынки в боковиках. Эти факторы явно свидетельствует, что реверсивные системы если и могут существовать, то лишь на узких участках графика, да и то, если в логике таких систем присутствует функция адаптации к движению, то есть не просто SMA, а например AMA Кауфмана или типо того…
Сергей Сергаев, спасибо! Но разница в скорости роста/падения по идее более характерна для акций и товаров, но не для валют например? А боковик — чем он плох для реверсивной контр-трендовой системы типа линий Боллингера? И кроме того, описанные вами закономерности видимо зависят от таймфрейма и полагаю более характерны для старших?
Если же с вами согласиться, то написанное по сути явно говорит о том что нельзя делать системы работающие в обе стороны (даже не реверсивные). Параметры лонга и шорта должны обязательно отличаться, так?
А в чем проблема, если даже найти после запятой пятое число самое оптимальное? Или за это засмеют в кругах оптимизаторов?
Бери лучшую оптимизацию и смотри не на красоту линии, а просадки и куски где она была не оптимальной. Именно на этих отрезках все черти сидят. Ну и остальное — стопы, проскальз, комисс проверь по намеренно ухудшенным условиям.
MoscowTrades, линию эквити можно так любую оптимизировать, что бы стоячком стояла. Но она сглаживается и от красоты картины упустишь куски линии где большой шум с просадками.
На общие критерии проверки не надо смотреть, т.к. это твои деньги, твои результаты будут. А именно разберись с участками где эквити хромала и из-за чего.
Хотя. Если для красоты. И так сойдет.
— Ребе, дайте совет, говорят скоро будет денежная реформа, что лучше
сделать — положить все деньги на счет или, наоборот, снять?
В это время раздается стук в дверь. Раввин говорит еврею — посиди,
подожди там, за ширмой.
После открывает дверь, заходит молодая девушка, и говорит :
— Ребе, дайте совет, я выхожу замуж, чтот мне одеть в первую брачную
ночь — длинную рубашку или короткую ?
Раввин отвечает :
— Знаешь, дочь моя, оденешь ли ты длинную рубашку или короткую — все равно тебя выепут, и, кстати, эй, там, за ширмой! тебя это тоже касается!
тестируем систему со скользящей средней и увидели, что оптимальное значение — где-то около 60. Стоит ли находить значение с точностью до единиц?
Если речь идет о временных диапазонах, то я бы искал значения, кратные физическим целым. То есть если таймфрейм минутный, то кратный 60, если 5-минутный, то кратный 12 и так далее.
В целом надо смотреть на природу «значения». В идеальном случае оптимизация может и не понадобиться ;)
Если система имеет реальный эдж, то она должна быть эффективна и устойчива в широком диапозоне оптимизируемых параметров. И да, системы на простых индикаторах типа СС в принципе не могут быть эффективными, поэтому пример не корректный.
MoscowTrades, тут важно понимать, что оптимальные параметры для торговой системы на будущее нельзя вычислить точно, можно только вычислить какую-то их приблизительную оценку, которая является случайной величиной с некоторым матожиданием и дисперсией. Если ты не знаешь, какая у твоей оценки параметра дисперсия, то ты вероятнее всего вообще не понимаешь чем занимаешься )
Вам нужно разделить вашу выборку на train и test. На первой выборке определяете определяете наилучшее значение параметра, при котором находится Макс/Мин оптимизируемой функции. Далее смещаетесь из точки с некоторым шагом и находите значения функции вблизи локального минимума. Определяете диапазон изменения параметра, при котором наблюдается минимум и как ведёт себя функция. Далее делаете тоже самое для test выборки. По зависимости функции от параметра на тесте определяете насколько устойчив и приемлим этот минимум на тесте. Если значения функции удовлетворительны, то самое простое, это взять среднее между значениям параметра на train и test, т.к.это учитывает дрифт модели со временем. Вариант сложнее, использовать характерные времена дрифта и динамически изменять параметры со временем. Желательно иметь несколько таких train и test для надёжности.
интересно, а есть тут ещё авторы, чьи публикации просто чохом выпиливаются с главной, вне зависимости от содержания? просто странно это, модерация по принципу личной неприязни…
«ТКС Холдинг» переименовали в «Т-Технологии».
Теперь торги акциями группы “Т-Технологии” будут проводиться на Московской бирже под новым тикером — “Т”.
smart-lab.ru/blog/1083124.php
— «ТКС Холдинг» переименовали в «Т-Технологии». Теперь торги акциями группы “Т-Технологии” будут проводиться на Московской бирже под новым тикером — “Т”.
—
— smart-lab.ru/blog/1083124.php
С другой стороны, оптимизация оч часто вообще бессмысленное занятие, т.к. она находит максимум именно отрезка истории, на кот проводится оптимизация, и этот максимум часто не имеет никакого отношения к будущей реальности.
Если делать это сразу, то это не оптимизация, а подгонка под конкретную ценовую кривую с ее аномалиями…
другой тип опасной подгонки — логическая, когда автор тестирует сразу условия входа и выхода, при этом он не задумываясь «связывает» логику данных условий. Например вход если цена пересекла SMAn снизу вверх, а выход — если цена пересекла SMAn сверху вниз. В данном случае логическая подгонка это применение SMAn.
Другими словами, если невозможно провести раздельное тестирование условий системы, то это сразу проявляет наличие логической подгонки.
Проверку качества выходов системы можно сделать на случайных входах, или на равномерных входах (с равным промежутком, например входим раз в неделю во вторник в 12 часов).
Проверка качества входа преследует цель выявить систематическое отклонение последующего движения цены (после входа то есть) в требуемую сторону. Если такого систематического движения в среднем не наблюдается, то условие входа не выигрывает от случайного входа )
Сергей Сергаев, спасибо, понятно.
Но вы так описали вопрос как будто бы в реверсивных системах есть что-то плохое. А мне всегда казалось что именно они наименее «подогнаны» под рынок.
Сергей Сергаев, спасибо! Но разница в скорости роста/падения по идее более характерна для акций и товаров, но не для валют например? А боковик — чем он плох для реверсивной контр-трендовой системы типа линий Боллингера? И кроме того, описанные вами закономерности видимо зависят от таймфрейма и полагаю более характерны для старших?
Если же с вами согласиться, то написанное по сути явно говорит о том что нельзя делать системы работающие в обе стороны (даже не реверсивные). Параметры лонга и шорта должны обязательно отличаться, так?
Да, для основных резервных валют колебания роста/падения более симметричны. Делать можно все что угодно, главное, чтобы было понимание логики и деньги приносило сообразно принимаемому риску )
А в чем проблема, если даже найти после запятой пятое число самое оптимальное? Или за это засмеют в кругах оптимизаторов?
Бери лучшую оптимизацию и смотри не на красоту линии, а просадки и куски где она была не оптимальной. Именно на этих отрезках все черти сидят. Ну и остальное — стопы, проскальз, комисс проверь по намеренно ухудшенным условиям.
На общие критерии проверки не надо смотреть, т.к. это твои деньги, твои результаты будут. А именно разберись с участками где эквити хромала и из-за чего.
Хотя. Если для красоты. И так сойдет.
— Ребе, дайте совет, говорят скоро будет денежная реформа, что лучше
сделать — положить все деньги на счет или, наоборот, снять?
В это время раздается стук в дверь. Раввин говорит еврею — посиди,
подожди там, за ширмой.
После открывает дверь, заходит молодая девушка, и говорит :
— Ребе, дайте совет, я выхожу замуж, чтот мне одеть в первую брачную
ночь — длинную рубашку или короткую ?
Раввин отвечает :
— Знаешь, дочь моя, оденешь ли ты длинную рубашку или короткую — все равно тебя выепут, и, кстати, эй, там, за ширмой! тебя это тоже касается!
Если речь идет о временных диапазонах, то я бы искал значения, кратные физическим целым. То есть если таймфрейм минутный, то кратный 60, если 5-минутный, то кратный 12 и так далее.
В целом надо смотреть на природу «значения». В идеальном случае оптимизация может и не понадобиться ;)
Ну у вас там в любом случае будет какое-то число, почему именно 60 а не 57, например?