- PVSM.RU - https://www.pvsm.ru -
На Хабре мы уже несколько раз писали про 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. Собрали портфель, настроили параметры — ссылку можно отправить кому угодно, и у него откроется ровно тот же расчёт.
Дальше — короткая экскурсия по разделам сайта…
Раздел “Граница эффективности” [2]
Инструмент строит границу эффективности для набора активов: для каждого уровня риска находит портфель с максимально возможной доходностью. На графике видно сами активы (в координатах риск/доходность), облако достижимых портфелей и кривую границы — выше неё подняться нельзя. Облако можно строить случайной генерацией (Монте-Карло) или перебором по сетке весов. Рядом доступна “Карта переходов” (transition map), которая показывает как меняется состав оптимизированных портфелей на границе эффективности.
Раздел “Сравнение активов” [5].
Раздел сравнивает несколько активов между собой на общем историческом периоде. Доступны графики баланса (Wealth Index - рост вложенной суммы), накопленная и годовая доходность, скользящий CAGR, матрица корреляций. Под графиком — таблица метрик: CAGR за разные периоды, риск (стандартное отклонение), CVAR, максимальные просадки, коэффициент Шарпа, дивидендная доходность.
На примере ниже — wealth index для трёх активов с 2005 года: S&P 500 (SPY.US), золото (GLD.US) и Nasdaq-100 (QQQ.US).
Раздел “Сравнение с бенчмарком” [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 года).
Раздел “Портфель” [7].
Самый насыщенный раздел. Из активов с заданными весами собирается портфель, для которого можно: выбрать стратегию ребалансировки; задать денежные потоки — регулярные пополнения и изъятия (в том числе с индексацией на инфляцию, снятием процента от текущего размера, динамическими правилами); прогнать прогноз Монте-Карло; подобрать максимально безопасный размер изъятий под заданный горизонт. Считаются баланс портфеля, доходность, просадки, тест распределения доходностей.
Пример — классический портфель 60/40 (60% акции SPY.US, 40% облигации AGG.US). Линия портфеля идёт между акциями и облигациями: доходность ниже, чем у чистых акций, зато заметно ровнее — CAGR 8,1%, риск 10,1%, максимальная просадка −32% против −51% у одного S&P 500.
Интересная особенность этого раздела - возможность перейти вместе с созданным портфелем в соседние разделы и там его проанализировать (Граница эффективности, Бенчмарк, Сравнение).
Поиск по всей базе данных okama: акции, ETF, ПИФы, индексы, валюты (включая криптовалюты), товары, ставки. База разбита на пространства имён (namespaces) — биржи и типы данных: US (биржи США), MOEX (Московская биржа), LSE (Лондон), XETR/XFRA (Германия), CC (крипто), COMM (товары), INDX (индексы), INFL (инфляция), RE (недвижимость) и другие. По каждому инструменту видны тикер, название, страна, биржа, валюта, тип и ISIN.
Пример — поиск «AAPL» в пространстве имён US.
Раздел макроэкономических данных различных стран с интерактивными графиками:
Инфляция — годовая, скользящая, накопленная и помесячная по странам, с возможностью наложить на график ключевые ставки центробанков;
Ставки центробанков — ключевые ставки и расчёт реальных ставок (с поправкой на инфляцию);
CAPE10 — коэффициент Шиллера по 25 странам: текущий срез и историческая динамика.
На графике — скользящая 12-месячная инфляция по нескольким странам.
Сайт начинался как набор очень простых виджетов: посчитать доходность, нарисовать график. Со временем он разросся — и сегодня это уже довольно сложный инструмент. Граница эффективности, CVAR, tracking error, стратегии денежных потоков, бэктестинг распределений и прогнозы Монте-Карло — за каждым из этих расчётов стоит серьёзная финансовая математика.
Вся математика проекта основана на проверенных временем профессиональных стандартах CFA (Chartered Financial Analyst).
Для того, чтобы научиться пользоваться Современной теорией портфеля (СТП) в профессиональной деятельности, мы создали курс «Профессиональное создание инвестиционного портфеля» [10] в онлайн-школе Финариум. Это единственный в России курс где можно научиться разрабатывать и сопровождать инвестиционные стратегии согласно стандартам CFA.
На курсе даётся современная теория портфеля, теория вероятностей и статистика для решения практических финансовых задач по программе CFA с домашними заданиями и дипломной работой. Материалы курса можно использовать в том числе для подготовки к экзамену CFA. Выпускники получают свидетельство о повышении квалификации государственного образца.
Сайт: okama.io [2]
Библиотека: github.com/mbk-dev/okama [1]
Веб-приложение: github.com/mbk-dev/okama-dash [3]
Курс: «Профессиональное создание инвестиционного портфеля» [11]
Другие наши статьи на Хабре про okama:
Ребалансировка инвестиционного портфеля с помощью Python и библиотеки okama [13]
Создание и тестирование пенсионных инвестиционных стратегий с помощью Okama [14]
Дивидендная доходность Индекса Мосбиржи: как рассчитать за 5 минут с помощью Python [15]
Вопросы, баг-репорты и пул-реквесты приветствуются — проект открытый.
Автор: 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
Нажмите здесь для печати.