Блог им. Oppositus

Калькулятор портфелей Марковица

Всем привет. Я немного вынырнул из небытия. Извиняюсь, что прервал тему про опционы, просто к ней охладел. 

А так — презентую новый проект, Калькулятор доходности портфелей по Марковицу.  Многие видели подобные картинки и знают, что это такое:
Калькулятор портфелей Марковица

Для тех, кто не знает — это кривая риск-доходность портфеля, составленного из 2 инструментов. Марковиц доказал (за что получил Нобеля по экономике), что эта кривая всегда выгнута влево-вверх, и никогда вправо-вниз. То есть, добавление в портфель рисковых высокодоходных инструментов может уменьшить риск портфеля при увеличении прибыльности. Отсюда пошла быть современная портфельная теория.

А теперь можно считать и рисовать на дому! И совершенно бесплатно, в смысле даром! 

Давайте по-порядку.

1. Качаем версию с Гитхаба (ссылка в конце поста), распаковываем. Проверяем на вирусы или читаем исходный код, убеждаемся, что все безопасно. Разблокируем calcaa.cmd через свойства файла и запускаем программу. Да, работает под Виндой и Линуксом. На Маках тоже должно, но не проверял из-за наличия отсутствия.

2. Видим примерно такое:
Калькулятор портфелей Марковица



Добавление данных руками пока не доделано (зато удаление работает! гггг), да и не нужно, думаю. Жмем «Открыть» и открываем CSV файл с данными по инструментам. Рядом с программой лежат примеры. Ниже буду показывать «портфель лежебоки», про который многие тоже слышали.

Все примеры данных я сохранил в таком в таком формате:
Калькулятор портфелей Марковица

Разделитель; текст в " десятичная точка, и 1-м столбце везде даты (в примерах).

3. После открытия файла можно посмотреть и подредактировать данные в таблице, посмотреть корреляции и ковариации (вдруг понадобится?).
Калькулятор портфелей Марковица



4. С неинтересной частью закончили, начинаем рисовать! По кнопке «Портфели (Ctrl+Enter)» открывается окно построения графиков. Жамкаем «Нарисовать»!
Калькулятор портфелей Марковица


И видим характеристики портфелей, составленных с разным процентным соотношением инструментов. По горизонтали — риск портфеля (волатильность), по вертикали — доходность.

5. Режим «Только граница» показывает только портфели на границе эффективности. Те, у которых максимальная доходность при данном риске.
Калькулятор портфелей Марковица



6. Режим «Ребалансировки». Мы ведь не просто покупаем постоянный портфель типа «60% акций + 40% облигаций», но и ребалансируем его (скажем, раз в год) для восстановления пропорций активов. И тут есть такой момент, что портфель на границе эффективности вовсе не обязательно самый доходный с учетом ребалансировок. Вот эта кнопка и позволяет раскрасить график и посмотреть доходность портфелей с учетом ребалансировок:
Калькулятор портфелей Марковица


7. Задание ограничений. В таблице над кнопками можно указать минимальные и максимальные веса инструментов для расчета. Допустим, мы «строго по Грэхему» хотим в портфеле акции и облигации в пределах 25-75% каждые. И не более 15% золота на всякий случай. Вводим и смотрим, что получается:
Калькулятор портфелей Марковица

9. Сравнение портфелей и ограничение срока графика. Если такая неприятная штука. Корреляции инструментов в будущих периодах будут не такие, как на истории. Поэтому портфель, который сейчас находится на границе эффективности, в будущем с этой границы уйдет. Допустим, мы в 2005-м году провели расчет и получили такие данные (это уже данные по индексам MSCI развитых рынков — см msci_year_dm.csv). Выбрали портфель на границе эффективности и хотим посмотреть, как он себя повел бы:
Калькулятор портфелей Марковица


Вводим параметры этого портфеля в стоку таблицы «Сравнить» и снова жмем «Нарисовать». Получится так (портфель из строки «Сравнить» нарисован черным):
Калькулятор портфелей Марковица


