На Хабре мы уже несколько раз писали про open-source библиотеку okama, предназначенную для анализа инвестиционного портфеля на Python. Но у проекта давно есть «лицо» и для тех, кто не пишет код, — сайт okama.io: набор бесплатных интерактивных инструментов для бэктестинга портфелей, анализа и сравнения отдельных активов и прогнозов. Мы когда-то делали в качестве “развлечения” и демонстрации возможностей окамы. Но со временем okama.io превратился в самостоятельный проект, которым пользуются как в России так и за рубежом.
Сайт целиком — open-source. Это приложение okama-dash на Dash (Plotly): весь продукт — финансовая логика, обработка данных и интерфейс — написан на Python и распространяется под лицензией MIT. Под капотом работает та же библиотека okama, что доступна и из кода. Обычно функционал сайта несколько “отстаёт” от библиотеки ввиду необходимости разработки непростого интерфейса, но на сегодня эта разница не так велика.
Данные — бесплатные «end of day» исторические котировки и макропоказатели: биржи NYSE, NASDAQ, MOEX, LSE и другие, плюс индексы, крипто- и обычные валюты, товарные активы, ставки и инфляция.
Одна особенность сохраняется во всех разделах: всё состояние виджета кодируется в URL. Собрали портфель, настроили параметры — ссылку можно отправить кому угодно, и у него откроется ровно тот же расчёт.

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

Compare Assets — сравнение активов
Раздел сравнивает несколько активов между собой на общем историческом периоде. Доступны графики баланса (Wealth Index - рост вложенной суммы), накопленная и годовая доходность, скользящий CAGR, матрица корреляций. Под графиком — таблица метрик: CAGR за разные периоды, риск (стандартное отклонение), CVAR, максимальные просадки, коэффициент Шарпа, дивидендная доходность.
На примере ниже — wealth index для трёх активов с 2005 года: S&P 500 (SPY.US), золото (GLD.US) и Nasdaq-100 (QQQ.US).

Compare with Benchmark — сравнение с бенчмарком
Раздел “Сравнение с бенчмарком”.
Здесь активы сравниваются не друг с другом, а с бенчмарком — индексом или другим активом. Считаются 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 года).

Investment Portfolio — анализ портфеля
Самый насыщенный раздел. Из активов с заданными весами собирается портфель, для которого можно: выбрать стратегию ребалансировки; задать денежные потоки — регулярные пополнения и изъятия (в том числе с индексацией на инфляцию, снятием процента от текущего размера, динамическими правилами); прогнать прогноз Монте-Карло; подобрать максимально безопасный размер изъятий под заданный горизонт. Считаются баланс портфеля, доходность, просадки, тест распределения доходностей.
Пример — классический портфель 60/40 (60% акции SPY.US, 40% облигации AGG.US). Линия портфеля идёт между акциями и облигациями: доходность ниже, чем у чистых акций, зато заметно ровнее — CAGR 8,1%, риск 10,1%, максимальная просадка −32% против −51% у одного S&P 500.
Интересная особенность этого раздела - возможность перейти вместе с созданным портфелем в соседние разделы и там его проанализировать (Граница эффективности, Бенчмарк, Сравнение).

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

Macro — макроэкономика
Раздел макроэкономических данных различных стран с интерактивными графиками:
Инфляция — годовая, скользящая, накопленная и помесячная по странам, с возможностью наложить на график ключевые ставки центробанков;
Ставки центробанков — ключевые ставки и расчёт реальных ставок (с поправкой на инфляцию);
CAPE10 — коэффициент Шиллера по 25 странам: текущий срез и историческая динамика.
На графике — скользящая 12-месячная инфляция по нескольким странам.

Онлайн-курс по математике портфельных инвестиций по стандартам CFA
Сайт начинался как набор очень простых виджетов: посчитать доходность, нарисовать график. Со временем он разросся — и сегодня это уже довольно сложный инструмент. Граница эффективности, CVAR, tracking error, стратегии денежных потоков, бэктестинг распределений и прогнозы Монте-Карло — за каждым из этих расчётов стоит серьёзная финансовая математика.
Вся математика проекта основана на проверенных временем профессиональных стандартах CFA (Chartered Financial Analyst).
Для того, чтобы научиться пользоваться Современной теорией портфеля (СТП) в профессиональной деятельности, мы создали курс «Профессиональное создание инвестиционного портфеля» в онлайн-школе Финариум. Это единственный в России курс где можно научиться разрабатывать и сопровождать инвестиционные стратегии согласно стандартам CFA.
На курсе даётся современная теория портфеля, теория вероятностей и статистика для решения практических финансовых задач по программе CFA с домашними заданиями и дипломной работой. Материалы курса можно использовать в том числе для подготовки к экзамену CFA. Выпускники получают свидетельство о повышении квалификации государственного образца.

Ссылки
Сайт: okama.io
Библиотека: github.com/mbk-dev/okama
Веб-приложение: github.com/mbk-dev/okama-dash
Другие наши статьи на Хабре про okama:
Ребалансировка инвестиционного портфеля с помощью Python и библиотеки okama
Создание и тестирование пенсионных инвестиционных стратегий с помощью Okama
Дивидендная доходность Индекса Мосбиржи: как рассчитать за 5 минут с помощью Python
Вопросы, баг-репорты и пул-реквесты приветствуются — проект открытый.
