3  Финансовые данные и их обработка

3.1 Получение финансовых данных

Любой количественный анализ начинается с данных. От их качества напрямую зависит достоверность результатов. Недаром в анализе данных существует выражение: «Что вложишь, то и получишь» (Garbage in — garbage out).

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

Yahoo Finance

Вот черновик раздела на русском языке для вашей книги «Количественные финансы» — глава «Получение данных из Yahoo Finance»:


Получение данных из Yahoo Finance с помощью yfinance

Для количественного анализа в финансах критически важно иметь доступ к историческим и фундаментальным данным компаний. Один из самых удобных способов получить такие данные — использовать библиотеку yfinance, которая предоставляет доступ к данным с Yahoo Finance.

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

3.2 Установка и подключение

Код
import yfinance as yf
AAPL = yf.Ticker("AAPL")
AAPL.financials.head()
Empty DataFrame
Columns: []
Index: []
Код
library(quantmod)
getSymbols("AAPL")
[1] "AAPL"
Код
tail(AAPL)
           AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
2025-08-15    234.00    234.28   229.34     231.59    56038700        231.59
2025-08-18    231.70    233.12   230.11     230.89    37476200        230.89
2025-08-19    231.28    232.87   229.35     230.56    39402600        230.56
2025-08-20    229.98    230.47   225.77     226.01    42263900        226.01
2025-08-21    226.27    226.52   223.78     224.90    30621200        224.90
2025-08-22    226.17    229.09   225.41     227.76    42445300        227.76

Для начала работы достаточно создать объект Ticker, указав тикер интересующей компании:

Код
AAPL = yf.Ticker("AAPL")

Теперь у нас есть доступ ко всей информации, связанной с Apple Inc.

Например, чтобы получить отчет о прибылях и убытках:

Код
print(AAPL.financials)
Empty DataFrame
Columns: []
Index: []

Список всех доступных атрибутов можно посмотреть через:

dir(AAPL)
Задание: анализ финансовых показателей

Давайте решим практическую задачу на основе полученных данных:

Цель:

  1. Найти значения выручки (revenue), чистой прибыли (net income) и операционных расходов (operating expenses) за последние годы.
  2. Представить данные в виде удобной таблицы.
  3. Оценить динамику чистой прибыли по годам и рассчитать её годовые темпы роста (или падения).
  4. Вычислить отношение долга к капиталу (debt-to-equity ratio), если оно доступно в отчетности.

Пример кода:

import pandas as pd

# Получение финансовой отчетности
income_statement = AAPL.financials
balance_sheet = AAPL.balance_sheet

# Транспонируем для удобства чтения
df = income_statement.T

# Отбираем нужные строки
df_selected = df[["Total Revenue", "Net Income", "Operating Expenses"]]

# Добавим расчет изменения чистой прибыли
df_selected["Net Income YoY %"] = df_selected["Net Income"].pct_change() * 100

# Добавим расчет коэффициента debt-to-equity, если доступны данные
debt = balance_sheet.loc["Total Liab"]
equity = balance_sheet.loc["Total Stockholder Equity"]
df_selected["Debt/Equity"] = (debt / equity).values

# Округлим и отобразим
df_selected = df_selected.round(2)
df_selected

Интерпретация:

  • Выручка отражает общий объем продаж.
  • Операционные расходы показывают, сколько компания тратит на свою деятельность.
  • Чистая прибыль — итоговая прибыль после всех расходов и налогов.
  • Debt/Equity — ключевой показатель финансовой устойчивости: чем выше, тем больше компания зависит от заемного капитала.