Теперь меняем даты, и смотрим, как этот портфель повел бы себя с 2006-го по 2015-й:
Калькулятор портфелей Марковица


Видно, что портфель уже больше не на границе, а довольно далеко от нее. 

Более подробно, с рисунками и обсуждением, у меня в ЖЖ: http://oppositus.livejournal.com/409878.html
http://oppositus.livejournal.com/410305.html
http://oppositus.livejournal.com/410911.html

10. Напоследок, если кликнуть по портфелю в графике портфелей, можно посмотреть его доходность:
Калькулятор портфелей Марковица


11. Кнопка «Прогноз» (с картинки выше) сравнивает реальную доходность с расчетной. Кнопка «Ребалансировки» переключает график в режим сравнения доходности портфеля «просто купил-и-держу» с портфелем, который ребалансируется раз в период:
Калькулятор портфелей Марковица



Вот основные функции калькулятора на сегодня. Остальное в справке на Гитхабе: https://github.com/Oppositus/CalculatorAA

Качать отсюда: https://github.com/Oppositus/CalculatorAA/tree/master/builds Старые билды качать не имеет смысла, берите 1.5 или более свежие, когда появятся.

Лицензия MIT. Это значит, что можно использовать как угодно и где угодно, в том числе в коммерческой деятельности.

Вопросы, замечания, предложения — пишите сюда, или в ЖЖ. Баги тоже пишите, сюда или в багрекер на Гитхабе.

Надеюсь, кому-нибудь пригодится. Раз уж идут разговоры о том, «что в последнее время стало много инвесторов» — инвестируйте правильно. :)

Всем чмоки!
★47
34 комментария
eto delo!
avatar
Интересно, спасибо!
avatar
Калькулятор — крут :) Хотя не так полезен, как его пиарят, из-за невозможности знать будущие параметры. Поэтому от года к году рекомендует разное. У меня аналог в электронной таблице зафигачен, но попроще.

Портфель лежебоки — на 60% пиар. Это наглядное пособие по СПТ, у него есть вау-эффект, но период и инструменты… Дефолтный год у России + где-то 5 экономических кризисов в те годы (на которых золото и пёрло безоткатно) — это чит. Ещё можно было имхо вместо золота нефть брать, стрельнуло бы солиднее :)
avatar
iddqd3n, 

> Дефолтный год у России + где-то 5 экономических кризисов в те годы (на которых золото и пёрло безоткатно) — это чит

У нас каждый год чит :) не дефолт, так девальвация или высокие процентные ставки.

> можно было имхо вместо золота нефть брать

Для расчета — можно. Но реально в России в нефть вложиться нельзя (фьючерсы не совсем то, что надо, и история короче).
avatar
Dem Oppositus, 
У нас каждый год чит :) не дефолт, так девальвация или высокие процентные ставки.
Но не по 2000% годовых по облигациям же :)

Для расчета — можно. Но реально в России в нефть вложиться нельзя (фьючерсы не совсем то, что надо, и история короче).
Это не призыв к инвестированию в нефть, просто посмотрите на график золота лет за 100 — автор по сути в 97м берёт дно 20-летнего медвежьего рынка и выходит на пике своего периода. Просиди он до 2011-го, вау-эффект был бы ещё выше.

Результат слишком спекулятивен и завышен, ибо подогнан, аналогичный портфель на реальной дистанции гораздо хуже, т.е. автор немного вводит в заблуждение тех, кто не разбирается. Иначе почему бы не рекомендовать всем делать так же прямо сейчас, ведь это 50% годовых? :)
avatar
iddqd3n, 

> Но не по 2000% годовых по облигациям же :)

Да, так, наверное, больше не будет. С другой стороны, возможности по облигациям есть. Скажем, если облишационную часть портфеля составить из ОФЗ-ИН + ОПЗ-ПК — можно получить отдачу и от всплесков инфляции и от кризисов ликвидности. Можно добавить и FXRU, как рисковый инструмент, отрабатывающий колебания рубль/доллар.

Да, золото я смотрел: http://oppositus.livejournal.com/407559.html

