Вопрос или проблема
Я пытаюсь рассчитать месячную и годовую доходность в процентах для фонда, подобного VSMPX. Я понимаю, что скорректированная цена закрытия из yfinance учитывает дробления и дивиденды.
Чтобы получить процентную доходность, я делаю следующее:
import yfinance as yf
ticker = yf.Ticker("VSMPX")
hist = ticker.history(start="2020-01-01", end=None, interval="1d", auto_adjust=True)
# Рассчитываем ежедневные, месячные и годовые процентные доходности
daily_returns = hist['Close'].pct_change()
monthly_returns = hist['Close'].resample('M').last().pct_change()
annual_returns = hist['Close'].resample('Y').last().pct_change()
# Сохраняем доходности в CSV файлы
daily_returns.to_csv("VSMPX_daily_adjusted_returns.csv")
monthly_returns.to_csv("VSMPX_monthly_adjusted_returns.csv")
annual_returns.to_csv("VSMPX_annual_adjusted_returns.csv")
Моя годовая доходность следующая:
2016-12-31 00:00:00-05:00,0.12694628348918013
2017-12-31 00:00:00-05:00,0.21189241900874567
2018-12-31 00:00:00-05:00,-0.05155696029590995
2019-12-31 00:00:00-05:00,0.3079293379439798
2020-12-31 00:00:00-05:00,0.21010764518963132
2021-12-31 00:00:00-05:00,0.2574150697504418
2022-12-31 00:00:00-05:00,-0.19501641528697433
2023-12-31 00:00:00-05:00,0.26013908084513204
Однако, когда я проверяю общую процентную доходность на сайте Yahoo Finance, мои скорректированные процентные доходности немного отличаются:
Например, вы можете увидеть, что моя годовая доходность за 2019 год составляет 30,79%, но на Yahoo Finance она составляет 30,82%. Я понимаю, что это небольшое расхождение, но хочу понять, почему есть разница. Я заметил, что каждая другая полная доходность совпадает с Yahoo Finance, поэтому я беспокоюсь, что делаю что-то неправильно.
Ответ или решение
Разница между скорректированным закрытием (Adjusted Close) в библиотеке yfinance и общим доходом (Total Return) на сайте Yahoo Finance возникает из-за различий в методах расчета дивидендов и пересчетов акций.
Объяснение понятий
-
Скорректированное закрытие (Adjusted Close): Это цена акций, которая уже учитывает все корпоративные события, такие как сплиты и выплаченные дивиденды. В yfinance, если вы используете параметр
auto_adjust=True
, он автоматически модифицирует цены с учетом этих факторов для более точного представления исторической стоимости акций. -
Общий доход (Total Return): Это более широкое понятие, которое включает не только изменение цены акций, но и повторное реинвестирование дивидендов. Yahoo Finance рассчитывает общий доход, что подразумевает, что все дивиденды, выплаченные акциями, реинвестируются обратно в фонд.
Причины расхождений
-
Метод реинвестирования: Вычисления в yfinance могут не полностью учитывать полное воздействие реинвестирования дивидендов, поскольку вы, вероятно, рассчитываете доходности на основе скорректированных цен закрытия. Yahoo Finance, напротив, учитывает реинвестирование дивидендов в свои расчеты общего дохода.
-
Временные интервалы: Разные источники могут использовать различные временные интервалы для расчета доходности. Yahoo Finance может учитывать разные временные рамки или разные методы усреднения, которые могут привести к небольшим расхождениям в конечных числах.
-
Число выплаченных дивидендов в определённый период: Если в каком-то году дивиденды были выплачены в разные даты или в разных объемах, это может создать небольшие различия в расчете годового дохода.
Рекомендации
Чтобы лучше сопоставить свои данные с данными Yahoo Finance, вы можете:
- Рассмотреть возможность инициализации расчета через полную таблицу дивидендов и учитывать их реинвестирование в коде.
- Использовать более длительный временной промежуток для анализа, чтобы усреднить влияние временных колебаний.
- Проверить точность наполнения данных, убедившись, что данные о дивидендах и дате имеют одинаковый временной стандарт.
Пример перерасчета
Если вы хотите учесть реинвестирование дивидендов в своих расчетах, вам потребуется дополнительно скачать данные о дивидендах и использовать их для переоценки итогового дохода. Это можно сделать следующим образом:
dividends = ticker.dividends
# Соединение с историей и перерасчет общего дохода аккуратно
Таким образом, учитывая все вытекающие аспекты, вы сможете добиться более точного совпадения с данными Yahoo Finance. Надеюсь, это поможет вам понять возникшие расхождения и улучшить ваши методы расчета!