- Бэк-тестирование стратегий работы с commodity компаниями
- Расчет годовой доходности и стандартного отклонения
- Расчет доходности инвестиций
- Расчет средней годовой доходности (и приведение доходности к годовой)
- Есть общая доходность за период
- Есть начальная и конечная сумма
- Есть доходности по годам
- Есть доходность за неполный год
- Приведение дневной или месячной доходности к годовой
- Расчет годовой доходности с учетом пополнений и изъятий (движения средств)
- Расчет стандартного отклонения
Бэк-тестирование стратегий работы с commodity компаниями
Бэк-тестирование стратегий работы с commodity компаниями
При инвестировании в commodity компании* и оценке потенциала сверхважно учитывать текущую конъюнктуру (что мы и делаем в основном успешно с 2015)
Теперь, когда мы реализовали расчеты на сервере вместо excel, у нас появилась возможность делать это на расширенной выборке компаний и в полностью автоматическом режиме Мы проверили, как сработала бы наша система, если бы мы изначально, с 2015 года, делали это автоматически. Оказалось, что отлично и даже лучше, чем мы сработали по факту:
- результат бектеста — аккумулированная доходность 702%
- доходность каждый год > 30%
- аннуализированная доходность нахождения почти в каждой компании повышается относительно варианта «просто находиться в ней весь период»
* Commodity компании — все компании, продукция или услуги которых торгуются на бирже, в частности: Фосагро, Акрон, Северсталь, НЛМК, ММК, Евраз, Полюс, Петропавловск, Highland Gold, Globaltrans, Лукойл, Норникель, Русал, Русагро; в исследование (и инвестиционную стратегию) включены только частные компанииВведение – важность учета конъюнктуры, nowcastingНаш базовый подход к работе с commodity компаниями заключается в том, что справедливую стоимость компании надо оценивать в каждый отдельный момент времени — с учетом последних изменений в конъюнктуре на соответствующем рынке и времени, прошедшего с последней отчетности.
Условно, если прибыль сталелитейной компании в последний период была $ 1000 млрд, а цена на сталь была $ 400, то независимо от долгосрочного прогноза цен на сталь, при прочих равных (одинаковой капитализации) намного комфортнее находиться в акциях компании, если текущая цена на сталь стала $ 500, нежели в ситуации, когда она была $ 300. Намного комфортнее находиться именно потому, что справедливая фундаментальная стоимость компании в этом случае больше.
Почему больше? Казалось бы, при традиционном подходе инвестиционных банков стоимость определяется на базе долгосрочных DCF моделей и на базе долгосрочных прогнозов цен, а сиюминутные колебания цен на продукцию компании не должны влиять на справедливую стоимость компании. На самом деле, стоимость будет больше в нашем понимании в силу 2 факторов:
- Есть некоторая вероятность того, что произошедший сдвиг цен является фундаментальным (как, например, произошло с ростом цен на палладий в связи с развитием спроса со стороны электромобилей), а не временным (как иногда случается с ценами на уголь во время наводнений)
- По факту в моменте, с периода последней отчетности и скорее всего ближайшие месяцы, в ситуации позитивной конъюнктуры компания зарабатывает больше, а следовательно ее чистый долг будет ниже чем в ситуации, когда конъюнктура негативна
В этой связи представляется важным оценивать 2 параметра: сколько компания зарабатывает в моменте с учетом текущей конъюнктуры? Каков вероятно ее чистый долг в моменте с учетом конъюнктуры и числа дней, прошедших с даты последней отчетности?В мире в других сферах это называется Now Forecasting (или Nowcasting) — прогнозирование не того, что будет с компанией в будущем, а прогнозирование текущего состоянияСоответственно, если компания стоит дешево по мультипликаторам EV/EBITDA в текущей конъюнктуре, она может быть недоценена, если наоборот — переоценена. По факту бывает, что рынки как недооценивают, так и переоценивают сдвиг в конъюнктуре, и важно учитывать ее изменение единым системным образом.Пример: ММКОсенью 2019 г. цена ММК была 36, и крупные торговые дома рекомендовали ее продавать, а наша система показывала, что падение прибыли будет не таким большим, как закладывает рынок (с учетом того, что существенная доля продаж приходится на внутренний рынок, где цены практически не упали), и соответственно с учетом уже упавшей капитализации компания оценена слишком дешево. Мы совершали покупки по 36, и впоследствии распродавали позиции около 44.На базе этой стратегии мы работали систему расчета потенциалов. Мы по ней торговали с начала 2015 г., но актуализация анализа происходила в ручном режиме и с задержками, а покрытие было неполным.
Сейчас, когда мы ввели данные по динамике котировок, дивидендов и финансовых показателей в базу данных и автоматизировали расчет на сервере, у нас появилась возможность проверить, какими получились бы результаты стратегии при работе в ней в полностью автоматическом режиме с начала 2015 года, а также каковы были бы оптимальные параметры системы.Небольшое теоретическое исследование природы цен на commodities (с 1960 г.)Интересно также поразмышлять над вопросом: если есть определенный вид сырья и он сильно вырастает в цене (или падает) — с точки зрения долгосрочной модели, что лучше — закладывать то, что цена останется на этом измененном уровне, что она останется на среднеисторическом уровне или никак не учитывать изменение цены и использовать некоторый усредненный подход.
Для того чтобы ответить на этот вопрос, нужно понять, какой параметр мы хотим предсказывать. Вероятно, для целей оценки компании (как дисконтированную стоимость будущих денежных потоков), нам важно предсказывать именно дисконтированную среднюю цену за будущий период; в качестве такого периода возьмем 10 лет.
Мы взяли долгосрочную динамику месячных цен на основные commodities с 1960 г. и протестировали, какой из подходов лучше предсказывает эту будущую дисконтированную цену, которая по сути и важна для оценки компании.
Понятно, что ошибка всегда получалась большой — невозможно угадать, что будет следующие 10 лет. Для большинства commodities было оправдано усреднять текущую конъюнктуру со среднеисторическойНо оказалось при этом, что для всех ресурсов оправдано учитывать текущую цену в прогнозе (вместо того чтобы брать например среднюю за предыдущие 5 лет). А для большинства commodities было оправдано усреднять текущую конъюнктуру со среднеисторической (что мы и делаем в рамках своей стратегии). Кроме улучшения точности предсказания это позволяет еще и сокращать риски, не заходя в компанию на самом пике цен, это логично и подтверждает цикличность цен на сырье.
Не использовать усреднение с историческими ценами (а использовать просто текущие цены) оказалось наиболее логично для нефти и золота — то есть получилось, что движение по этим ресурсам исторически носило больше трендовый нежели циклический характер.
Таблица сравнения точности прогнозирования будущей цены на сырье в зависимости от выбора подхода – средний за 5 лет, текущая цена, среднее между текущей ценой и среднеисторической. Зеленым подсвечен подход, дающий минимальное среднее отклонение
Непосредственно Back-test стратегийНапомним суть нашей стратегии: для каждого дня и каждого эмитента мы рассчитываем ожидаемую EBITDA в текущей конъюнктуре (с учетом сдвига курса доллара, цен на продукцию и сырье компании), а также текущий чистый долг с учетом времени, которое прошло с даты последней отчетности.
Далее мы считаем вмененный мультипликатор EV/EBITDA в текущей конъюнктуре и считаем потенциал восстановления стоимости компании до исторических уровней мультипликатора EV/EBITDA (на уровне 75% перцентиля). После этого мы инвестируем в компании с наибольшим потенциалом
1. Для бек-тестирования мы использовали 2 подхода: 2. Оценка потенциала компаний по текущей конъюнктуре (инвестирование если потенциал больше порогового значения 20%) Оценка компаний по текущей конъюнктуре, если текущая хуже исторической и по средней между текущей и исторической, если текущая лучше исторической (с учетом того, что условие более жесткое — инвестирование в ситуации если потенциал больше порогового значения 10%).Оба подхода показали отличные результаты:
При расчете потенциалов на базе средней между текущей и исторической конъюнктурой:
703% — Аккумулированная доходность с начала 2015 г. 16.4% — Максимальная просадка не менее 35% — Доходность каждый год 18% — Доходность с начала 2020 года
Здесь представлено распределение, в какие компании система осуществляла бы инвестиции в каждый период
Доходность индекса Мосбиржи (без дивидендов) и портфеля
Максимальная просадка портфеля: -16.4 (2015−04−17)
Данная таблица сравнивает доходность при нахождении в бумаге по стратегии (когда потенциал выше порогового значания) и при нахождении в бумаге все время (Ann-d значит Annualized Yield) — как видно, почти для всех эмитентов нахождение в бумаге по стратегии повышает аннуализированную доходность относительно нахождения в бумаге все время (Ann-d full)
Результат при расчете потенциалов на базе текущей конъюнктуры:
743% — Аккумулированная доходность с начала 2015 г. 15.7% — Максимальная просадка не менее 29% — Доходность каждый год 26% — Доходность с начала 2020 года
Здесь представлено распределение, в какие компании система осуществляла бы инвестиции в каждый период
Доходность индекса Мосбиржи (без дивидендов) и портфеля
Максимальная просадка портфеля: -15.7 (2015−04−17)
Данная таблица сравнивает доходность при нахождении в бумаге по стратегии (когда потенциал выше порогового значания) и при нахождении в бумаге все время (Ann-d значит Annualized Yield) — как видно, почти для всех эмитентов нахождение в бумаге по стратегии повышает аннуализированную доходность относительно нахождения в бумаге все время (Ann-d full)
Выводы для текущей ситуации (7 марта 2020)
В целом, в ситуации растущего курса доллара существенно улучшаются ожидаемые финансовые результаты и потенциалы экспортеров (которые снижаются вместе с рынком)
В то же время сейчас, с падением рынка и ростом курса доллара — предварительно появляются потенциалы в таких компаниях как НорНикель, Highland Gold, Полюс, Фосагро, Полиметалл, Петропавловск, Фосагро, а также Глобалтранс (по которому конъюнктура не очень — просто дешево стоит)
Важное заявление Все указанное ни в коем случае не являлось результатом подгонов, и не было такого, что мы тестировали миллион стратегий чтобы получить такой результат, честно
В следующей статье мы также поделимся теоретическими предпосылками и результатами бек-тестирования стратегии инвестирования в потребительские компании (тоже неожиданно оказались отличными)
Источник
Расчет годовой доходности и стандартного отклонения
Автор: Дмитрий Никитенко
Дата записи
Чтобы вы всегда могли проверить данные, найденные в интернете, или рассчитать доходность собственных инвестиций, в этой статье я научу вас делать это правильно.
Приведенные здесь методы расчета подходят для любых электронных таблиц – Excel, Google Sheets или LibreOffice. А то, что не использует экселевские функции, можно просто считать в любом калькуляторе, например, встроенном в Google или Яндекс.
Расчет доходности инвестиций
Доходность в процентах за любой период можно рассчитать двумя способами:
- знакомая многим формула: (конец периода — начало периода) / начало периода = (110 — 100) / 100 = 10%;
- и более короткая версия: конец периода / начало периода — 1 = 110 / 100 — 1 = 10%. Мы будем считать доходность за год по второй формуле, потому что она немного короче и её результат в разах (до вычитания единицы) нам ещё пригодится.
Дальше для простоты мы будем называть её общей доходностью.
Расчет средней годовой доходности (и приведение доходности к годовой)
Под средней годовой доходностью обычно понимается среднегодовая ставка доходности, которая приводит начальную сумму вложений к конечной путем последовательного начисления этой ставки на результат предыдущего года.
Это не просто средняя арифметическая доходностей отдельных лет, а среднее геометрическое. Проще говоря, какую прибыль в процентах вы должны каждый год получать, чтобы из суммы А в итоге получилась сумма Б.
Средняя геометрическая доходность учитывает эффект сложного процента (капитализации процентов и возникающего в следствие этого экспоненциального роста), поэтому всегда будет меньше арифметической средней.
Другое название средней геометрической доходности из англоязычных источников, которое вам может встречаться — “compound annual growth rate” (CAGR).
Рассмотрим расчет годовой доходности для нескольких видов входящих данных, которые обычно имеют инвесторы. Под среднегодовой доходностью далее будем понимать именно среднюю геометрическую или CAGR.
Есть общая доходность за период
Если известно какую доходность принес актив за весь период, годовую доходность можно найти по формуле:
где 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%) и с ней рассчитать среднегодовую по формуле из предыдущего пункта.
Есть доходности по годам
Если у вас есть ряд доходностей за отдельные годы или вы можете найти их по ценам, то расчет среднегодовой доходности сводится к двум способам:
- поиску среднего геометрического этих доходностей, выраженных в разах;
- умножению этих разов для получения общей доходности и расчету как в предыдущих пунктах.
Первый вариант считать вручную нет смысла, поэтому лучше сразу обратиться к 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.
- ВСД (IRR) – для регулярных во времени пополнений или изъятий (например, каждый месяц, квартал или год);
- ЧИСТВНДОХ (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%.
Источник