Виджет: Инвестиционный портфель

Новые периоды ребалансировки


В виджет “Инвестиционный портфель” добавлены два новых варианта реблансировки: ежеквартальная (quarter) и полугодовая (half-year).

Просадки портфеля (Drawdowns)

image
Кроме того появился еще один тип графика - история просадок портфеля.
Новый график выглядит так:

Нововведения версии 1.4.0 добрались и до виджета портфелей.
Теперь можно тестировать стратегии с изъятиями и пополнениями.

Для таких стратегий в параметрах портфеля появились две новых области:


К сожалению, ради функциональности пришлось пожертвовать очевидностью. Но что делать…

Новые параметры инвестиционной, стратегии (скрыты под “Advanced”):

  • Initial amount - размер стартовых инвестиций. Значение FV (на дату last date)
  • Cash flow - размер ежемесячных изъятий/пополнений портфеля. Размер приводится как FV (на дату las date). Негативные значения - это изъятия из портфеля. Положительные значения - пополнения. Значения денежных потоков дисконтируются ежемесячно на значение discount rate.
  • Discount rate - значение ставки дисконтирования для расчета PV значений. По умолчания discount_rate равна None. Если ставка дисконтирования не определена, то значения дисконтируются на размер инфляции. Если данных по инфляции нет, то используется ставка по умолчанию, равная 5% годовых.
  • Portfolio ticker - тикер портфеля, который будет отображаться на графике (в перспективе добавим возможность использования этого тикера на других виджетах).

Параметры построения графика

Новшества актуальны только для Wealth Index. Все остальные типы графика остались без изменений.

  • Random simulations number - количество генерируемых стратегий по методу Монте-Карло
  • Forecast period - на сколько лет строится прогноз
  • Distribution type - тип распределения для доходности (нормальный или логнормальный)
  • Include backtest - включать тестирование на исторических данных или отображать только сгенерированные прогнозы

Количество генерируемых рандомных временных рядов (Random simulations number) на сайте ограничено 50. Сервер слабенький с маленьким количеством ядер… больше не выдержит. Возможно, когда-нибудь разживемся более мощной машиной.


Тестирование стратегии с ежегодной ребалансировкой:

  • 40% Индекс Мосбиржи,
  • 30% Индекс ОФЗ
  • 30% Золото
    Ссылка на портфель:
    Dash

Стартовый баланс портфеля: 10 000 000 руб
Ежемесячные изъятия: -80 000 руб (960 000 в год)
Индексация изъятий происходит на размер средней инфляции.

Survival period statistcs (срок дожития)

Новый вид статистики для портфелей с изъятиями.
В таблице показаны свойства сгенерированного множества распределения будущих балансов портфеля.
В примере средний срок дожития для стратегия равен 25 лет. Максимальный 27 лет, а минимальный - 24 года. После этого баланс портфеля обнуляется.

URL портфеля теперь содержит дополнительные необязательные параметры (тикер портфеля, начальные инвестиции, регулярные пополнения/изъятия и т.п.).

Например, ссылка на последнюю сбалансированную стратегию 40/30/30 с изъятиями выглядит так:

http://okama.io/portfolio?tickers=MCFTR.INDX,RGBITR.INDX,GC.COMM&weights=40,30,30&ccy=RUB&first_date=2000-01&last_date=2024-04&rebal=year&initial_amount=10000000&cashflow=-80000&symbol=BALANCED

P.S. Если в стратегии изменить частоту ребалансировки на месяц или вообще сделать портфель без ребалансировки, баланс портфеля сокращается быстрее. Сроки дожития в зависимости от частоты ребалансировки:

  • ежегодная ребалансировка - 25 лет
  • ежемесячная ребалансировка - 22 года
  • без ребалансировки - 20 лет

Версия 2.0.0 виджетов содержит важные изменения для Портфелей…

Использование распределения Стьюдента (t-распределение)

Библиотека okama теперь позволяет использовать в алгоритмах не только нормальное и логнормальное распределения, но и распределение Стьюдента.

При расчете прогноза для стратегии методом Монте-Карло появилась опция выбора распределения Стьюдента:
image

Распределение Стьюдента позволяет лучше прогнозировать результаты стратегий при наличии “толстых хвостов” (высокий коэффициент эксцесса).


Но не стоит забывать, что распределение Стьюдента (его еще называют t-распределением) симметрично. Оно плохо подходит, когда распределение доходности в исторических данных смещенно в одну из сторон (высокий коэффициент асимметрии). Тогда лучше использовать логнормальное распределение.

Итак… теперь прогнозировать можно с помощью трех видов распределений:

  • Нормальное
  • Логнормальное
  • Стьюдента (t-распределение)

Но как выбрать подходящее распределение?

Бэктестинг распределения

Корректный прогноз возможен только после проверки типа распределения на исторических данных. Этот процесс называется “бэктестинг распределения”…

Такая возможность теперь присутствует в опциях виджета “Портфель”.
image

На выходе мы получаем график для всех трех видов распределений. Иногда “пригодность” и “непригодность” распределения можно определить визуально.

Но гораздо точнее правильность выбора типа распределения можно обосновать на выявленных свойствах исторических данных.


Новая таблица с результатами бэктестинга распределения показывает следующие расчетные характеристики…
Моменты для временного ряда доходности:

  • Среднее
  • Стандартное отклонение
  • Коэффициент асимметрии (Skewness)
  • Коэффициент эксцесса (Kurtosis)

Результаты популярных тестов:

  • Харке - Бера (подходит только для определения “нормальности”)
  • Колмогорова - Смирнова (подходит для любых видов распределения)

Несколько мелких, но (надеюсь) полезных изменений

В таблице с прогнозом баланса портфеля появилась новая колонка PV. В Ней теперь отображается дисконтированный баланс портфеля. Размер ставки дисконтирования равен пока проценту индексации пополнений/изъятий. Но скоро это будет отдельный параметр (как в библиотеке). Можно считать, что это значение баланса портфеля в “сегодняшних ценах”.


FV - это колонка старого образца со значениями без дисконтирования.

Данные таблиц теперь можно скачать в формате EXCEL.


Это касается таблиц не только в виджете “Портфель”…

В итоге для логической завершенности добавил еще одну колонку в таблицу. Средние значения тоже должны быть в двух вариантах (FV, PV).

В этой же колонке теперь указывается ставка дисконтирования.