Это, конечно, чит. С другой стороны, есть «постоянный портфель» (с включением золота), который 30 лет работает и не жужжит: http://assetallocation.ru/permanent-portfolio/

Upd. Таки жужжит :( Последнее время доходность отрицательная. 
avatar
Dem Oppositus,
С другой стороны, возможности по облигациям есть.
Согласен, я ж их не исключаю :) Более того, сейчас для нашей истории (даже 99-16, без дефолта) оптимален классический 60/40, т.к. в среднем облигации дают столько же, сколько и акции — около 16-17%. По данным тех же ПИФов, которые теперь Сберу принадлежат.

С другой стороны, есть «постоянный портфель» (с включением золота), который 30 лет работает и не жужжит
Не спорю, неплохо (сам держу аж 2% золота :)), но есть нюанс. В рублёвом портфеле 97-09 цена золота — это четырёхкратный рост золота, умноженный на пятикратный рост доллара :) Итого х20, индивидуальные условия для России, так сказать :)
avatar
А теперь тоже самое и как для дебилов:)
Самокритичный трейдер, по своей сути СПТ доказывает забавный факт:

— агрессивному инвестору в акции нужно держать 20-30% облигаций для снижения риска (волатильности) и повышения доходности одновременно;
— консервативному инвестору в облигации нужно держать 15-20% акций, это также снижает риск и повышает доходность одновременно;
— на долгосроке ~95% результата пассивного портфеля (доходность/риск) даёт выбор этих процентов, а не конкретных акций, поэтому для домохозяйки идеальный вариант — индексный фонд с минимальными издержками;
— чтобы это работало, нужна ребалансировка.

Всё остальное — детали, графики, матанализ и т.п.
avatar
iddqd3n, Всё равно не вижу потенциала прибыли. Если у меня краткосрочный трейдинг в акциях на 3-6 месяцев, то облигации я должен держать на 1-2 года? Но тогда это бред и у меня есть тому доказательства, только платить за них никто не хочет.
Самокритичный трейдер, исследование американских фондов показывает, что на сроке в 10-20-30+ лет активное управление капиталом не приносит дополнительной прибыли, а отстаёт от рынка как минимум на уровень издержек. Поэтому и адепты СПТ, и Баффетт для большинства рекомендуют именно простое распределение активов и индексные фонды (которые ничего не выбирают, а просто берут акции/облигации широким фронтом, следуя за индексом). Тупо купил индекс на акции, индекс на облигации, раз в год ребалансировка. По России это дало бы в среднем стабильные 18% годовых за 18 лет или 21% за 20 (из-за дефолта) вообще без управления по сути, как депозит. Причём 18% — это просто сложный процент, часто в год там по 40-80%, а то и 100+ выходило, но и до -50% на кризисы (с реабилитацией на следующий год). Поэтому если брать не 20 лет, а, скажем, лет 5, то можно подумать, что это приносит по 30-80% годовых стабильно.

Плюс молодые люди могут взять и спекулятивную часть, на небольшой процент, им до пенсии далеко.

Успешные спекулянты есть, но лишь единицы на миллионы (и даже нет доказательств, что это скилл, это может быть везение, т.к. их реально мало, если взять миллионы человек, среди них будут те, кто монетку 20+ раз подряд орлом выкинет), поэтому в деле тех же пенсионных сбережений не советуют рисковать деньгами, чтобы внезапно к 50-ти годам не получить минус и не остаться с собачьими консервами на обед :)

