Код
import yfinance as yf
AAPL = yf.Ticker("AAPL")
AAPL.financials.head()Empty DataFrame
Columns: []
Index: []
Любой количественный анализ начинается с данных. От их качества напрямую зависит достоверность результатов. Недаром в анализе данных существует выражение: «Что вложишь, то и получишь» (Garbage in — garbage out).
Перед тем как строить модели, рассчитывать риски или оптимизировать портфели, необходимо загрузить финансовые данные из надежных источников и привести их в пригодный для анализа формат.
Вот черновик раздела на русском языке для вашей книги «Количественные финансы» — глава «Получение данных из Yahoo Finance»:
yfinanceДля количественного анализа в финансах критически важно иметь доступ к историческим и фундаментальным данным компаний. Один из самых удобных способов получить такие данные — использовать библиотеку yfinance, которая предоставляет доступ к данным с Yahoo Finance.
Yahoo Finance содержит широкий спектр информации: котировки акций, дивиденды, финансовую отчетность компаний (отчеты о прибылях и убытках, балансы, отчеты о движении денежных средств), данные по опционам и рекомендации аналитиков.
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)Давайте решим практическую задачу на основе полученных данных:
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