Блог им. melamaster

Решая алгопортфельную задачу

можно узнать неожиданное, а можно убедиться интуитивном.

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

Ну и всё это торгуется уже третий год в стиле тупанов. Высокая средняя сделка и долгое время удержания позиции в каждом алгоритме.

Диверсификация это сила, но с весами на уровне фьючерсов не всё понятно (или почти всё непонятно). Про веса алгоритмов внутри фьючерса пока даже не думаю задумываться.

Поскольку по максимально доступной истории всё посчитано, легко посчитать корреляции фьючерсов (здесь и далее подразумевается сумма алгоритмов внутри каждого фьючерса, а не само удержание фьючерса) друг с другом.
Топ-10 по нескоррелированности:

[1,] «sf-pd» "-0.08"
[2,] «na-pd» "-0.08"
[3,] «gz-pd» "-0.07"
[4,] «ng-na» "-0.06"
[5,] «ng-pd» "-0.06"
[6,] «ng-sf» "-0.04"
[7,] «br-sf» "-0.03"
[8,] «gd-pd» "-0.03"
[9,] «sv-na» "-0.03"
[10,] «br-ng» "-0.02"

Топ-10 по скоррелированности:

[82,] «ri-lk» «0.34»
[83,] «sr-gz» «0.36»
[84,] «gz-mx» «0.39»
[85,] «ri-si» «0.41»
[86,] «ri-gz» «0.44»
[87,] «sr-mx» «0.52»
[88,] «mx-lk» «0.54»
[89,] «ri-mx» «0.6»
[90,] «ri-sr» «0.64»
[91,] «sf-na» «0.75»

Чтобы легче с этим работать, посчитаем корреляционный вес каждого фюьчерса как среднее значение его корреляций с другими фьючерсами:

[1,] «ng» "-0.01"
[2,] «pd» «0.03»
[3,] «sv» «0.03»
[4,] «gd» «0.06»
[5,] «pt» «0.07»
[6,] «br» «0.09»
[7,] «si» «0.1»
[8,] «sf» «0.1»
[9,] «na» «0.1»
[10,] «gz» «0.12»
[11,] «lk» «0.14»
[12,] «sr» «0.17»
[13,] «mx» «0.19»
[14,] «ri» «0.23»

«1» здесь означало бы, что мы имеем фьючерс, который имеет единичную или 100%-ю корреляцию со всеми остальными и такой торговать точно не стоило бы.

Выкидываем RI и всё пересчитываем:

[1,] «ng» "-0.01"
[2,] «pd» «0.02»
[3,] «sv» «0.03»
[4,] «gd» «0.05»
[5,] «si» «0.07»
[6,] «br» «0.07»
[7,] «pt» «0.07»
[8,] «gz» «0.09»
[9,] «sf» «0.1»
[10,] «na» «0.1»
[11,] «lk» «0.12»
[12,] «sr» «0.13»
[13,] «mx» «0.16»

Так тоже не годится. Оставляем из русских акций только MX, а из американской пары убираем NA:

[1,] «ng» "-0.01"
[2,] «sf» «0.03»
[3,] «sv» «0.04»
[4,] «gd» «0.05»
[5,] «pd» «0.05»
[6,] «mx» «0.05»
[7,] «br» «0.07»
[8,] «si» «0.08»
[9,] «pt» «0.08»

Получаем рабочий набор факторов или классов торговли, между которыми надо реально распределять веса.
Первый вывод очевиден, что MX, RI, LK, SR, GZ должны между собой делить вес MX из последней таблицы.
Аналогично NA и SF делят американский вес, обозначенный SF.
Но вот как делить веса между этими девятью базовыми фьючерсами — вопрос второй и второй вывод, который нелегко сделать.

Поправочные коэффициенты к этим весам потом сделать легко. Например, снизить вес газа за счет короткой истории. Например, снизить вес Америки из-за наличия контртрендовых компонент. И тд.