У вас могут быть какие угодно доказательства, но господин Марковиц занимался этим с 50-х годов и получил Нобелевскую премию :) На рынке США примерно каждый пятый хедж-фонд закрывается каждый год (но открываются сотни новых), хотя индексные и ETF с минимальными издержками живут чуть ли не с 50-х или 70-х. И последние годы лишь набирают обороты.
avatar
iddqd3n, Ничёси ты мне комплименты отвешиваешь. Это получается у меня доказательства на уровне нобелевского лаурята. Но тут есть много но. Первое, этот пруф приносит реальные деньги и публиковать его даже ради премии в 3 млн евро нет смысла так как работает с тем же успехом и % доходности на счетах от 500 млн рублей(пробывал). С другой стороны на рынке реально есть такие ситуации когда надо входить и держать долго от 3 месяцев до 5 лет, а если пытаться внутри этого тренда что то взять, то получишь прибыли в десятки раз меньше. Второе это тот факт что такие моменты для хорошего долгосрочного инвестирования очень редкие и по этому смелые утверждения что взять сейчас индекс и держать это плохо кончится. А не знаешь ли где на русском прочитать про процедуру подачи заявки на соискание премии Нобеля по экономике?:)
Самокритичный трейдер, 
Первое, этот пруф приносит реальные деньги

Чтобы статистически доказать, что это именно скилл/рабочая система, а не случайное везение, требуется огромный трек-рекорд. В десятки-сотни тысяч сделок.

держать долго от 3 месяцев до 5 лет

Это не «долго». 5 лет, это «средний срок», 3 месяца это меньше, чем «краткий срок». «Долго» — это 15+ лет (ну, 10+ для нетерпеливых). Применение портфельной теории рассчитано именно на такие сроки. 

Второе это тот факт что такие моменты для хорошего долгосрочного инвестирования очень редкие

Момент для начала «хорошего долгосрочного инвестирования» — это любой торговый день. Портфельный инвестор отказывается от выбора времени входа. См. http://assetallocation.ru/investment-strategies-06/ (рекомендую всю книгу) раздел «Новаторские исследования». Выбор времени входа определяет доходность инвестиций только на 2%. На 94% доходность определяется именно выбором распределения активов.

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

Эти споры шли на Западе 30-35 лет назад, с теми же аргументами. :) Победила портфельная теория.

1. Плохо кончаются как раз спекуляции:
http://smart-lab.ru/blog/321360.php
http://smart-lab.ru/blog/33064.php 

2. Утверждение делается не такое (кроме «сейчас»). А вот такое:

а) Инвестор составляет себе диверсифицированный портфель с учетом терпимости к риску и срока инвестирования. Срок имеет смысл от 10+ лет. Диверсификация осуществляется на уровне индексов (а не отдельных акций/облигаций, и даже не на уровне отраслевых индексов).

б) Ребалансировки портфеля осуществляются не чаще раза в год. Это отдельная большая тема — частота ребалансировок.

в) Кризис и падение рынков — это лучший возможный подарок портфельному инвестору в начале инвестиций. :) Так работают ребалансировки при правильно составленном портфеле — кризисы увеличивают долгосрочную доходность портфеля.

При этих условиях пассивный инвестор обыграет ~80% активно управляемых фондов (если не 90%). При этом, шанс того, что инвестор сможет выбрать активно управляемый фонд, который покажет долгосрочный результат лучше индекса — не более 1% (с учетом ошибки выжившего).

3. Баффет в 2008-м (на пике рынка) поспорил как раз на эту тему. И просто купил индекс против корзины хедж-фондов. Пока выигрывает у спекулянтов: http://assetallocation.ru/buffett_bet/
avatar
Dem Oppositus, «Чтобы статистически доказать, что это именно скилл/рабочая система, а не случайное везение, требуется огромный трек-рекорд. » — автором этой глупости не может быть зарабатывающий трейдер.
«Это не «долго». 5 лет, это «средний срок», 3 месяца это меньше, чем «краткий срок». «Долго» — это 15+ лет (ну, 10+ для нетерпеливых). Применение портфельной теории рассчитано именно на такие сроки. » — ещё одна глупость, автор которой не может быть зарабатывающим трейдером.
Dem Oppositus, Я вижу рассуждения математика, экономиста, лудомана, программиста, т.е. кого угодно, но только не успешного трейдера(рыбак рыбака узнает из далека). Почему тобой написан бред и глупости я доказывать не буду(у трейдеров есть поговорка: Если ты прав, то докажи это деньгами. Поставь на свою правоту). Но я могу доказать логический и фактами и прогнозами в прибыль, что я прав, но это будет труд по обучению трейдингу за который ты явно не собираешься платить. По этому может быть я надменный и циничный хам, но если Секрет молчал бы из вежливости в ответ к таким доводам, то я не молчу и в грубейшей форме называю глупость глупостью.
Самокритичный трейдер, 

