Рубрики
Инвестирование

Расчет годовой доходности и стандартного отклонения

Чтобы вы всегда могли проверить данные, найденные в интернете, или рассчитать доходность собственных инвестиций, в этой статье я научу вас делать это правильно.

Приведенные здесь методы расчета подходят для любых электронных таблиц – Excel, Google Sheets или LibreOffice. А то, что не использует экселевские функции, можно просто считать в любом калькуляторе, например, встроенном в Google или Яндекс.

Расчет доходности инвестиций

Доходность в процентах за любой период можно рассчитать двумя способами:

  1. знакомая многим формула: (конец периода – начало периода) / начало периода = (110 – 100) / 100 = 10%;
  2. и более короткая версия: конец периода / начало периода – 1 = 110 / 100 – 1 = 10%. Мы будем считать доходность за год по второй формуле, потому что она немного короче и её результат в разах (до вычитания единицы) нам ещё пригодится.

Дальше для простоты мы будем называть её общей доходностью.

Расчет средней годовой доходности (и приведение доходности к годовой)

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

Это не просто средняя арифметическая доходностей отдельных лет, а среднее геометрическое. Проще говоря, какую прибыль в процентах вы должны каждый год получать, чтобы из суммы А в итоге получилась сумма Б.

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

Другое название средней геометрической доходности из англоязычных источников, которое вам может встречаться – “compound annual growth rate” (CAGR).

Рассмотрим расчет годовой доходности для нескольких видов входящих данных, которые обычно имеют инвесторы. Под среднегодовой доходностью далее будем понимать именно среднюю геометрическую или CAGR.

Есть общая доходность за период

Если известно какую доходность принес актив за весь период, годовую доходность можно найти по формуле:

(x + 1) ^ (1 / n) – 1,

где x – доходность за весь период в процентах, n – количество полных лет в периоде, ^ – возведение в степень.

Например, если за 3 года доходность составила 30%, то среднегодовая доходность будет равно не 30% / 3 = 10%, а (0.3 + 1) ^ (1 / 3) – 1 = 9,14%.

Проверим: начальная сумма 100, конечная – 130:

  • 100 + 100 * 9,14% = 109,14
  • 109,14 + 109,14 * 9,14% = 119,12
  • 119,12 + 119,12 * 9,14% = 130

Прибавление единицы нужно, чтобы перевести известную доходность из процентов в разы, а вычитание в конце – для перевода обратно из разов в проценты (напомню, что 30% = 0.3, в Excel можно записать оба варианта, разницы нет).

В Excel (или других электронных таблицах) возвести в степень можно либо с помощью того же знака ^, либо функцией СТЕПЕНЬ((x + 1); (1 / n)) – 1.

Есть начальная и конечная сумма

Если у вас есть результат инвестиций за известный период в виде сумм на начало и конец этого периода, то всё, что нужно сделать – это узнать общую доходность (формула та же, из начала статьи – 130 / 100 – 1 = 30%) и с ней рассчитать среднегодовую по формуле из предыдущего пункта.

Есть доходности по годам

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

  1. поиску среднего геометрического этих доходностей, выраженных в разах;
  2. умножению этих разов для получения общей доходности и расчету как в предыдущих пунктах.

Первый вариант считать вручную нет смысла, поэтому лучше сразу обратиться к Excel и воспользоваться функцией СРГЕОМ (GEOMEAN). В неё надо передать либо список значений, либо диапазон ячеек, в которых у вас записаны годовые доходности, выраженные в разах.

Для примера посчитаем так инфляцию в России за последние 5 лет:

  • 2014: 11,35% + 1 = 1,1135
  • 2015: 12,91% + 1 = 1,1291
  • 2016: 5,39% + 1 = 1,0539
  • 2017: 2,51% + 1 = 1,0251
  • 2018: 4,26% + 1 = 1,0426

СРГЕОМ(1,1135; 1,1291; 1,0539; 1,0251; 1,0426) – 1 = 7,2%

СРГЕОМ(A1:A5) – 1 = 7,2% (представим, что в ячейках те же доходности в разах)

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

(1,1135 * 1,1291 * 1,0539 * 1,0251 * 1,0426) ^ (1 / 5) – 1 = 7,2%

Есть доходность за неполный год

