Блог им. NordFox

Как посчитать доходность портфеля инвестиций?

Коллеги, нужна ваша помощь!

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

Как быть, если покупал ценные бумаги не в один день, а на протяжении всего года? Хочу получить доходность по портфелю в целом, чтобы это можно было сравнить с банковской доходность. Пробовал использовать подсчет через ЧИСТВНДОХ, но выдает какой то бред.

Уверен, что вы сталкивались с подобной проблемой.

★6
75 комментариев
Я бы просто оценил прирост по сумме депозита на начало периода и на конец периода. Если в течение периода средства вносились, их доходность считать отдельно с момента вноса
avatar
Dobermann, доходность операции я прекрасно понимаю, но мне нужна именно доходность всего портфеля.

Пример: было 1000$, купил на на акций и через месяц продал их за 1100$ с учетом всех комиссий. Реинвестировал эти 1100$ и за 10 месяцев получил уже 1500$. Внес на счет дополнительно 1000$, вложил суммарные 2500$ и через месяц получил 2200$. Вопрос: как понять какая % доходность в годовых?
avatar
Кирилл Писцов, так в экселе же все можно подсчитать. Я в экселе считаю, по каждой операции в отдельности и итог по всему портфелю.
avatar
Биотехнолог, в экселе я тоже считаю каждую операцию, не понимаю, как потом свести их:(
avatar
Кирилл Писцов, я в одной ячейки считаю сумму по вложеным деньгам, а в другой сумму по закрытию сделок. Разность этих ячеек есть годовой результат.
avatar
Биотехнолог, ну ведь в этом случае не понятно какова твоя процентная доходность, поскольку когда ты докидываешь дополнительные деньги они увеличивают годовой результат.
avatar
Кирилл Писцов, да, тут сложнее. Но я не докидываю денег. К тому же я не на весь депо торгую.
Так а что по такой схеме разве не получиться посчитать если даже довносишь деньги? ты же считаешь вложенные деньги в активы в одной ячейке и результат по этим вложениям в другой.
avatar
Биотехнолог, да если не докидывать да и еще и все депозитом торговать, то вообще проблем никаких:)) Завидую.

Проблема в том, что за год проходит 50-70 сделок и суммы закупок, пополнений всегда разные, иногда вообще деньги лежат в Кеше и ждут удобного момента для входа. И вот чтобы учесть все эти моменты тут очень сложно по крайней мере для меня. Интересно, а как считают доходность например в доверительном управлении, там же точно такая же ситуация.

Меня поражает, что для этого вообще нужен Эксель, а готового приложения или сайта.
avatar
Кирилл Писцов, да, в твоем варианте сложнее. Тогда просто считай отношение всей заведенной суммы к итогу.
avatar
Dobermann, и я так делаю. Кроме того, это решает проблему дополнительных расходов на обслуживание (сделки, расходы на ввод-вывод, штрафы, дивы, списания по счёту и т.п.), которые почесноку так и так надо вносить в суммарную доходность-убыток. Ибо при сравнении с банковским депозитом мы сравниваем деньги, а не «виртуальные» проценты.
Чтобы подсчитать нужно знать дату внесения 1000$ в течение периода
avatar
Dobermann, да есть ощущение, что все дело в дате внесения, ее я не фиксировал системно
avatar
Кирилл Писцов, не нал ведь вносили, по документам банка легко взнос отследить
avatar
Dobermann, и то верно!
Иногда и нал, но его благо фиксил)
avatar
Для этого нужно поделить суммарный доход на средневзвешенную стоимость портфеля.

Суммарный доход — это конечная стоимость портфеля минус начальная минус все довнесения. То есть, 2200 (конечная)-1000 (начальная)-1000 (довнесения) = 200.

Средневзвешенная стоимость — можно прикинуть погрубее (с точностью до месяцев), можно поточнее (с точностью до дней). Для этого каждое довнесение нужно умножить на то, какую часть общего периода это довнесение было в портфеле. Начальная стоимость — это как довнесение, которое было весь период. В Вашем случае:
1000 (начальная стоимость)*1.000 (12/12=1.0 — какую часть оно было в портфеле) = 1000
1000 (довнесение стоимость)*0.083 (1/12=0.083 — довнесение было в портфеле 0.083 всего периода) = 83.
В сумме: 1083 — это и есть Ваша средневзвешенная стоимость.
Чтобы повысить точность — можете не количество месяцев считать, а количество дней.

200/1083=18.4% — доходность Вашего портфеля.
avatar
rtsi, выглядит разумно. Попробую так пересчитать портфель. Спасибо!
avatar
Вам нужно привести все пополнения к началу года, а потом посчитать общую годовую доходность со всеми пополнениями. На вашем примере:

