- PVSM.RU - https://www.pvsm.ru -

Okama.io: профессиональные инструменты для анализа инвестиционных стратегий

На Хабре мы уже несколько раз писали про open-source библиотеку okama [1], предназначенную для анализа инвестиционного портфеля на Python. Но у проекта давно есть «лицо» и для тех, кто не пишет код, — сайт okama.io [2]: набор бесплатных интерактивных инструментов для бэктестинга портфелей, анализа и сравнения отдельных активов и прогнозов. Мы когда-то делали в качестве “развлечения” и демонстрации возможностей окамы. Но со временем okama.io превратился в самостоятельный проект, которым пользуются как в России так и за рубежом.

Сайт целиком — open-source. Это приложение okama-dash [3] на Dash (Plotly) [4]: весь продукт — финансовая логика, обработка данных и интерфейс — написан на Python и распространяется под лицензией MIT. Под капотом работает та же библиотека okama, что доступна и из кода. Обычно функционал сайта несколько “отстаёт” от библиотеки ввиду необходимости разработки непростого интерфейса, но на сегодня эта разница не так велика.

Данные — бесплатные «end of day» исторические котировки и макропоказатели: биржи NYSE, NASDAQ, MOEX, LSE и другие, плюс индексы, крипто- и обычные валюты, товарные активы, ставки и инфляция.

Одна особенность сохраняется во всех разделах: всё состояние виджета кодируется в URL. Собрали портфель, настроили параметры — ссылку можно отправить кому угодно, и у него откроется ровно тот же расчёт.

Кнопка «Copy link»: любое состояние инструмента на okama.io кодируется в URL и передаётся одной ссылкой

Кнопка «Copy link»: любое состояние инструмента на okama.io кодируется в URL и передаётся одной ссылкой

Дальше — короткая экскурсия по разделам сайта…

Efficient Frontier — граница эффективности

Раздел “Граница эффективности” [2]

Инструмент строит границу эффективности для набора активов: для каждого уровня риска находит портфель с максимально возможной доходностью. На графике видно сами активы (в координатах риск/доходность), облако достижимых портфелей и кривую границы — выше неё подняться нельзя. Облако можно строить случайной генерацией (Монте-Карло) или перебором по сетке весов. Рядом доступна “Карта переходов” (transition map), которая показывает как меняется состав оптимизированных портфелей на границе эффективности.

Граница эффективности на okama.io: активы, облако достижимых портфелей и кривая границы

Граница эффективности на okama.io: активы, облако достижимых портфелей и кривая границы

Compare Assets — сравнение активов

Раздел “Сравнение активов” [5].

Раздел сравнивает несколько активов между собой на общем историческом периоде. Доступны графики баланса (Wealth Index - рост вложенной суммы), накопленная и годовая доходность, скользящий CAGR, матрица корреляций. Под графиком — таблица метрик: CAGR за разные периоды, риск (стандартное отклонение), CVAR, максимальные просадки, коэффициент Шарпа, дивидендная доходность.

На примере ниже — wealth index для трёх активов с 2005 года: S&P 500 (SPY.US), золото (GLD.US) и Nasdaq-100 (QQQ.US).

Compare Assets на okama.io: индексы богатства SPY.US, GLD.US и QQQ.US на общем периоде

Compare Assets на okama.io: индексы богатства SPY.US, GLD.US и QQQ.US на общем периоде

Compare with Benchmark — сравнение с бенчмарком

Раздел “Сравнение с бенчмарком” [6].

Здесь активы сравниваются не друг с другом, а с бенчмарком — индексом или другим активом. Считаются tracking difference (накопленная и годовая), tracking error, коэффициент бета и корреляция — на расширяющемся или скользящем окне.

Пример: качество следования двух ETF на индекс S&P 500 — VOO.US (Vanguard) и SPY.US (SPDR) — относительно индекса S&P 500 Total Return. Оба фонда почти точно повторяют индекс, но VOO.US следует за ним заметно плотнее: его годовое отставание около −0,36% против −0,84% у SPY.US (на общем периоде с конца 2010 года).

Compare with Benchmark на okama.io: годовое отставание (tracking difference) ETF VOO.US и SPY.US от индекса S&P 500 Total Return

Compare with Benchmark на okama.io: годовое отставание (tracking difference) ETF VOO.US и SPY.US от индекса S&P 500 Total Return

Investment Portfolio — анализ портфеля

Раздел “Портфель” [7].

Самый насыщенный раздел. Из активов с заданными весами собирается портфель, для которого можно: выбрать стратегию ребалансировки; задать денежные потоки — регулярные пополнения и изъятия (в том числе с индексацией на инфляцию, снятием процента от текущего размера, динамическими правилами); прогнать прогноз Монте-Карло; подобрать максимально безопасный размер изъятий под заданный горизонт. Считаются баланс портфеля, доходность, просадки, тест распределения доходностей.

Пример — классический портфель 60/40 (60% акции SPY.US, 40% облигации AGG.US). Линия портфеля идёт между акциями и облигациями: доходность ниже, чем у чистых акций, зато заметно ровнее — CAGR 8,1%, риск 10,1%, максимальная просадка −32% против −51% у одного S&P 500.