Скажите, это вы по ссылке? https://investor.moex.com/trader2016?user=83456

Я к тому, что индекс ММВБ с 16 сентября сделал 7.4 процента против 3.4% у участника Infernus. Ровно то, о чем я говорю выше.

Вы бы ссылки почитали, которые я вам дал. Судя по скорости ответа — не читали.

P.S. А скажите, это правда ваш PAMM? Если Infernus — это вы и ПАММ ваш, то почему вы пишите от лица «зарабатывающих трейдеров»? И да, обучаться у вас я даже за бесплатно не буду.
avatar
Dem Oppositus, Хм, вместо того чтобы подвергнуть сомнению свои слова ты решил удариться в ещё большую глупость. Ну что ж я бессилен против инфантильной глупости. Но выйдя на торги с этим ты будешь платить этим фактом я и успокоюсь:)
Dem Oppositus, единственный нюанс здесь — отличие частника от фонда. Фонд стабильно каждый год забирает около 3-8% (в США, по данным Богла, хедж-фонды берут где-то 2% абонентка + 20% от дохода, наши ПИФы от 3,5+% за управление и далее), в сложных процентах выходит некисло. Частник, соответственно, эти деньги оставляет себе, но вынужден тратить время на анализ рынка. Это если он реально зарабатывает на спекуляциях выше индекса (с учётом дивов).

Т.е. если у него такой депозит, что условные «сложные» 5% в год — больше его з/п за год на другой работе, то это актуально. Например, специалистом в провинции можно около 400к в год зарабатывать. Соответственно, если его активы 8кк+, то можно и попыриться в монитор, а так проще работать и пассивно вкладывать.

Т.е. я к тому, что если человек решил поиграть с рынком в азартную игру и понимает риски — этот фокус может сработать (хотя бы повезти). Но давать деньги в активное управление с непонятным результатом и понятными издержками — 100% слив на длинной дистанции. Имхо в этом посыл в т.ч. и спора Баффетта.
avatar
Вот тут даже мультики есть на тему: http://assetallocation.ru/category/books_and_booklets/cartoon/ :)
avatar
Плюсанул. Как кто что на гитхаб выложит, прям руки начинают чесаться тоже выложить что-нибудь ) Заразно это )
это такой умный способ описать прошлое картинкой?
avatar
Zenon Eleates, 

Да, это он. Если кто-нибудь когда-нибудь научится описывать будущее, я это тоже запрограммирую. 
avatar
ради таких постов я и читаю смарт лаб, спасибо!
avatar
Петя Кукушкин, 

Пожалуйста. 

Программа будет развиваться, следите за блогом.
avatar
И смысл? Для рос рынка это хрень бесполезная.
avatar
0KDQuNC90LDRgg==, 

а) Не бесполезная
б) Даже если бесполезная, можно использовать для не- рос. рынка.
avatar
Dem Oppositus, бесполезная, и на западном скорее всего тоже, ему нужны постоянно растующие данные, а такое только на истории бывает. 
avatar
Dem Oppositus, спасибо вам большое за ваши труды. Считаю что продукт очень полезен, если понимать как это работает и не ждать от него волшебства :) Имхо, Он показывает ровно то для чего создавался.
У меня к вам вопрос, а что такое ЛРА для безрисковой ставки? Не до конца понял. 
avatar

Мишарин Юрий, 

Спасибо.

«ЛРА» — это я не знал, как лучше перевести Capital Allocation Line (CAL), перевел как «Линия распределения активов». Писал тут: http://smart-lab.ru/blog/371572.php#comment6661642 Также есть в Вики и в Инвестопедии.

Если совсем-совсем коротко.