Было 1000, через 11 месяцев стало 1500. Это 50% за 11 месяцев.

Теперь внесли еще 1000 и надо дисконтировать их на начало года:

1000 / ( 1 + 50% / 100% ) = 666.67

где 50% — это доходность портфеля на момент пополнения

Итого у вас на начало года с пополнением было 1666.67, а по итогам года получили 2200. Следовательно годовая доходность будет:

(2200 — 1666.67) / 2200 * 100% = 24.242%
(2200 — 1666.67) / 1666.67 * 100% = 32%

P.S. подкорректировал, т.к. по привычке считал в годовой доходности, но 50% — это доходность за расчетные 11 месяцев, а не 12.

P.P.S. мозг уже плохо работает на праздники, в знаменателе последней формулы должен быть начальный баланс с дисконтированными пополнениями, а не итоговый.
avatar
bstone, все промежуточные операции (продажи, покупки, реинвестиции, комиссии) — не имеют значения. Так как они влияют на конечную стоимость портфеля, то они автоматически учитываются в результирующей доходности.
avatar
rtsi, согласен, поэтому они нигде не фигурируют в расчетах, только пополнения.
avatar
bstone, что результат разительно отличается от 18.4%, которые показал rtsi
Начинается снова хаос в голове. Видимо пока идти есть оливье
avatar
Кирилл Писцов, ну 18.4% — это уж совсем в молоко. Вы даже на пальцах можете прикинуть для вашего простого примера. У вас депозит сначала вырос на 50% (с 1000 до 1500) потом уменьшился на 12% (с 2500 до 2200). Это 1*(1+0.5)*(1-0.12)=1.32. Т.е. в итоге +32%. 
avatar
Да, принцип расчета верный
avatar
Более верный у rtsi
avatar
Dobermann, да мне тоже так показалось
avatar

 $1 000,00  01.01.2018
 $                    -1 100,00  01.02.2018
 $                     1 100,00  01.02.2018
 $                     -1 500,00  01.12.2018
 $                     2 500,00  01.12.2018
 $                     -2 200,00  31.12.2018

=ЧИСТВНДОХ(A1:A6;B1:B6)*100

Это и дает 18,64 довольно похоже на правду. Но когда я пробовал это считать топорно на одной из моих сделок, то вот что выходило:

BABA  $                       2 020,15   $                               2 118,72 4,88% 02.01.2018 12.03.2018 69 26%  $                -     $                 99 

Доходнось получилась 4,88% в переводе на годовые 26%

а вот что получается при формуле =ЧИСТВНДОХ(A1:A2;B1:B2)*100:

/>/>
 $     2 020,15  02.01.2018
 $   -2 118,72  12.03.2018
   
        28,66     
Почему то больше на 2% и чем больше интервал и больше переменных, ошибка накапливается сильнее и сильнее
avatar
Кирилл Писцов, функция ЧИСТВНДОХ не умеет считать с пополнениями. Почитайте документацию к ней. Там сказано, что только первое значение является затратами/инвестицией, а все последующие значения — это выплаты. Ну и формула уравнения там есть. Это будет левый результат в вашем случае, т.к. пополнения учитываются как выплаты.
avatar
bstone, понял спасибо! значит я все таки инперически понял, что она не подходит:) А может быть есть какие-то сервисы, которые позволяют легко посчитать это, не городить куча Эксель формул.

Может у кого то есть шаблон, которым не жалко поделится?
avatar
инперически

Эмпирически. Зачем использовать слова, которые не можешь написать?
avatar
bstone, вообще-то умеет, и именно её и используют, если лениво считать средневзвешенную. Просто пополнения надо записывать с минусом :)
avatar
Денис Г., ну нет-с, она же будет их считать как потери, а не как пополнения. Это разные вещи.
avatar
bstone, эм… Я вынужден вас отправить читать документацию :) В столбце денежный поток все взносы идут с минусом, все снятия — с плюсом. Большинство примеров в инете представляют собой единый взнос и кучу платежей (снятий), но это не единственный вариант.

Стартовый взнос и все прочие нужно записывать с минусом. Если снятий не было, то единственным «снятием» будет результат — последняя ячейка, с плюсом. И всё отлично считает, при небольших процентах совпадает с расчётом относительно средневзвешенного точно, потом начинаются небольшие расхождения, но это норм.
avatar
Денис Г., я как раз читал документацию. Посмотрите внимательно на уравнение там. То что вы получаете некое число, добавляя в денежный поток взносы с минусом, не значит, что это правильное число :)