Но как распределить веса иначе, чем поровну… вопрос пока остался открытым.
★1
19 комментариев
смотри… у тя есть гипотеза… т.е прогноз… логично сделать большую ставку на актив который наиболее точно следут прогнозу… и меньшую ствку в котором прогноз ваще не исполняется 
avatar
ves2010, у алготрейдеров редко есть прогноз)
у них есть прогон на истории и это как правило всЕ)
avatar
если по максимальной просадке выравнивать? чем больше максимальная просадка, тем меньше доля
avatar
zam, макс просадка шибко неустойчивая характеристика. И они все примерно по макросадке в районе -10% пляшут.
avatar
Sergey Pavlov, ну по шарпу к примеру выделить доли тогда…
avatar
zam, хочется чего добиться? Не столько мегапрофита какого-то, сколько устойчивой ровной торговли. Чтобы затяжные просадки были реже и короче, а они случаются, когда одновременно наступают серии убытков по большинству фьючерсов. И вот можно ли такое отрегулировать весами — вопрос… Если даже можно в ущерб доходности, но во благо более ровной эквити, то этого хочется.
avatar
NA и LK не слишком ликвидны. А PT c PL у нас вообще неликвид.
avatar

А. Г., 
1. всё относительно.
2. после 24.02.22 уместно пересмотреть подход к ликвидности при торговле. Что толку от мегаликвидности сбера, если мы не имеем ликвидности в пределах 20% от закрытия пред дня, а ликвидность появляется чуть ли не в -50%?
3. Для крайне редких сделок и NA вполне сгодится и палладий. NA я уже давно торгую и по замерам проскальзывания он вполне годится для медленных алгоритмов.

avatar
Sergey Pavlov, для небольших объемов NA может и сойдет, а вот как палладий торговать с 588 сделками 16.09 не представляю.
avatar
Если можно как-то вычислить (оценить) вероятности маржинколов (или полного разорения, или потери четверти депозита) пакета алгоритмов для каждого фьючерса, то можно принять условие равенства таких вероятностей для всех фьючерсов. А затем обратным счётом вычислить доли пакетов.
avatar
svgr, красиво и теоретически понятно, но кроме как намонтекарлить такие вероятности, не вижу другого способа. Чем плох такой подход? Я когда-то делал монте-карло графика просадок на разных торговых алгоритмах на Сбере. Получалось у меня вот что. Те просадки, которые имелись в данной нам реализации Сбера были супер редкими  и маловероятными, а вероятно было получать просадки совершенно иные. Это при нарушении эффекта памяти за счёт перемешивания. В общем, в той единственной реализации, которую мы наблюдаем, есть свой изюм и под него надо как-то подстроиться. Я бы как-то так сказал, но за идею спасибо!
avatar
Sergey Pavlov, если имеющаяся реализация считается нетипичной по просадкам по каким-то соображениям, то можно пробовать опереться в ней на другие параметры колебаний цены, допустив, что они то окажутся характерными для инструмента. Затем снова из каких-то соображений прописать характерные просадки при этих параметрах. И уже эту модель монтекарлить. 
avatar

@Sergey Pavlov , слушай, а почему у ри и си положительная корреляция? Нет ошибки?

 

avatar
yurikon, 
здесь и далее подразумевается сумма алгоритмов внутри каждого фьючерса, а не само удержание фьючерса
Дмитрий Овчинников, вон оно чо михалыч ))) да, алго будут коррелировать, конечно
avatar
а чем не устраивает классика?
— если ничего не знаем: наивная дивер-ция 1/n
— если более-менее надежно можем оценить риск (и ничего кроме): risk-parity
— если можем кроме риска еще как-то оценить ожидаемую доходность и кросс-корреляции, то Марковиц плюс-минус
avatar
wrmngr, всё чем-то не устраивает.
Я же писал несколько раз об этой задаче. В моих блогах на смартике можно посмотреть и свежим глазом глянуть на один из моих подходов.
avatar
SergeyJu, всё внимательно смотрел. С удовольствием слежу. Мы в общем все делаем одно и то же и в теории всё одинаково может и должно быть, но на практике каждый как-то по своему разбирается с нюансами.

теги блога Sergey Pavlov

....все тэги



UPDONW
Новый дизайн