1. У вас есть возможность вложить деньги по безрисковой ставке (т.е. волатильность 0) — скажем, в банк под 5%.

2. Или вы можете вложить их в рисковые (волатильные) активы — акции, облигации, портфель из фин. инструментов.

3. Строим эффективную границу портфелей (по Марковицу).

4. Строим касательную к границе, которая проходит через точку безрисковой ставки (5% дох., 0 риск).

Вдоль этой линии распределение активов между безрисковым вложением и рисковым будет давать максимальную возможную прибыльность при росте риска. Если распределять деньги между вкладом и любым другим портфелем, то риск будет больше при той де прибыльности (или что то же самое — прибыльность будет меньше при том же риске).

Практически это может пригодиться:

1. Консервативным инвесторам, которые хотят инвестировать в рисковые активы только часть капитала.

2. При завершении инвестиционного цикла (скажем, вот она пенсия, нужно сокращать риски) — можно ежегодно уменьшать % рисковых активов двигаясь вдоль линии CAL (скажем, ежегодно уменьшать вложения в рисковые активы на 5 или 10 процентов).

avatar
Мишарин Юрий, 

Да, еще. Портфель, в который «приходит» линия CAL имеет при этом лучший коэффициент Шарпа из всех. (Шарп будет в след. версии).
avatar
Dem Oppositus, спасибо вам за объяснение. все прочитал. Я начал пересчитывать руками действия калькулятора, и у меня не совпадают данные. 

Доходность не совпадает с тем что посчитано руками, при том что риск совпадает. Как у вас доходность рассчитывается?
avatar
Мишарин Юрий, 

Доходность считается «в лоб», без логарифмов и прочего. (с логарифмическими доходностями проблема в том, что чем больше доходность, тем больше погрешность). Но! Это не средняя доходность, а средняя геометрическая доходность. То есть — сложный годовой процента роста (точнее сложный «периодический» процент роста — дневной, месячный, годовой, зависит от данных).

Вот средняя:

Составляется «столбец» с доходностями по исходным данным. Делим текущее значение на предыдущее:

Исходник:
2
2.5
1.7
2.1
2.4
3

Доходности:
-
2.5 / 2 = 1.25
1.7 / 2.5 = 0.68
2.1 / 1.7 = 1.24
2.4 / 2.1 = 1.14
3 / 2.4 = 1.25

(их меньше на 1 шт. чем исходных значений)

Потом просто среднее арифметическое по доходностям:

(1.25 + 0.68 + 1.24 + 1.14 + 1.25) / 5 = 1.112

Отсюда вычитаем 1 и получается 11.2%

А вот средняя геометрическая:

Перемножаем доходности, и возводим их в степень 1/(кол-во интервалов доходностей):

(1.25 * 0.68 * 1.24 * 1.14 * 1.25) ^ (1/5) = 1.085

Отсюда, взяв 1-е значение и посчитав по сложному проценту, получим финальное значение:

2 * 1.085^5 = 3

СГМ доходность удобна для прогнозирования. Нужно узнать цену через 5 лет? Берем текущую и умножаем на СГМ^5. :)

Скорее всего вы посчитали среднюю доходность, она больше среднегеометрической.

Риск одинаковый потому, что риск — это разброс доходностей, и тут я использую именно среднюю доходность.

Наверное, добавлю еще 1 строчку. В таблицу. Будет «средняя дох.», «средняя с учетом сложного %» и «риск».
avatar
Мишарин Юрий, 

Добавлю, почему именно так считаю. Когда вы выбираете, куда инвестировать, вы смотрите на доходности в процентах. ОФЗ 9% годовых, вклад в банке 8.5% годовых, условный Газпром 12% годовых.

Это должны быть одни и те же «годовые проценты». Калькулятор сейчас показывает именно так, чтобы можно было сравнить со вкладом в банк и доходностью по облигациям.
avatar
Dem Oppositus, пересчитал все получилось. Благодарю, очень полезная информация.
avatar

теги блога Dem Oppositus

....все тэги



UPDONW
Новый дизайн