Так вот, если вы читали документацию, то должны понимать, что эта функция дисконтирует взносы по результирующей доходности, а не по доходности на момент внесения. Отсюда и левые результаты.
avatar
bstone, я понял, о чём вы, вы правы. Лол, если формула в инете верна, то у них в этой формуле ошибка, причём серьёзная :/ Отрицательные ячейки надо считать до последней даты, а не первой, а они всё считают до первой.

Но я теперь понимаю, почему у меня результат 3 года совпадает с «ручным» расчётом — у меня пополнения почти регулярные и на одну сумму, ошибка компенсируется.
avatar
Простота — высшая степень искусства. (Брюс Ли)
avatar
у Etsy расчёт верный. Добавлю свои 5 копеек:
Определитесь с целью подсчета:
— похвастать/подтвердить/убедится в верности своих представлений — это одно;
— оценить эффективность — это другое.
имхо я бы вычитал в любом случае 8-10% — это постоянный гарантированный доход в случае банковского депозита или приобретения ОФЗ. Если доходность выше этой суммы — это одно, но если ниже — эффективность отрицательная
avatar
Dobermann, ну понимать выше/ниже рынка это вообще не интересно, интересно именно насколько эффективность хороша, чтобы понимать, как растет/падет результативность год к году
avatar
Dobermann, чтобы год назад безрисково вложиться под 8-10%, надо было обладать машиной времени.
avatar
Денис Г., депозит Русский стандарт 10,5%
avatar
Dobermann, «безрисково» и «русский стандарт» для меня в одном предложении не употребимы :)
avatar
Денис Г., ИИС с ОФЗ типа 29011 8% + возврат НДФЛ 13%(если даже делить на 3 года = 4,3% плюс к ОФЗ)
avatar
Dobermann, 29011 год назад около 104-105 торговались + куча НКД из-за высокого купона. А потом купон дропнули оба раза в этом году, а космическая цена покупки так бы и осталась. Сидеть в них со 105 не так круто, там 8% по итогам года если и выйдет, то вообще в обрез. О 8-10% в ней можно было бы говорить, если урвать на годик-два раньше, там купоны по 50-60р были.

Ну а вычет и автор может его прибавить к своим акциям, его не ОФЗ дают :)
avatar
Денис Г., вопрос был 8-10% безрисково — я и привёл свой пример реальный. В банке безрисковость через АСВ, ОФЗ — есть с ПК доходом 26210, стоили по номиналу 6,8% купон + вычет НДФЛ. Просто 29011 более гарантирует рост инфляции на более длительный срок. Но суть была в том, что этот процент 8-10% — это альтернатива и альтернатива постоянная, как расходы у фирмы, когда себестоимость по Директ-костюмную считаешь, выкидываешь, тк один черт они есть независимо от наличия продаж и доходов. В чем смысл бегать как заяц, если в итоге черепаха придёт первой?
avatar
Долбанный Т9, Директ-костинг имел ввиду
avatar
Вот Так, доходность будет падать, т.к. пополнения, приведенные к началу года, будут увеличивать начальный депо, уменьшая итоговую доходность.
avatar
Вот Так, смотрите, если у вас в описанном примере. было не +50% через 11 месяцев, а -50%, то дисконтированное пополнение в 1000 к началу года будет равно 1000/(1-50/100)=2000. Т.е. стартовый баланс с пополнением будет 3000, в конце года 2200, значит годовой финрез будет минус 26.7%
avatar

Как-то так.
avatar
Ур Урычь, спасибо большое!
avatar
Кирилл Писцов, Да не за, что.
Интересная была задачка. По этой формуле он показывает эффективность годовых на сделку, то есть там где 175 дней он показывает 41 процент, но это не значит что вы в этой сделки заработали 41 процент чтобы понять действительный процент заработка нужно ставить везде 365 дней. 
Вообщем я думаю вы разберетесь.
С наступившим вас. 
avatar
Ур Урычь, да это я понял:) И вас с праздником.
Вот Так, эмм, нет, если пополнения не было после -50%, а итог был бы тот же (2200), то там получилось бы с 1000 до 500 (-50%), а потом с 500 до 2200 — это +240%, а в итоге за год с 1000 до 2200 — это +120%. Гораздо больше, чем -26.7% в случае, если было довнесение 1000 на просадке -50%.
avatar
Мне бы ваши проблемы… даже не хочу заморачиваться на подсчет убытков)))
avatar
Вот Так, если дисконтирование не по душе, то считайте относительную доходность между довнесениями, а потом посчитайте по формуле:

[ (1 + доходность_1% / 100%) * (1 + доходность_2% / 100%) *… — 1 ] * 100%

