Скорректированная цена закрытия от yfinance не совпадает с общим ответом от Yahoo Finance.

Вопрос или проблема

Я пытаюсь рассчитать месячную и годовую доходность в процентах для фонда, подобного 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, мои скорректированные процентные доходности немного отличаются:

Изображение с Yahoo Finance

Например, вы можете увидеть, что моя годовая доходность за 2019 год составляет 30,79%, но на Yahoo Finance она составляет 30,82%. Я понимаю, что это небольшое расхождение, но хочу понять, почему есть разница. Я заметил, что каждая другая полная доходность совпадает с Yahoo Finance, поэтому я беспокоюсь, что делаю что-то неправильно.

Ответ или решение

Разница между скорректированным закрытием (Adjusted Close) в библиотеке yfinance и общим доходом (Total Return) на сайте Yahoo Finance возникает из-за различий в методах расчета дивидендов и пересчетов акций.

Объяснение понятий

  1. Скорректированное закрытие (Adjusted Close): Это цена акций, которая уже учитывает все корпоративные события, такие как сплиты и выплаченные дивиденды. В yfinance, если вы используете параметр auto_adjust=True, он автоматически модифицирует цены с учетом этих факторов для более точного представления исторической стоимости акций.

  2. Общий доход (Total Return): Это более широкое понятие, которое включает не только изменение цены акций, но и повторное реинвестирование дивидендов. Yahoo Finance рассчитывает общий доход, что подразумевает, что все дивиденды, выплаченные акциями, реинвестируются обратно в фонд.

Причины расхождений

  1. Метод реинвестирования: Вычисления в yfinance могут не полностью учитывать полное воздействие реинвестирования дивидендов, поскольку вы, вероятно, рассчитываете доходности на основе скорректированных цен закрытия. Yahoo Finance, напротив, учитывает реинвестирование дивидендов в свои расчеты общего дохода.

  2. Временные интервалы: Разные источники могут использовать различные временные интервалы для расчета доходности. Yahoo Finance может учитывать разные временные рамки или разные методы усреднения, которые могут привести к небольшим расхождениям в конечных числах.

  3. Число выплаченных дивидендов в определённый период: Если в каком-то году дивиденды были выплачены в разные даты или в разных объемах, это может создать небольшие различия в расчете годового дохода.

Рекомендации

Чтобы лучше сопоставить свои данные с данными Yahoo Finance, вы можете:

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

Пример перерасчета

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

dividends = ticker.dividends
# Соединение с историей и перерасчет общего дохода аккуратно

Таким образом, учитывая все вытекающие аспекты, вы сможете добиться более точного совпадения с данными Yahoo Finance. Надеюсь, это поможет вам понять возникшие расхождения и улучшить ваши методы расчета!

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

Капча загружается...