Пока мы рассмотрели только полные годовые периоды, но среднегодовую доходность можно считать и для неполных лет. Например, какой-то актив за 4 года и 6 месяцев принес вам 50%. Чтобы аннуализировать эту доходность (привести к среднегодовой, в степень нужно подставить 4,5:

(0.5 + 1) ^ (1 / 4,5) – 1 = 9,43%

Привести месяцы неполного года к дробной части можно просто разделив их на 12:

  • 6 / 12 = 0,5;
  • 8 / 12 = 0,67 и так далее.

По аналогичному принципу можно взять доходность за прошедшее количество дней в году и привести её к годовой:

(x + 1) ^ (252 / n) – 1, где x – доходность за эти дни в процентах, n – количество дней, а 252 – количество торговых дней в году.

Если доходность за 100 дней года составила 3%, то среднегодовая будет равна:

(0,03 + 1) ^ (252 / 100) – 1 = 7,7%.

Вместо торговых дней можно брать и календарные, то есть 365 – выбор зависит от ваших данных и целей расчета.

Приведение дневной или месячной доходности к годовой

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

  • для дневной доходности: (x + 1) ^ 252 – 1, где x – доходность в процентах и 252 – число торговых дней в году;
  • для месячной доходности: (x + 1) ^ 12 – 1.

Например, приведение дневной доходности 0,03% может выглядеть так: (0,0003 + 1) ^ 252 – 1 = 7,9%. Естественно, то же самое можно делать для недельной или квартальной доходности (возводя в 52 или 4 степень).

При этом аннуализированное СКО рассчитывается по другой формуле: x * SQRT(252), то есть среднедневную волатильность нужно умножить на квадратный корень из количества торговых дней (либо месяцев и т. д.).

Расчет годовой доходности с учетом пополнений и изъятий (движения средств)

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

Если просто рассчитать доходность способами выше, она окажется искаженной этими движениями денег. Например, если на начало года у вас было 100 000 руб., потом вы купили активы на 80 000 руб., а в конце года стоимость портфеля составила 200 000 руб., это не значит, что вы заработали 200000 / 100000 – 1 = 100%.

В таких случаях есть несколько способов посчитать свой финансовый результат, устранив движения средств из показателя доходности. Наиболее удобный из них – это расчет внутренней нормы (или ставки) доходности (internal rate of return, IRR), потому что для этого есть две функции в Excel.

  1. ВСД (IRR) – для регулярных во времени пополнений или изъятий (например, каждый месяц, квартал или год);
  2. ЧИСТВНДОХ (XIRR) – для нерегулярных, что и применяется в реальной жизни.

Всё, что нужно сделать, это передать в функцию ЧИСТВНДОХ диапазоны ячеек с суммами и датами, при этом пополнения будут положительными числами, а изъятия отрицательными (или наоборот), а последней должна быть текущая стоимость портфеля, как если бы вы сняли всё в последний день. Если те 80 000 руб. мы положили 6 июля, то для нашего примера это будет выглядеть так:

  • 2019-01-01: -100000
  • 2019-07-06: -80000
  • 2019-12-31: 200000

Годовая доходность: ЧИСТВНДОХ(B1:B3; A1:A3) = 14,56%.

В колонке A были даты, в B – суммы.

Расчет стандартного отклонения

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

Для этого нам понадобится функция СТАНДОТКЛОН (STDEV), куда достаточно просто передать диапазон ячеек с доходностями. Она рассчитывает СКО для выборки из генеральной совокупности, что нам и нужно.

Если взять пример с инфляцией в России за последние 5 лет, получим такой результат:

СТАНДОТКЛОН(11,35%; 12,91%; 5,39%; 5,39%; 4,26%) = 3.96%.


  • Есть вопросы? Задайте их в комментариях.
  • Если статья была полезной, я буду благодарен за подписку на Boosty или перевод.
  • Чтобы не пропустить новые статьи, подпишитесь на Telegram, Twitter, Facebook, VK или на рассылку анонсов по почте:

14 ответов к “Расчет годовой доходности и стандартного отклонения”

При расчете среднего геометрического опечатка за 2017 год, там в результате 7,2% должно получиться.

Не знаю как учитывать дивиденды и купоны при подсчете с помощью XIRR. Их надо заводить как пополнение счета или вообще не учитывать?

Ну я это и имел в виду. Если реинвестируете в тот же день, можно вообще не учитывать – они будут учтены в сумме вывода денег в конце. А если в другой день, поступление дивидендов следует добавить как вывод, а реинвестирование – как ввод.

Считаю первый раз свою доходность портфеля за прошлый год и получается два совершенно разных результата формулой ЧИСТНВДОХ в экселе и по методу самостоятельного расчета средних активов как описано в этой статье в пункте 3 https://stockuper.ru/manual/raschet-dohodnosti/ по идее должна получится одинаковая доходность. Не могу понять в чем ошибка. Не мог бы помочь, посмотреть мои расчеты? Они в экселе по ссылке. https://yadi.sk/i/8eI_HfauSMwvrw

Все понял в чем ошибка я отсчет поставил с 2019 года. Можно удалить комментарий.

Дмитрий решил считать доходность портфеля по месяцам, то есть смотреть каждого 1 числа месяца как поменялся баланс и доходность относительно точки отсчета. Решил считать от 1 января этого года и если с январем никаких проблем не было просто взял и посчитал общую доходность за месяц как описано в начале статьи, то с февралем возникли проблемы. В нем я занес крупную сумму денег на счет, что сильно искажает подсчет доходности, как посчитать правильно? Корректно ли будет применить функцию xirr для отрезка не год, а 2 месяца? А если период больше года, ей все равно за какой период считать главное подставить начальную и конечную дату отрезка или она приводит доходность к годовой?

Подскажите пожалуйста если не сложно.)