Интересная особенность этого раздела - возможность перейти вместе с созданным портфелем в соседние разделы и там его проанализировать (Граница эффективности, Бенчмарк, Сравнение).

Investment Portfolio на okama.io: индекс богатства портфеля 60/40 (SPY.US + AGG.US) на фоне его компонентов

Investment Portfolio на okama.io: индекс богатства портфеля 60/40 (SPY.US + AGG.US) на фоне его компонентов

Database — поиск по финансовой базе

Раздел “База данных” [8]

Поиск по всей базе данных okama: акции, ETF, ПИФы, индексы, валюты (включая криптовалюты), товары, ставки. База разбита на пространства имён (namespaces) — биржи и типы данных: US (биржи США), MOEX (Московская биржа), LSE (Лондон), XETR/XFRA (Германия), CC (крипто), COMM (товары), INDX (индексы), INFL (инфляция), RE (недвижимость) и другие. По каждому инструменту видны тикер, название, страна, биржа, валюта, тип и ISIN.

Пример — поиск «AAPL» в пространстве имён US.

Database на okama.io: поиск «AAPL» в пространстве имён US

Database на okama.io: поиск «AAPL» в пространстве имён US

Macro — макроэкономика

Раздел “Макроэкономика” [9]

Раздел макроэкономических данных различных стран с интерактивными графиками:

  • Инфляция — годовая, скользящая, накопленная и помесячная по странам, с возможностью наложить на график ключевые ставки центробанков;

  • Ставки центробанков — ключевые ставки и расчёт реальных ставок (с поправкой на инфляцию);

  • CAPE10 — коэффициент Шиллера по 25 странам: текущий срез и историческая динамика.

На графике — скользящая 12-месячная инфляция по нескольким странам.

Macro на okama.io: скользящая 12-месячная инфляция по странам

Macro на okama.io: скользящая 12-месячная инфляция по странам

Онлайн-курс по математике портфельных инвестиций по стандартам CFA

Сайт начинался как набор очень простых виджетов: посчитать доходность, нарисовать график. Со временем он разросся — и сегодня это уже довольно сложный инструмент. Граница эффективности, CVAR, tracking error, стратегии денежных потоков, бэктестинг распределений и прогнозы Монте-Карло — за каждым из этих расчётов стоит серьёзная финансовая математика.

Вся математика проекта основана на проверенных временем профессиональных стандартах CFA (Chartered Financial Analyst).

Для того, чтобы научиться пользоваться Современной теорией портфеля (СТП) в профессиональной деятельности, мы создали курс «Профессиональное создание инвестиционного портфеля» [10] в онлайн-школе Финариум. Это единственный в России курс где можно научиться разрабатывать и сопровождать инвестиционные стратегии согласно стандартам CFA.

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

Онлайн-курс «Профессиональное создание инвестиционного портфеля» — школа инвестиций Финариум, по международным стандартам CFA

Онлайн-курс «Профессиональное создание инвестиционного портфеля» — школа инвестиций Финариум, по международным стандартам CFA

Ссылки

Другие наши статьи на Хабре про okama:

Вопросы, баг-репорты и пул-реквесты приветствуются — проект открытый.

Автор: Chilango

Источник [17]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/453861

Ссылки в тексте:

[1] okama: https://github.com/mbk-dev/okama

[2] okama.io: https://okama.io

[3] okama-dash: https://github.com/mbk-dev/okama-dash

[4] Dash (Plotly): https://dash.plotly.com/

[5] Раздел “Сравнение активов”: https://okama.io/compare

[6] Раздел “Сравнение с бенчмарком”: https://okama.io/benchmark

[7] Раздел “Портфель”: https://okama.io/portfolio

[8] Раздел “База данных”: https://okama.io/database

[9] Раздел “Макроэкономика”: https://okama.io/macro/inflation

[10] «Профессиональное создание инвестиционного портфеля»: https://finarium.online/portfolio-maker?utm_source=habr&utm_medium=article&utm_campaign=okama-io-obzor&utm_content=incontent

[11] «Профессиональное создание инвестиционного портфеля»: https://finarium.online/portfolio-maker?utm_source=habr&utm_medium=article&utm_campaign=okama-io-obzor&utm_content=footer

[12] Open Source в финансах. Проект Okama: https://habr.com/ru/companies/okama/articles/798007/

[13] Ребалансировка инвестиционного портфеля с помощью Python и библиотеки okama: https://habr.com/ru/companies/okama/articles/922384/

[14] Создание и тестирование пенсионных инвестиционных стратегий с помощью Okama: https://habr.com/ru/companies/okama/articles/1020458/

[15] Дивидендная доходность Индекса Мосбиржи: как рассчитать за 5 минут с помощью Python: https://habr.com/ru/companies/okama/articles/912096/

[16] Библиотека Python для доступа к данным ЦБ: cbrapi: https://habr.com/ru/companies/okama/articles/963262/

[17] Источник: https://habr.com/ru/companies/okama/articles/1051450/?utm_campaign=1051450&utm_source=habrahabr&utm_medium=rss