Виджет: Метод Монте-Карло и Граница эффективности

Добавил возможность отображать на виджете Границы эффективности инвестиционные портфели со случайными весами (Метод Монте-Карло).

Метод Монте-Карло помогает визуализировать часть пространства Риск-Доходность, расположенную внутри Границы эффективности. Её форма бывает очень “причудливая” … далеко не все портфели внутри границы достижимы.

П.С. Количество случайных портфелей на okama.io ограничено 10 тыс. (ресурсы сервера приходится жалеть :slight_smile: )

Пример

Граница эффективнсти для набора активов: Российские акции, акции США, российские облигации, золото (базовая валюта - RUB)

День добрый

а как можно посмотреть, какие доли занимают выбранные бумаги в конкретной точке Monte Carlo?

заранее спасибо

1 лайк

Пока никак, но мысль правильная. Я тоже про это думал. В практических целях желательно видеть, какие веса соответствуют каждой точки.

Можно попробовать вставить веста во всплывающее окно (сейчас там только риск и доходность):

1 лайк

Да, было бы неплохо в сплывающем окне или где-нибудь вправо от графика

1 лайк

Сообщение было перемещено в эту тему: База финансовых данных

Частично реализовал этот функционал. Теперь данные по портфелю показываются под графиком.
Единственное, что пока именно точки Монте-Карло не имеют информации по весам. Только риск и доходность.

Веса показывают для точек на границе эффективности и для тангенциального (MSR) портфеля.

Для того чтобы показывались веса, необходимо немного переделать функцию get_monte_carlo() в библиотеке okama. Создал соответствующую задачу.

1 лайк

По просьбам трудящихся добавил возможность посмотреть веса рандомных портфелей, генерируемых по Монте-Карло. Веса отображаются при клике по любой из точек.

Добрый день. “Конструктор виджетов имеет различные типы стратегий перебалансировки портфеля (не перебалансированный, ежемесячный или ежегодный перебалансированный)”. Чтобы воспользоваться этой возможностью, нужно “влезть” в библиотеку? Спасибо.

Откуда эта цитата? :slight_smile:

Со стратегиями ребалансировки ситуация следующая:

  • Стратегию ребалансировки можно выбрать только на виджете “Портфель” (Portfolio)
  • На виджете “Граница эффективности” выбора стратегии ребалансировки нет. В нем используется стандартный подход Марковица - портфели всегда находятся в ребалансированном состоянии. Так как мы используем месячные данные, то это соответствует стартегии “ежемесячная ребалансировка”.

Почему в “Границе эффективности” нет выбора стратегии ребалансировки. И как её все-таки получить

Два слова о том, почему отсутствует возможность выбора типа ребалансировки при оптимизации портфелей. Дело в том, что в библиотека okama эта функция реализована (здесь примеры).
Но, к сожалению, пока не получилось добиться быстрой работы этого вида оптимизации. Хотя задача по ускорению работы алгоритма стоит и даже есть мысли, как ускорить (здесь описание задачи). Пока построение 20 точек Границы эффективности при ребалансировке раз в год занимает в районе одной минуты. Для сайте это многовато. Но при желании можно всё сделать с помощью библиотеки.

Цитата из виджета Efficient Frontier widget (внизу страницы).
Подзабыл теорию по границе эффективности. Условия самые простые. Портфель - “вечный”, ребалансировка - 1 раз в год. Задача: наибольшая отдача при единственном критерии - требуемая доходность = безрисковая ставка +, допустим, 3%. Пример. Сформировали портфель на МБ в 2013 году из RGBItr и MCFtr, выбрав ее, кажется 9%+ наши 3% = 12%. Веса наших активов ~ 0,56 одного и 0,44 другого. 1 раз в год ребалансируем активы, подгоняя их под требуемые веса. И? Ведь со временем меняется безрисковая ставка и, соответственно, эффективность. Сейчас по прошествии ~ 10 лет мы это можем увидеть. Вопрос: для решения нашей задачи нам следовало поддерживать первоначально выбранные веса или, наверное, менять их при каждой ребалансировке под новую величину безрисковой ставки + 3%? Не подскажите? Спасибо.

Это ошибка копипаста. Поправлю описание виджета. Спасибо.

Подзабыл теорию по границе эффективности. Условия самые простые. Портфель - “вечный”, ребалансировка - 1 раз в год. Задача: наибольшая отдача при единственном критерии - требуемая доходность = безрисковая ставка +, допустим, 3%. Пример. Сформировали портфель на МБ в 2013 году из RGBItr и MCFtr, выбрав ее, кажется 9%+ наши 3% = 12%. Веса наших активов ~ 0,56 одного и 0,44 другого. 1 раз в год ребалансируем активы, подгоняя их под требуемые веса. И? Ведь со временем меняется безрисковая ставка и, соответственно, эффективность. Сейчас по прошествии ~ 10 лет мы это можем увидеть. Вопрос: для решения нашей задачи нам следовало поддерживать первоначально выбранные веса или, наверное, менять их при каждой ребалансировке под новую величину безрисковой ставки + 3%? Не подскажите?

