Диверсификация увеличит прибыль

В этой статье я пытаюсь раскрыть две темы: улучшение результатов торговых стратегий при помощи метода диверсификации, а так же показываю способ как на TradingView можно протестировать торговую систему на нескольких парах одновременно (но это будет понятно/интересно только программистам).

Диверсификация улучшает всё

Очень часто о диверсификации думают/пишут так как будто бы диверсификация полезна только лишь для снижения риска. Что в корне не верно. Не забывайте что риск и прибыль идут рука об руку. Если вы можете снизить риск (просадку) вдвое, то вы так же сможете тогда увеличить кредитное плечо тоже в двое. Если вы это сделаете, то просадка останется настолько же глубокой, что была ранее, однако прибыль то увеличится. Таким образом, вы можете сами выбирать что улучшить: увеличить прибыль, или уменьшить просадку. А так же можно тонко настроить под свои цели вплоть до сотых долей процента. Вполне можно одновременно и прибыль увеличить и просадку уменьшить.

Мера риска

Этот нюанс большинство уже не понимают. Оценивать риск только размером максимальной просадки было бы неверно. Я так же добавил в скрипте отображение максимального срока просадки в количестве баров (свечей). Если выбран дневной таймфрейм, то количество баров просадки отображает максимальное количество дней, которое счет был "в минусе". При этом в минусе не относительного стартового депозита, а относительно максимальной суммы, которая была на счете. Более научно говоря, отображается срок абсолютной просадки в барах, а не срок относительной просадки. Так лучше, потому что деньги будут вложены в какую-то рандомную дату в будущем, а не в дату начала бэктеста. Думаю должно быть очевидно что чем меньше срок просадки, тем менее рискованная такая то стратегия. То есть мы измеряем риск не только размером просадки, но еще и сроком просадки, для большей надежности такой оценки.

Стратегия

Для примера я взял стратегию ценовых каналов Дончяна, так как она простая для понимания всеми и простая для кодинга. Стратегия была опубликована в далёком 1971-ом году и до сих пор отлично работает, в том числе и на криптовалютах. Тестировать будем с дефолтными настройками стратегии (дневной таймфрейм и период 20 баров - 20 дней), как и предлагал Ричард Дончян. Пары возмем топ 5 по капитализации криптовалют, исключая стейблкойны. Топ 5 на текущую дату. Биржа Binance.com. В настройках можно менять, кстати.

Скрипт

Так как оформить это всё в виде скрипта стратегии оказалось невозможно (и не нужно еще), то всё сделано как скрипт индикатора. Да, индикатор тоже может делать бэктест, и будем считать это недокументированной возможностью TradingView :) Да и вообще я там нагородил большой велосипед. А потому что иначе было никак это не сделать. Скрипт с открытым исходным кодом на пятой версии языка PineScript, и на этот раз приватный (т.е. по ссылке вы его увидите, но без ссылки его не получить). Я старался написать понятно, разбил код на блоки и добавил комментарии, но скажу что код всё равно получился довольно сложным для понимания. Да и велосипед делался тоже не простой.

Что показывает

Синяя линия индикатора показывает доходность стратегии с учётом выбранной юзером комиссии. Комиссию приходится делать отдельным параметром, так как, напомню, это скрипт индикатора, а не скрипт стратегии. Красная линия показывает размер максимальной просадки. Справа появляется надпись, она показывает конечную доходность, максимальную просадку, и максимальный срок просадки в барах (в днях если выбран дневной таймфрейм).

Тестируем по одной паре

Сначала протестируем только одну пару, что получится. Тестирую с дефолтными настройками скрипта (те что рекомендовал Ричард Дончян овер 50 лет назад), а именно: дневной таймфрейм, период 20 свечей (20 дней), комиссия за сделки 0,1%.

snapshot

Профиты:
- Binance.com SPOT BTC/USDT: +3.606%
- Binance.com SPOT ETH/USDT: +8.827%
- Binance.com SPOT BNB/USDT: +23.819%
- Binance.com SPOT XRP/USDT: +857%
- Binance.com SPOT ADA/USDT: +5.709%
Средний профит: +8.563%

