В данной статье рассказано о нескольких классических торговых стратегиях и приведено несколько примеров их модификаций. Надеюсь, что данный материал поможет читателю собрать и придумать свою торговую систему.
Стратегия Mean-reversion и ее модификация
Одним из видов популярных торговых стратегий является Mean-reversion. Суть стратегии проста, если торговый инструмент находится в боковом тренде, то образуется некоторый канал цены, в котором, котировки двигаются в районе некоторого среднего значения. Часто ширина канала имеет примерно одинаковый размер, и тогда стратегия заключается в том, чтобы покупать (открывать длинную позицию) когда цена актива отражается от нижней границы канала, и продавать (открывать короткую позицию), когда цена актива приближается к верхней границе актива. Средняя линия строится по выбранному техническому индикатору усреднения, а границы канала можно построить используя соответственно канальные индикаторы, такие как Bollinger Bands, min-max range, или любой другой.
Сложность только в том, что такое поведение актива, особенно в криптовалюте, не часто. И здесь есть несколько выходов. Первый - это анализировать различные токены на соблюдение свойства нахождения в устойчивом канале. Второй метод - это создать такой синтетический инструмент самому. Самый простой способ создать новый синтетический торговый инструмент - это просто взять 2 текущих финансовых инструмента и смешать в один. Например, построить график нового инструмента, где 50% это BTC, а 50% это ETH.
Если представление такой концепции вдруг вызывает сложность, то легче рассмотреть все на примере: Есть некоторый управляющий капиталом трейдер и у него в портфеле активов на 1000$. И этот трейдер купил на 500$ BTC и на 500$ ETH. А вы смотрите на график его доходности, и в нужный момент можете покупать такие же позиции как у этого управляющего трейдера или закрывать эти позиции.
Но внимательный читатель скорей всего уже подумал, хорошо, взяли мы 50% BTC на 50% ETH, и как мы получим новый синтетический инструмент, который будет в канале, если оба инструмента, что BTC, что ETH - растут? И это абсолютно верно, но верно и еще одно наблюдение, что скорость роста BTС и ETH тоже похожа. Зная это, мы создадим синтетический инструмент, в котором 50% BTС - длинная позиция (купили), а 50% ETH - короткая позиция (продали). Для примера рассмотрим график поведения такого портфеля:
Если в первый день BTС вырос на +3%, ETH +2.5% то наш портфель вырастет на 0,25% = 50% х 3% - 50% х 2,5%. Если второй день BTС +1%, ETH +2% то портфель упадет на -0,5% = 50% х 1% - 50% х 2%.
Из этого примера видим, что несмотря на рост 2 активов, наш синтетических актив как рос, так и падал в цене.
Выбор активов для парной торговли
Правильная пропорция первого и второго актива подбирается на основе, например, соотношения моментов движения обоих активов. А такая торговля называется парной торговлей, так как используются 2 актива одновременно. Но существует большое количество различных токенов, и еще больше парных комбинаций. Как же подобрать подходящие? Для этого нам понадобится измерить корреляцию графиков двух активов и коинтеграцию:
Шаг 1. Находим корреляцию всех пар токенов.
Шаг 2. Выбираем пары токенов, чтобы корреляция была высокой, но не слишком. Проблема при слишком высокой корреляции в том, что активы почти повторяют движение друг друга, и получившийся канал будет очень тонкий, торговля в нем не покроет транзакционные издержки. Все зависит от конкретной ситуации, но, к примеру, можно выбрать активы с корреляцией от 0,8 до 0,95.
Шаг 3. Для отсеянных пар рассчитываем уровень коинтеграции, и опять выбираем пары с высоким уровнем.
Шаг 4. Из прошлых вычислений получаем соотношение коэффициентов пары, делаем дополнительные тесты на проверку устойчивости пары и стабильности получившегося канала созданного нами синтетического инструмента (многие трейдеры в ручном режиме проверяют итоговую выборку, так сказать, на глаз).
Шаг 5. Проверяем, есть ли среди образованных стабильных пар такие, в которых цена подошла к границе канала и можно осуществить вход в позицию синтетического инструмента. Если такие есть, то получаем торговый сигнал(ы).
Шаг 6. Повторить всю процедуру с шага 1, например, через один день.
В данном примере мы рассмотрели, как составить синтетический инструмент, с требуемыми свойствами, подходящими для торговли в канале из 2-х инструментов. Но в реальности мы не ограничены 2-мя инструментами, а можем использовать и три, четыре, семь, … любое число составляющих. Часто от этого наш синтетический инструмент становится даже более стабильным, т.к. присутствует дополнительный уровень диверсификации. Для примера, берем 2 найденные пары, и объединяем их вместе в один синтетический инструмент из 4-х составляющих. Или, например, строим синтетических инструмент, в котором один инструмент в длинной позиции, и два инструмента в короткой позиции.
А что, если…?
Мы рассмотрели базовый подход для составления синтетических инструментов, которые можно значительно улучшить на каждом шаге. Но, предлагаю задуматься над следующим вопросом. Что, если представить реальный инструмент, как уже сформированный кем-то синтетический? Например, что, если представить, что BTC/USD - это синтетический инструмент, состоящий из A, B, C, D, и некоторого торгового шума. Что, если таких эфемерных компонентов конечное количество, они достаточно ортогональны и присутствуют в составе всех наших цифровых активов, хотя, доля некоторых компонентов может быть нулевая. Тогда, например, и ETH/USD состоит из A, B, C, D, и некоторого шума.
Теперь представим, что происходит с нашим синтетическим инструментом, составленным из двух цифровых активов, если каждый цифровой актив в свою очередь состоит из набора эфемерных активов, например A, B, C, D. Когда мы берем один из цифровых активов в длинную позицию, а второй в короткую, по сути дела, мы вычитаем цену. Теперь представим, что допустим:
BTC/USD = 0.2 x A + 0.4 x B + 1.3 x C + 0.01 x D + err.
А актив:
ETH/USD = 0.21 x A + 0.39 x B + 2.9 x C + 0.05 x D + err.
Тогда наш синтетический инструмент:
BTCUSD – ETHUSD = A x (0.2 – 0.21) + B x (0.4 – 0.39) + C x (1.3 – 2.9) + D x (0.01 – 0.05) + err. = -0,01 x A + 0.01 x B – 1.6 x C -0.04 x D + err.
Как видим, практически осталась одна компонента C, и эта эфемерная компонента и движется в канале. Фактически, путем создания нашего синтетического инструмента, мы выделили компоненту C и ею же и торгуем.
Как нам это может пригодится на практике? Если мы представим наши цифровые активы, как некоторую комбинацию эфемерных составляющих, то это позволит нам составлять более устойчивые синтетические инструменты, с требуемыми нам свойствами, и соответственно, торговать ими. Помните, что в данном примере рассмотрены линейные зависимости для простоты, в реальности зависимости компонентов могут быть не линейны.
Выделение трендовой составляющей
Есть и другой способ составления синтетических инструментов. А именно выделение трендовой составляющей. И для этой цели, чем больше цифровых активов находится в нашем синтетическом портфеле, тем он более стабилен (но, без фанатизма, везде надо знать норму). Стоит учесть, что активы могут быть как в длинной позиции (купленные), так и в короткой (проданные). Один из методов составления таких портфелей - это маркет-нейтральная стратегия. Здесь суть в том, что суммарная стоимость длинных (купленных) равна суммарной стоимости коротких (проданных) позиций. При этом мы выделяем трендовую составляющую и в идеале можем получить такой портфель, что будет расти вне зависимости от того, что большинство крипто активов падают или растут в цене. То есть мы нейтральны по отношению к рынку, и как бы движемся в своей плоскости.
Давайте рассмотрим на простом базовом примере такую стратегию. Попробуем выделить некоторое свойство цифрового актива, а затем купим его. Стоит учесть, что не все такие портфели стоит покупать, часто торгуются более сложные портфели из зависимых свойств или факторов.
Допустим у нас есть сотня цифровых инструментов. Мы предполагаем, что инструменты, которые активно росли последний месяц будут расти и дальше. Для этого мы оцениваем рост в процентах всех наших активов за месяц. И, допустим, выбираем 20 инструментов с наибольшим ростом и открываем длинную позицию, а на 20 инструментов с наименьшим ростом открываем короткую позицию. Затем определяем дату следующей реоптимизации портфеля, например, через 2 недели. В данном случае мы просто инвестировали в каждый актив равную сумму, 1/40 нашего капитала. И нашим фактором был рост за последние 30 дней.
Однако, фактором вполне может быть что угодно. Приведу несколько примеров:
- волатильность за 2 недели,
- цена актива в долларах,
- стоимость всех токенов на рынке,
- сложность майнинга,
- отношение объема торговли токенов за неделю к цене токена,
- алфавитный порядок тикера токена,
- дата старта торговли инструмента,
- значение технического индикатора MACD и т.д.
Стоит отметить, что можно использовать несколько факторов для формирования портфеля. Для примера, сначала сортируем список наших инструментов по первому фактору, и выбираем 30% инструментов, а затем по второму фактору. Также размер инструмента в портфеле можно поставить согласно нормализации по какому-либо фактору, или же как можно более диверсифицироваться в остаточных факторах.
Распространенная ошибка многих «новичков» - это идея о линейности влияния факторов на актив. В реальности часто зависимость не линейная, и часто зависит от других факторов, что может несколько усложнить вычисления, но повысить прибыльность торговли. Также всегда стоит проводить проверку переоптимизацию и на ложные результаты.
Как и в предыдущей стратегии, здесь описан базовый подход для интуитивного понимания, который можно значительно улучшить с помощью дополнительных мер, и более продвинутых методов расчета.
Комбинированные методы торговли
Стоит также отметить, что можно комбинировать несколько методов и получать интересные результаты. Допустим, что имеется внутридневная стратегия, основанная на техническом анализе. К примеру, стратегия не подразумевает нахождения в сделке более двух дней. Однако, если эту стратегию объединить с портфельным подходом, результаты могут быть сильно улучшены.
Для примера у нас есть сотня торговых инструментов. Из них на основе определенного фактора на следующие 2 недели выбираем 15 инструментов для длинных позиций (на покупку), и 15 инструментов для коротких позиций (на продажу). Затем запускаем основную стратегию на выбранных инструментах, но открываем сделки только согласно направлению из портфельного выбора. Тем самым мы фильтруем сигналы в сторону, где у нас меньше шансов на успех, повышая частоту прибыльных сделок. Здесь стоит учитывать, что нужно соблюдать баланс. Слишком жесткие фильтры, или слишком большое количество фильтров ведут к переоптимизации, что делает результаты торговли на исторических данных суперприбыльными, а в реальности убыточными. Если же выбрать недостаточную фильтрацию, то можно не реализовать весь потенциал.
Лучший способ понять, как это работает - это взять и поэкспериментировать с разными подходами и найти свой, что работает. Пробуйте комбинировать разные методы, или попробовать взглянуть на рынок с другой стороны. И, конечно, уделяйте значительное внимание системам контроля и управления рисками, не меньшее, чем составлению стратегии, генерирующей торговые сигналы. Так же при моделировании результатов учитывайте реалистичные транзакционные модели и комиссии. Тщательно тестируйте свои стратегии, диверсифицируйте, не полагайтесь на одну стратегию, а прорабатывайте несколько.
И всегда помните, что любая самая успешная стратегия перестанет работать, но неизвестно когда, может завтра, может через год, может через 10 лет, и узнаете вы об этом только спустя какое-то время. Нужно быть к этому готовым.