вы вряд ли сможете решить задачу с такой формулировкой: “требуемая доходность = безрисковая ставка +, допустим, 3%”. Если бы задача имела решение, весь мир бы инвестировал в такое решение.

Современная теория портфеля (СТП) решает другие задачи: “оптимизация соотношения риска и доходности” на длинных промежутках времени. При этом, если брать длинные промежутки времени, то в сбалансированных и агрессивных стратегиях получается достигнуть реальной доходности +3% и выше. Но, часто выпадают промежутки времени с отрицательной реальной доходностью. Иногда такие промежутки бывают достаточно длинными (несколько лет).

Заложенная в классическую модель СТП теория вообще не оперирует понятием “реальная доходность”. Там даже инфляции нет. Соответственно, нет и ключевых ставок. Везде все расчеты делаются только по номинальной доходности. Почему так? Каких-то проблем это не вызывает, т.к. хорошо известны виды активов, которые на длинных сроках опережают инфляцию (например, индексы акций). Если хотите иметь +3% реальной среднегодовой доходности, делайте сбалансированный или агрессивный портфель. Ребалансируйте каждый раз под исходные веса без учета текущей безрисковой ставки.

Здраствуйте. Сергей, подскажите пожалуйста, сам график должен лежать в “положительной” части осей?! У меня он уехал в отрицательный “возврат”, это совсем плохо?! Держу мало мало акций российских кампаний и гос.облигации)

Здравствуйте … Ответ на этот вопрос зависит от целей. Что вы пытаетесь сделать с помощью Границы эффективности?

На всякий случай. Okama работает с ежемесячными данными. Для того, чтобы расчеты имели какую-то достоверность, необходимо выбрать правильно выбрать доверительный интервал. Грубо говоря, бесполезно ориентироваться на статистику за 1-2 года. В текущих условиях нужна история минимум за 10 лет. В идеале данные должны захватывать период 2008-2009 последнего мирового финансового кризиса.

Добавил в виджет возможность отображения Transition Map (Карта переходов)*.
График карты переходов становится доступен, если на виджете “Граница эффективности” выбрать Transition map: On (по умолчанию Off).

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

В библиотеке okama есть возможность на оси Х отображать на выбор: риск или CAGR. Но в виджете пока решил ограничиться наиболее популярным вариантом: веса VS риск.

Вид нового графика:

Например, на примере этого графика видно, что в агрессивных портфелях по мере роста риска (и доходности) должна расти доля акций - SPY. Процент облигаций BND - наоборот уменьшается (пока всё очевидно). Но даже в агрессивных портфелях должны быть облигации (вот это уже менее очевидно). Опять же по границе эффективности можно посмотреть каковы разумные границы золота в портфеле.

Подсказка: правее точки риска 14% портфели не стоит смотреть. На границе эффективности видно, что правее риск растет а доходность стоит на месте.


* Карта Переходов (?) - надо подумать получше, как это перевести на русский язык. Пока нигде не нашел, чтобы кто-то использовал в переведенном варианте. Если есть идеи получше “карты переходов”, дайте знать.

Еще одно небольшое изменение … Веса портфелей в подсказке под графиком Границы эффективности теперь отображаются в парах с тикерами. Думаю, так будет более информативно.
image

Сергей, здравствуйте!
Виджет не воспринимает набор тикетов. Независимо от входных параметров всегда показывает SPY, BND, GLD. День назад работало…

Только что проверил на наборе RGBITR.INDX, MCFTR.INDX, GC.COM … у меня всё работает.

Если вдруг проблема остаётся, напишите, что за браузер и какие наборы тикеров тестируете.

Проверял на разных наборах. Проблема, похоже, проявляется при большом Number of points метода Монте-Карло. 5-5000 - вроде работает. 9999 - все сваливалось к стандартному набору… Может на сайте в форме более строгое ограничение на количество точек сделать?
Хотя вот сейчас проверил - и 9999 отработало.
Блуждающий глюк… :slight_smile:

Да, вы правы. Для большого количества точек расчет длится слишком долго и система его “срезает”. Передвинул максимальное число на 5000. Думаю, для большинства случаев этого будет достаточно …

Здравствуйте.
С недавних пор не отображаются графики границы эффективности и карты переходов.