Новые релизы okama

Сегодня вышел довольно большой релиз okama (версия 0.90).
Новости в основном касаются методов работы с прогнозированием и тестирование распределений.

Теперь легко можно строить подобные прогнозы для инвестиционных портфелей:

Или с использования метода Монте-Карло (генерация случайных кривых накопленной доходности:

Сравнивать историческое распределение доходности с нормальным или логнормальным:

Подробности

Появилась возможности прогнозирования с использованием:

  • Нормального распределения
  • Логнормального распределения
  • Исторических данных

Новые методы визуализации (класс Portfolio):

  • plot_forecast
  • plot_forecast_monte_carlo
  • plot_plot_hist_fit
  • plot_percentiles_fit

Новые методы прогнозирования (класс Portfolio):

  • percentile_inverse
  • percentile_from_history
  • forecast_wealth_history
  • forecast_monte_carlo_cagr
  • forecast_wealth

Кроме того, для классов AssetList и Portfolio доступны тесты, которые помогут разобраться, подходит ли нормальное или логнормальное распределение для прогнозов:

Как обычно, примеры применения новых методов в jupyter notebooks.

Для установки новой версии okama:
pip install okama==0.90

Вышла версия 0.91 библиотеки с небольшими обновлениями.

1. Метод Монте-Карло для границы эффективности

Появился новый метод .get_monte_carlo для класса EfficientFrontier. Теперь можно генерировать с использование Монте-Карло случайные портфели для визуализации точек внутри границы эффективности.


Примеры использования нового метода в ноутбуке 03 efficient frontier.ipynb.

2. Точный расчет CAGR для границы эффективности

Для расчета точек на границе эффективности доступен атрибут kind='cagr', который позволяет получить точную величину среднегодовой доходности (для каждой точки).
Используемый ранее атрибут kind='cagr_app' для расчета приближенного значения среднегодовой доходности больше не используется.

1 Like

Вышла версия 0.91 okama.
Основные изменения - это рефакторинг и исправление багов:

  • параметр валюты curr переименован в ccy
  • исправлены ошибки в методах dividend_yield (AssetList) и describe (Portfolio)

Кроме того:

  • добавлен ноутбук с примерами использования методов класса EfficientFrontierReb для портфелей с различными периодами ребалансировки ( 04 efficient frontier multi-period.ipynb )
  • в ноутбуке 01 howto.ipynb добавлены примеры вычисления корреляционных матриц для списка активов.
1 Like

Версия 0.93 okama

  • Появилась возможность запросить список всех символов (тикеров) из определенного namespace при помощи symbols_in_namespace(). Например, для получения всех доступных индексов: symbols_in_namespace(INDX). Все тикеры Мосбиржи: symbols_in_namespace(MOEX).
  • В базу данных добавлены официальные курсы ЦБ России: USD, EUR, GBP, CNY, а также курсы валют стран СНГ: UAH, KZT, BYN. Курсы валюты доступны для всех дней (даже когда нет торгов). namespace для курсов валют центробанков: CBR.
    Список доступных сейчас валют можно посмотреть с помощью symbols_in_namespace(CBR)

Версия 0.95
Отдельные улучшения для класса Portfolio.

  • атрибут .cagr заменен на метод .get_cagr() по аналогии с AssetAllocation
  • в .description теперь включена дивидендная доходность портфеля во всех валютах активов.

Исправления:

  • исправлено __repr__ для EfficientFrontier
  • все импорты внутри библиотеки являются относительными

Версия 0.98
Новые методы для класса Portfolio

  • get_cumulative_return - расчет накопленной доходности портфеля
  • get_rolling_cumulative_return - расчет накопленной скользящей доходности портфеля

'YTD' - больше не является аргументом для get_cagr. По смыслу доход с начал года (YTD) - это не CAGR (среднегодовая доходность), а накопленная (за несколько месяцев) доходность. Поэтому аргумент ‘YTD’ перенесен в get_cumulative_return.

В репозитории библиотеки появилась ветка предрелиза dev.
Установить предрелизную версию можно через:

pip install git+https://github.com/mbk-dev/[email protected]

На сегодняшний день в предрелизной версии доступны улучшения нескольких методов AssetList и Portfolio для расчета реальной доходности:

  • get_cagr(real=True)
  • get_rolling_cagr(real=True)
  • get_cumulative_return(real=True)
  • get_rolling_cumulative_return(real=True)

Внимание: предрелизная версия может быть нестабильной