Для исходного примера получилось бы:

доходность_1 = 50% (с 1000 до 1500)
доходность_2 = -12% (с 2500 до 2200)

[ (1 + 50/100) * (1 — 12/100) — 1 ] * 100 = 32%
avatar
Вот Так, ну мы же здесь рассматриваем пример, когда у нас фиксирована итоговая доходность и формула верно учитывает тот факт, что довнесение на просадке (как и на хаях) уменьшает годовую доходность. 

В общем случае, когда сумма заработка меняется после довнесения, итоговая доходность просто не зависит от довнесений. Она зависит только от ваших трейдов.
avatar
Вот Так, тот самый экселевский ЧИСТВНДОХ в руки)
Вот Так, мне нравится твой подход) с наступающим!
Пробовал использовать подсчет через ЧИСТВНДОХ, но выдает какой то бред
Нужно правильно использовать.
Весь приход писать с минусом. Весь расход с плюсом. И сумму на дату расчета с плюсом. И будет все нормально считать.
avatar
Пример: было 1000$, купил на на акций и через месяц продал их за 1100$ с учетом всех комиссий. Реинвестировал эти 1100$ и за 10 месяцев получил уже 1500$. Внес на счет дополнительно 1000$, вложил суммарные 2500$ и через месяц получил 2200$. Вопрос: как понять какая % доходность в годовых?
01.01.2018    -1000        
31.01.2018    1100        
31.01.2018    -1100        
30.11.2018    1500        
30.11.2018    -1500        
30.11.2018    -1000        
            

01.01.2019    2200        0,185006657
(даты условные, т.к. число дней в месяце).

По чиствндох рекомендует считать цб. Так что все потоки будут дисконтироваться к ней. А нужен это расчет только для сравнения доходностей, т.е. важна однообразность методики.
avatar
Евгений Петров, я не видел, где именно ее рекомендует использовать ЦБ, но что-то мне подсказывает, что он рекомендует использовать ее по назначению, т.е. для подсчета доходности при нерегулярных выплатах. Доходность с довнесениями — это другая песня. 
avatar
bstone, тут интересно как велика экселевская погрешность расчета с довнесениями. На экономическое поведение она не влияет. Такая прошлая доходность по портфелю, другая, экономическое поведение ведь не изменишь. А сравнение с другими идет по чиствндох.
Евгений Петров, для меня погрешность существенная. В примере выше 18.5% по ЧИСТВНДОХ против реальных 32% годовых. Если вас просят сравнить с другими результатами по ЧИСТВНДОХ, то это можно делать только если в вашем кэшфлоу не было довнесений.
avatar
bstone, фигасе. :-) Протрезвею, пересчитаю. :-) Что-то как-то много. :-)
Подумал, почитал. Возможно чиствндох и не считает как надо. Хотя я считаю по ней довольно давно, с проблемами не столкнулся.
Просьба. Кто съел собаку, покажите где там ошибка. А то я сейчас готовлюсь к новому году и не очень соображаю. :-)
avatar
Евгений Петров, я уже показывал где ошибка. Она не в самой функции, а в том, что ее применяют не к тому, для чего она предназначена. Ошибка будет тем больше, чем сильнее доходность между пополнениями будет отличаться от итоговой доходности.
avatar
Можно задать вопрос: когда болит зуб, что правильнее:
— искать в интернете способы его лечения
— спросить у знакомых/специалистов
— сходить к стоматологу
????
Я думаю ответ и так очевиден.
Так почему когда задница горит, мы не рассуждаем а бежим к профи, а когда не горит — дергаемся кто куда.
В данном примере профи — это теория статистики, по ней и Эксель спецы делают, и rtsi по ней же применил расчёт
avatar
Dobermann, теорию еще и применять надо правильно. С этим и у «спецов» проблемы бывают.
avatar

Составил для себя пример сравнения функций и не могу понять некоторые моменты. Может быть кто-то в личку может ответить? 

1. Почему на длинном периоде результаты двух функций полностью сходятся?
2. Почему на периоде в месяц они настолько сильно расходятся?
3. Какой все таки способ использовать для расчета доходности? Честно говоря пытался понять по вашей переписке в комментариях почему ЧИСТВНДОХ неверно применять, но к сожалению четко понять не смог.
4. Считать доходность за месяц с помощью этих инструментов — бессмысленное действие?
5. Как рассчитать коэффициент Шарпа имея только готовую доходность? Или как тогда высчитывать ежемесячную доходность для него?

Ниже скрин с примером и формулами.

 

avatar

теги блога Кирилл Писцов

....все тэги



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