Блог им. elogunov |Наилучшая переворотная стратегия

В этой статье я расскажу об одном способе построения наилучшей возможной переворотной стратегии для линейного инструмента с учётом транзакционных издержек. Нет, это не «грааль», а система, заглядывающая в будущее.

Зачем это может быть нужно

1. Как ещё один бенчмарк для вашей переворотной стратегии в дополнение к buy-and-hold;
2. Чтобы оценить минимальный период, с которым стоит торговать momentum (или что вы там любите) стратегию, чтобы средняя продолжительность её сделки была не меньше, чем у наилучшей возможной стратегии;
3. В качестве способа разметки данных для какого-нибудь алгоритма машинного обучения (supervised learning);
4. Ваш вариант?

Наивный подход

Для начала рассмотрим такую последовательность из 10 цен:
95.52543, 96.45967, 104.40890, 98.76702, 98.37576,
99.04786, 102.59764, 101.40915, 111.34152, 110.65758

В отсутствие транзакционных издержек максимально возможная прибыль равна сумме модулей приращений цены, а оптимальная стратегия — переворачиваться в сторону следующего приращения цены. Этот случай мало интересен, поэтому будем предполагать, что транзакционные издержки всё же присутствуют.

Для простоты примем, что стратегия всегда входит в каком-то направлении на шаге 1 (два варианта — в лонг или в шорт) и закрывает все позиции на шаге 10 (определяется однозначно действиями на всех предыдущих шагах). На шагах со 2 по 9 стратегия может либо ничего не делать, либо перевернуться. Итого, кол-во возможных вариантов последовательностей трейдов равно 2^9. Пример всех возможных последовательностей трейдов для трёх цен: (+1, 0, -1); (+1 -2 +1); (-1, 0, +1); (-1, +2, -1).

Очевидно, перебор со сложностью O(2^N) займёт уйму времени даже для сотни точек (менее полугода данных на таймфрейме D1). Нужно придумать что-то лучше.


( Читать дальше )

....все тэги
2010-2020
UPDONW