Открываем новый цикл статей — «Аллокация капитала». Разбираемся, как распределить деньги между роботами не на глаз, а по науке.
Когда робот один — вопрос «сколько ему дать» решается просто. Когда роботов десятки и все на разных инструментах — начинается то, что в математике называется распределением капитала. Как понять, что два робота — это одно и то же, и не надо давать им обоим полный капитал? Как разнести деньги так, чтобы один убыточный месяц не положил весь портфель? Об этом цикл.
Всё, о чём рассказываю, уже встроено в OsEngine. Исходный код открыт и лежит на GitHub — берите, изучайте, улучшайте.
Но прежде чем открывать код, давайте с базой. В этой статье — основные понятия, без которых дальше будет непонятно. А в конце — оглавление всего сборника.
1) Что такое аллокация капитала
Аллокация капитала — это ответ на вопрос «сколько денег дать каждому роботу». На выходе — веса (доли капитала) на каждого робота, в сумме 100%. Если роботу достался вес 5% — значит, на него выделяется 5% депозита.
В OsEngine модуль называется «Аллокация капитала» и работает так:
на вход — файлы с закрытыми позициями роботов (та самая история сделок, которую OsEngine сам выгружает из журнала тестера);
внутри — роботы группируются по корреляции доходностей в кластеры;
на выход — веса по кластерам и по роботам.
2) Почему просто «поровну» не работает
Самый простой способ — дать всем поровну. И это плохо, если роботы похожи.
Представьте: у вас три робота, но два из них — одна и та же стратегия на двух почти одинаковых бумагах. Их доходности двигаются вместе — то есть коррелируют. Дав «поровну», вы фактически поставили на одну идею двойную ставку: обе позиции растут и падают одновременно. Диверсификации нет.
Поэтому сначала роботов надо сгруппировать — а уже потом делить деньги между группами.
3) Что такое корреляция
Корреляция — число от −1 до 1, которое говорит, насколько две серии доходностей двигаются вместе:
1 — двигаются идеально одинаково;
0 — никак не связаны;
−1 — двигаются ровно наоборот.
Если у двух роботов корреляция доходностей близка к 1 — это по сути один и тот же риск. Вот таких и надо складывать в один кластер, чтобы не платить дважды за одно и то же.
Подробно и с формулами корреляцию разберём в статье про Марковица (Аллокация №2).
4) Что на входе, а что на выходе
На входе — только файлы с позициями. Каждая строка файла — одна закрытая позиция. Больше ничего: ни параметров стратегий, ни кода — только история сделок. По ней OsEngine сам пересчитает доходность каждого робота за неделю или за месяц.
На выходе — таблица кластеров и веса. Веса суммируются в 100%. В таблице рядом с 100% стоят колонки 200%, 300%…600% — это плечи: во сколько раз можно умножить базовую долю, если хочется торговать агрессивнее.
5) Алгоритмы
В цикле два алгоритма, два разных математических подхода:
1) равновесная кластеризация по корреляции — просто и прозрачно: собрали похожих, поделили поровну;
2) иерархический риск-паритет (HRP) — академический метод Лопеса де Прадо: веса обратно волатильности, а не поровну.
6) Оглавление сборника
Итого, что нас ждёт в цикле:
1) Аллокация капитала между роботами. Введение и оглавление. Мы здесь.
2) Гарри Марковиц. Как это было и современная теория Марковица — база: почему корреляция и дисперсия вообще определяют риск портфеля.
3) Равновесный алгоритм кластеризации по корреляции. Формулы и интерфейсы — первый способ: собираем похожих роботов и делим капитал поровну по кластерам.
4) Иерархический риск-паритет. Формулы и интерфейсы — второй способ: веса обратно волатильности, полный алгоритм де Прадо.
5) Полный сценарий получения объёмов для роботов + установка в реальные торги и тестер — от расчёта до боевых объёмов позиций.
Порядок не случаен: идём от простого к сложному.
Следующая статья — Гарри Марковиц: как возникла и что утверждает современная портфельная теория.
Подписывайтесь, чтобы не пропустить!
Удачных алгоритмов!
https://smart-lab.ru/company/os_engine/blog/1024149.php
Скачать OsEngine: https://github.com/AlexWan/OsEngine
Официальная поддержка OsEngine в MAX:https://max
Канал Научный трейдинг в MAX:https://max.ru/
Поддержка OsEngine в Телеграм:https://t.me/osengine_official_support
Канал Научный трейдинг (Bad Quant) в Телеграм:https://t.me/bad_quant
Подробнее https://smart-lab.ru/compan...


