портфель-роботов

Алгоритмические трейдеры, эксплуатирующие всего одну стратегию, даже если она приносит хорошую и устойчивую отдачу на торговый капитал, не могут чувствовать себя уверенно и надежно по причине постоянно происходящих изменений в стакане и на рынке. Единственное в чем можно быть уверенным, так это в том, что зарабатывать с каждым годом становится все сложнее, а рынок становится все более и более эффективным. Выедаются старые неэффективности и почти не создаются новые. Мгновенная ликвидность при этом может даже снижаться. Все это ведет к необходимости кропотливой работы по созданию новых стратегий и апгрейду уже существующих. Фактически, для многих высокочастотных трейдеров в 2016 и 2017м году настали тяжелые времена. На самом деле, они начались, конечно, раньше, но наибольший урон высокочастотным торговцам был нанесен именно в 2017м году. Все это происходило на фоне безудержного роста рынков и снижения волатильности, которая питает контрендовые стратегии. Зато в плюсе оказались низкочастотные трендследящие стратегии. В результате в 2017 году рынок покинули многие HFT-трейдеры, арбитражеры и маркет-мейкеры, которым перестало хватать доходов не только на собственное потребление, но и на содержание торговой инфраструктуры. Кто-то ушел в торговлю криптоактивами, кто-то сосредоточился целиком на операциях типа спонсируемого биржей маркет-мейкерства, кто-то переквалифицировался в управдомы.

Надо признаться, что такой штиль волатильности 2017 года негативно повлиял и на наши торговые процессы. После уплаты всех комиссионных и довольно больших трат на инфраструктуру, наши инвесторы заработали всего около 1.5% годовых в долларах. Это очень мало по сравнению с 35-45% в предыдущие два года. Это до обидного мало, с учетом того, что нам приходилось постоянно выслушивать нелестные сравнения нашей работы с ростом акций AAPL или FB или криптоактивами. Кончилось тем, что в декабре 2017 года мы закрыли всех внешних инвесторов и с января 2018 года начали торговать только на свои собственные деньги. Эта ситуация преподала нам три простых урока.

Первый. Чем лучше у тебя идет торговля и чем ликвиднее твои стратегии, тем с большей охотой и тем быстрее уходят инвесторы, если доходность их перестает устраивать. Думаю, что если бы у нас была просадка в 10-15%, то все спокойно бы ждали ее окончания.

Второй. Планируя такой бизнес как наш, нельзя целиком и полностью уповать на инвесторов и клиентов. Skin in the game должна быть достаточной для того, чтобы обеспечивать бизнес потоком доходов даже в отсутствие всяческих инвесторов. С этим всё у нас оказалось в порядке.

И третий. Действующих стратегий много не бывает. Их всегда должно быть больше, чем может вместить ваш торговый счет. Всегда должна быть наготове новая стратегия, на случай если одна или несколько имеющихся откажутся дальше приносить прибыль. Вообще, с учетом высоко конкурентного и плотного рынка, где алгоритмический оборот превышает 50%, совершенно недостаточно, чтобы на счете работала только одна стратегия. Нужно чтобы на одних и тех же деньгах одновременно работало две, а лучше три стратегии, не мешающие друг другу и синергетически усиливающие друг друга. Такая ситуация немыслима для классического инвестирования: если ты прикупил на весь счет акций, то облигациям в портфеле места уже не досталось. Но вполне допустима для портфеля алгоритмических стратегий.

Вообще, управляющие активами, использующие одну пусть даже и хорошую алгоритмическую стратегию, напоминают мне портфельных управляющих, которые специализируются всего на одной бумаге. Пусть даже и очень хорошей бумаге. Вы бы доверили своим средства управляющему, который инвестирует только в GOOGL? Или только в AMZN? Или только в NFLX? А почему? Хорошие ведь бумаги? Не хотите. А в чем разница между инвестированием в одну единственную бумагу и инвестированием в одну единственную алго-стратегию? Фактически большой разницы нет. И если можно строить инвестиционный портфель, включающий в себя несколько бумаг, то почему нельзя строить инвестиционный портфель, содержащий несколько различных алгоритмических стратегий? Определенно, так делать можно и нужно.

Рассмотрим подход построения портфеля алгоритмических стратегий с точки зрения классического портфельного инвестирования, а именно портфельной теории Марковица. Напомню, что Гарри Марковиц еще в 50х годах прошлого века сформулировал принципы отбора акций и их весов в т.н. оптимальный портфель, т.е. портфель который строится так, чтобы соотношение доходность/риск соответствовало тому или иному оптимизационному критерию. Например, требуется найти портфель с минимальным риском и доходностью не меньше определенной, и т.п. Решение этой задачи сводится к расчету и оптимизации двух величин:

Ожидаемой доходности портфеля Alpha, равной сумме ожидаемых доходностей бумаг Alpha(i), взвешенных по удельным объемам позиций v(i):

Alpha = Sum (Alpha(i)*v(i))

И ожидаемой волатильности портфеля Sigma, равной корню квадратному из ожидаемой дисперсии портфеля D:

Sigma = Sqrt(D), где D = Sum (Sum(v(i)*v(j)*cov(i,j)) ),

по всем i, j

Здесь cov(i,j) – ковариация доходностей i-ой и j-ой бумаги.

Задача – правильно подобрать веса v(i) позиций (обещал обойтись без формул, но не вышло).