Просадки:
- Binance.com SPOT BTC/USDT: -52%
- Binance.com SPOT ETH/USDT: -46%
- Binance.com SPOT BNB/USDT: -87%
- Binance.com SPOT XRP/USDT: -53%
- Binance.com SPOT ADA/USDT: -72%
Средняя просадка: -62%

Максимально длительная просадка, срок:
- Binance.com SPOT BTC/USDT: 391 день
- Binance.com SPOT ETH/USDT: 251 день
- Binance.com SPOT BNB/USDT: 654 дня
- Binance.com SPOT XRP/USDT: 518 дней
- Binance.com SPOT ADA/USDT: 395 дней
Средний срок: 442 дня

Итак, если торговать только BTC по этой стратегии, то рано или поздно обязательно улетишь в просадку на сроком более одного года (а у BNB даже почти 2 года вышло). Хотелось бы сократить этот срок, при этом уменьшить размер просадки, при этом увеличить доходность, и всё это не закатывая губы.

Тестируем по несколько пар

Одна пара это BTC/USDT, две пары это предыдущая пара и ETH/USDT. Три пары это предыдущие две и BNB/USDT. Ну и так далее. То есть тест пяти пар это тест пар из топ-5 по капитализации, надеюсь понятно. Наверху одна пара (только биток), самая нижняя - пять пар.

snapshot

Профиты:
- 1 пара: +3.606%
- 2 пары: +6.217%
- 3 пары: +12.084%
- 4 пары: +9.277%
- 5 пар: +8.564%

С двумя парами профит стал больше просто потому что эфир более волатильный. То что эфир больше подорожал чем биток за период теста тут не имеет значаения, так как в стратегии используется и шорт тоже. С тремя парами профит больше, потому что BNB еще более волатильный. Добавляя четвертую пару XRP профит снизился, так как монету мало трясло в этот период.

Удивительное совпадение, профит при торговле на пяти парах почти полностью совпал со средним профитом, и это именно совпадение. Итак, торгуя пять пар мы не уменьшим профит (что и ожидалось), получится +8.564% вместо среднего +8.563%. Напомню что профит можно увеличить за счет увелечения кредитного плеча, а для этого желательно сначала уменьшить просадку.

Просадки:
- 1 пара: -52%
- 2 пары: -35%
- 3 пары: -34%
- 4 пары: -29%
- 5 пар: -24%

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

Средняя просадка у пар была -62%, но за счет диверсификации мы её уменьшили до -24%. Ну как бы не плохо так :)

Сроки просадки:
- 1 пара: 391 день
- 2 пары: 197 дней
- 3 пары: 219 дней
- 4 пары: 220 дней
- 5 пар: 246 дней

В среднем срок просадки у этих пяти пар достигает 442 дня. Это если мы их торгуем по одной, без диверсификации. Если же мы будем торговать все пять пар параллельно по 20% капитала на каждую пару, то есть задействуем диверсификацию, то максимальный срок просадки сокращается уже до 246 дней. Что и следовало ожидать.

Снижение эффекта

К сожалению полезный эффект от диверсификации с ростом количества активов (или пар) - уменьшается. То есть каждый раз добавляя новую пару полезный эффект будет все меньше и меньше. То есть диверсификации на 100 пар одновременно лишь чуть-чуть лучше чем диверфикация на 50 пар и не стоит гимора.

Ну и выводы

Диверсификация позволяет уменьшить размер максимальной просадки и уменьшить максимальный срок абсолютной просадки, а значит гарантированно уменьшит меру риска. Это не является случайным совпадением, а вполне логично и объяснимо, ибо "не клади все яйца в одну корзину". При этом диверсификация не уменьшит прибыль. Но может увеличить.

Трейдер может как бы "конвертировать" понижение риска в профит. Если вдвое уменьшил просадку, то можешь вдвое увеличить плечо, а значит и прибыль. Сам выбираешь что тебе нужнее, уменьшить просадку или увеличить профит.
Technical Indicators

Aussi sur:

Publications connexes

Clause de non-responsabilité