<HELP> for explanation

Оптимизация торговой системы (стратегии).




Оптимизация торговой системы – привидение её к некоему состоянию, при котором она будет давать оптимальное соотношение входящих параметров с точки зрения максимизации некоей функции от целевых показателей, частный случай — максимизация значения одного простого параметра, ну там – доходность в % на капитал и т.д.

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

В общем, даже если система простейшая – она параметризована, так что вопрос выбора значений параметров – всегда актуален. При тестировании системы, при тестировании её с конкретным набором значений параметров, часто юзают outOfSample метод. Но это лишь контрольный метод, метод проверить, а не ошибся ли я, посчитав такую систему закономерностью, такой набор значений параметров и получаемый при нём результат закономерным, а не случайным. Но это не панацея, более того, результат OOS вполне себе может быть неплохим и в случае если система плохая – случайности же могут в обе стороны гулять). Так что упор надо делать на доказательство, а не на подтверждение. Ну в плане доказательств я пока в поиске)), рисёчу в этом направлении). Пока мне как минимум очевидно, что каждый отдельный параметр должен как-то коррелировать с результатом отлично от никак), ну или группа параметров.


Т.е. весь твой вопрос: «Давайте обсудим кто как оптимизируете роботов?» Если вопрос в этом то автор пиши по существу, меньше букв. У меня в одной из записи есть описание одного из способов. :)
avatar

Мышкин

Мышкин, Ну да, в этом весь вопрос)), ну я хотел тему обозначить, кто-нить что-нить написал бы, а я бы уже зацепился и понеслась)). Всё, нашёл упомянутый пост, прочтаю — что-нить конкретное напишу-задам). Тем более я сейчас тоже на ТСЛаб)
avatar

Replikant_mih

Оптимизация торговой системы – привидение

Согласен!
avatar

VladMih

VladMih, Мне исправление админ незааппрувил))
avatar

Replikant_mih

Хороший алгоритм должен показать нормальный результат безо всякой оптимизации. Если идея рабочая, то она будет работать именно с теми параметрами, которые тебя устраивают. Например: меня устраивает максимальный размер стопа 1%, а оптимизация говорит, что оптимальный — 3%. Конечно, при 3% уровень дохода и эквити становятся очень красивыми, но меня такая просадка не устраивает. Поэтому я включаю оптимизацию только после того, как меня устаивает результат алгоритма без оптимизации. Только после этого, по результатам оптимизации можно посмотреть, а нельзя ли что-то улучшить.

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

Ранжировать прогоны по красивости результатов не сложно, а вот оценить робастность прогона — в этом основная трабла. Взять красивый график, прогнать out of sample — этого мало. А вот взять красивый график, неким набором методов убедиться, что результат закономерен, затем out of samplom'ом удостовериться в корректности выводов — уже сложнее. Собственно сложность в этом самом наборе методов.

avatar

Replikant_mih

Антон Иванов, Согласен, хорошие алгоритмы чаще работают сразу, при настройках на глаз, чем нехорошие). Но, что значит параметры, которые устраивают? — в том плане, что касаемо рисков — ок, такие параметры могут устраивать или нет, но в плане остальных параметров меня может устраивать не устраивать результат стратегии, её робастность, но не сами параметры — какая мне разница, на сколько больший объём пройдёт в паттерне, относительно среднего объёма на предыдущем графике или на сколько вырастет или упадет волатильность и т.д. Многие боятся многопараметрических стратегий — типа они не работают, это зло и т.д., по мне так это зло при неправильном подходе к оптимизации. С многопараметрическими системами гораздо проще курвфитить)) тупо из за гораздо большего разнообразия и тупо числа прогонов. А если параметров мало — тут уже сложнее себя обмануть, но каких-то других причин считать многопараметрические системы хуже малопараметрических не вижу.
avatar

Replikant_mih

Replikant_mih, на мой взгляд проблема многопараметрических стратегий в том, что ими в итоге можно весь график описать и получить 99% выигрышных сделок на истории, после многократной оптимизации. Но это не будет показателем того, что удалось найти какую-то рабочую закономерность, это скорее показатель того, как тщательно мы рассмотрели и описали графики на истории. И это очень просто проверить: если алгоритм торгует одним инструментом, например Си или Ри, просто нужно поменять инструмент, например подставить фьючерс Газпрома или Русгидро. После этого уже будет точно видно, насколько алгоритм эффективен. На самом деле десяток одновременно работающих простых и несхожих алгоритмов дают гораздо более ровную эквити дохода, чем один супернавороченный алгоритм.

Антон Иванов, Можно описать график и получить 99% выигрышных сделок, только зачем?) Задача же не найти набор параметров, который на истории даёт шикарный результат, а: найти набор параметров, который даёт приемелемый результат и стабилен. Это другая задача. 

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

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

avatar

Replikant_mih

не надо заниматься КурваФитингом — это все, что я могу сказать про оптимизацию)
avatar

Laks

Plaksa, Ну да, логично), и снижать число параметров — один из способов это сделать.
avatar

Replikant_mih

Replikant_mih, я это и имел ввиду, а вообще я использую is and oos
avatar

Laks

Цель оптимизации, если ее и проводить, — не улучшить торговую систему, а отвергнуть ее, забраковать. Улучшения на реале с помощью оптимизации можно достичь только случайно.
avatar

Salamandra

Salamandra, я думаю, что как раз наоборот, цель оптимизации улучшить торговую систему:
1) максимально отказаться от ненужных параметров и дать свободу системе
2) использовать адаптвные параметры вместо абсолютных
3) ну и найти конечно зоны максимальной эффективности с последующими их стресс тестами

тот, кто говорит, что параметры и на глаз должны подходить отчасти прав, потому что если система логична, то ее поле положительных параметров очень широко, но в какую точку вы попали, никто не знает. 

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

luchsveta

Salamandra, Ммм, не то чтобы это прям цель, забраковать систему — это скорее ориентир, вектор. А цель — выяснить хороша ли система и сделать из системы хорошую систему.
avatar

Replikant_mih

luchsveta, 1,2 — не понял), с 3 согласен, с остальным текстом согласен).
avatar

Replikant_mih

Replikant_mih,
1) увеличить степени свободы системы
2) адаптивные параметры — те, котрые зависят от состояния текущего рынка. Абсолютные — это фиксированный стоп n пунктов, к примеру. Адаптивным в этом случае может быть например стоп по атр.
avatar

luchsveta

luchsveta, 

1. Я наоборот думал, что уменьшая число параметров — мы уменьшаем кол-во степеней свободы системы, разве нет?

1. Мне кажется заменить фиксированный стоп на стоп по Low n свечей — это то, что выходит за пределы привычного использования понятия «оптимизация» при разработке торговых систем.

avatar

Replikant_mih


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
Регистрация
UPDONW