Совершенно аналогичный подход может быть применен и при построении портфеля алгоритмических стратегий. Вместо акции используется другой объект — уникальная стратегия. Вместо цены акции используется PnL единичной уникальной стратегии. Все остальное – то же самое. Математический аппарат давно готов и ждет, чтобы его применили. Давайте применим.

Пусть у нас есть две стратегии с ожидаемыми доходностями Alpha1 >0 и Alpha2 >0, а также с волатильностями Sigma1 и Sigma2, а также с коэффициентом корреляции доходностей равным corr(1,2). Аллоцируем на стратегию v(1) средств на первую стратегию и v(2) – на вторую. v(1)+v(2)=1. Тогда получившийся портфель двух стратегий будет иметь ожидаемую доходность

Alpha = Alpha1*v(1) + Alpha2*v(2)

А ожидаемая дисперсия (квадрат ожидаемой волатильности) будет

Sigma^2 = (Sigma1*v1)^2 + (Sigma2*v2)^2 + 2*v1*v2*Sigma1*Sigma2*corr(1,2)

Рассмотрим далее три случая.

1) полностью коррелированные стратегии corr(1,2) =1. Это самый неинтересный случай, поскольку фактически мы имеем дело с одной и той же стратегией. И ничего неожиданного в этом случае не получаем, поскольку волатильность портфеля равна сумме взвешенных волатильностей:

Sigma = (Sigma1*v1 + Sigma2*v2)

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

2) Стратегии с антикорреляцией, т.е. corr(1,2) = -1. Это тоже не очень интересный случай, потому что две стратегии обе дающие положительную доходность вряд ли будут антикоррелированы но минус единицы. Для этого нужно чтобы одна из них давала убыток там, где другая дает прибыль. Если мы допускаем существование двух таких стратегий, то волатильность портфеля будет даваться модулем взвешенной разности двух волатильностей:

Sigma = |Sigma1*v1 — Sigma2*v2|,

а Альфа по прежнему равна взвешенной сумме Альф. Тогда можно было бы подобрать веса v1 и v2 так, чтобы Sigma была наименьшей, и даже равной нулю. В свою очередь Альфа любой из стратегий может быть сделана сильно больше безрисковой ставки с помощью плеча. В результате получим безрисковый портфель (с нулевой волатильностью) с ожидаемой доходностью больше безрисковой ставки. Это противоречит и здравому смыслу и современной финансовой науке. Т.е. мы только что показали, что не может существовать двух полностью антикоррелированных стратегий с положительной ожидаемой доходностью.

3) Стратегии с отсутствием корреляции corr(1,2) = 0. Это наиболее интересный случай, потому что мы стараемся строить стратегии статистически независимые друг от друга. В этом случае

Sigma = Sqrt( (Sigma1*v1)^2 + (Sigma2*v2)^2).

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

Из последнего случая следует нестрогое правило, что Шарп портфеля из двух статистически независимых стратегий больше, чем Шарп каждой из стратегий по отдельности.

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

Таким образом, чем больше в вашем портфеле независимых (ключевое слово – независимых) стратегий, тем лучше у вас Шарп при разумной доходности. Например, если у вас N = 7000, то ваш Шарп обязан быть лучше примерно в 80 раз, чем Шарп характерной вашей стратегии.

Впрочем, реально построить портфель с таким количеством некоррелированных стратегий тяжело, практически невозможно. А вот запустить примерно 50-70 различных стратегий по двум десяткам инструментов уже легче. И тогда, даже если Шарп каждой из них находится на уровне 0.75, итоговый показатель портфеля может достигать 6 и 8. Это совершенно блестящий результат к которому и следует стремиться алгоритмическому управляющему.

Разумеется, если стратегии имеют высокую корреляцию, то их можно клонированием и небольшой модификацией наплодить и 100,000 и даже больше. Столько, сколько позволят компьютерные мощности. Однако ни Шарпу, ни доходности всего портфеля от этого ни холодно, ни жарко.

Основной вывод из вышесказанного я здесь сделаю такой: при принятии решения об аллокации средств по различным стратегиям кроме Шарпа и доходности необходимо учитывать корреляции между PnL и подбирать стратегии в портфель так, чтобы они были по возможности как можно менее коррелированы. Это позволит понизить волатильность портфеля, за счет снижения волатильности можно увеличивать торговое плечо, т.е. брать заемные средства. А это в свою очередь позволяет увеличить общую доходность портфеля алгоритмических стратегий.
Проверено.

Автор: Vladimir Tvardovsky

 
 
 


Вы уже сейчас можете начать изучать Видео курс- роботы в TSLab и научиться самому делать любых роботов!
 
Можно записаться на следующий поток ОнЛайн курса «Создание роботов в TSLab без программирования», информацию по которому можно посмотреть тут->
 
Также можете научиться программировать роботов на нашем Видео курсе «Роботы для QUIK на языке Lua»
 
Если же вам не хочется тратить время на обучение, то вы просто можете выбрать уже готовые роботы из тех, что представлены у нас ДЛЯ TSLab, ДЛЯ QUIK, ДЛЯ MT5, ДЛЯ КРИПТОВАЛЮТЫ!
 
Также можете посмотреть совершенно бесплатные наработки для МТ4, Квика, МТ5. Данный раздел также постоянно пополняется.
 
Не откладывайте свой шанс заработать на бирже уже сегодня!