XIRR считает аннуализированную доходность, то есть, если дать на вход месяц, функция экстраполирует это на год, что вряд ли является желаемым результатом. Чтобы считать месячные, проще исключить влияние пополнений, то есть считать простую взвешенную по времени доходность (TWR). Для этого придется рассчитать доходность по ценам активов внутри месяца до и после дня пополнения в разах и умножить полученные разы друг на друга, после чего вычесть единицу, что даст процентный прирост/убыток.

Например, если пополнение было 14 числа: с 31 числа предыдущего месяца по 14-ое текущего доходность составила 106 руб. / 101 руб. = 1,0495, с 14 по 30-ое 0,98, доходность за месяц = 1,0495 * 0,98 = 1,0285 – 1 = 2,85%.

Такую доходность можно сравнивать с любыми бенчмарками, другими портфелями. Доходность с учетом движения средств же про другое – это фактическая доходность инвестора. Её все-таки обычно считают в процентах годовых, для чего подходят внутренняя норма доходности (XIRR) или модифицированный метод Дитца.

TWR по моему не то что мне надо, да и честно говоря не понял как по нему делать подсчет. Мне же нужно не ровно за один месяц считать доходность, а все время увеличивающуюся на месяц, то есть сначала за один, дальше за 2, за 3 месяца и так далее.

Я решил подсчитывать как описано в этой статье в третьем пункте – https://stockuper.ru/manual/raschet-dohodnosti/, по моему этот способ правильно называется метод Дитца.

Хотелось бы понять будет ли точным такой подсчет доходности?

Можно просто умножать разы TWR, получится накопленная доходность за месяц, два и т. д.

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

Если вы пытаетесь выяснить именно доходность инвестора (то есть своих движений на рынке, а не только портфеля), математически модифицированный метод Дитца точнее простого метода Дитца. При этом метод дает результат за HPR (holding period return, то есть результат получается за конкретный период времени, что вроде вам и нужно). А метод IRR почти такой же по точности, но результат его аннуализирован (дает среднегодовую ставку, последовательно применяя которую к начальной сумме можно получить конечную).

Да мне кажется метод Дитца мне подходит, может потому что я в нем разобрался в противовес TWR. Мне нужна статистика моей доходности с итерациями между ее фиксацией раз в месяц от 1 января и до кукушкиных времен, пока не надоест считать так.) Построю на одном графике несколько кривых мой портфель, имоекс, снп500, насдак, индекс биотехов и буду смотреть в динамике как они себя веду у себя в экселе, красота по моему.)

Можете сказать по ссылке выше в 3 пункте описан модифицированный метод Дитца? А то я не уверен.

Похоже на модифицированный, есть использование средневзвешенного капитала в знаменателе.

Ну вот для сравнения с бенчмарками и надо либо TWR считать, либо симулировать движения денег в эти бенчмарки как в портфеле (посмотрите что проще), потому что иначе теплое с мягким будете сравнивать.

Добавить комментарий