Библиотека yfinance давно стала стандартным инструментом для работы с историей торгов на бирже. Пакет собирает данные с сервера Yahoo Finance и подает их в формате, удобном для pandas.
- Установка и импорт
- «`bash
- «`
- «`python
- «`
- Загрузка котировок
- «`python
- «`
- «`python
- «`
- Кумулятивная доходность вычисляется выражением
- «`python
- (df[‘Return’] + 1).cumprod() — 1
- «`
- Базовый анализ
- Историческая волатильность рассчитывается так:
- «`python
- «`
- Сводная статистика формируется вызовом
- «`python
- «`
- Линейный график строится строкой
- «`python
- «`
- Для загрузки пакета стикеров применяется
- «`python
- [‘AAPL’, ‘GOOG’, ‘NVDA’],
- )
- «`
- Полученная панель трансформируетсятся в доходности:
- «`python
- «`
- Фундаментальный блок:
- «`python
- «`
- Быстрая установка
- Получение котировок
- Дополнительные функции
Установка и импорт
«`bash
«`
«`python
«`
Пакет предлагает класс Ticker, принимающий тикерный символ. Объект Ticker обращается к API Yahoo и кэширует результат в session, снижая число запросов.
Загрузка котировок
«`python
«`
Метод history принимает period и interval. Выходной DataFrame включает Open, High, Low, Close, Adj Close, Volume. Аргумент auto_adjust=True возвращает значения, скорректированные на дивиденды и сплиты.
Разобрать ряд удобно через describe(), pct_change(), rolling(). Колонка Return создаётся как
«`python
«`
Кумулятивная доходность вычисляется выражением
«`python
(df[‘Return’] + 1).cumprod() — 1
«`
Базовый анализ
Историческая волатильность рассчитывается так:
«`python
«`
Сводная статистика формируется вызовом
«`python
summary = df.agg({‘Return’: [‘mean’, ‘std’, ‘min’, ‘max’]})
«`
Линейный график строится строкой
«`python
«`
Для загрузки пакета стикеров применяется
«`python
[‘AAPL’, ‘GOOG’, ‘NVDA’],
)
«`
Полученная панель трансформируетсятся в доходности:
«`python
adj = panel.xs(‘Adj Close’, level=1, axis=1)
«`
Матрица ковариаций производится функцией numpy.cov, оптимальные веса выводятся через scipy.optimize.minimize с целевой функцией Sharpe.
Фундаментальный блок:
«`python
«`
Методы quarterly_financial, recommendations, sustainability дополняют картину.
Результаты запросов хранятся кэшированными в памяти процесса, повторные обращения обходят сеть и ускоряют пайплайн. Асинхронный режим реализуется через yfinance.utils.get_json() с библиотекой aio http.
Гибкость yfinance вместе с pandas, matplotlib, seaborn и numpy формирует компактный стек для ресёрча торговых стратегий, отчётности и аудита гипотез без доступа к платным терминалам.
Библиотека finance предоставляет простой интерфейс для получения исторических рядов, текущих котировок и корпоративных событий из Yahoo Finance через Python.
Модуль основан на pandas и возвращает готовые DataFrame, пригодные для анализа и визуализации.
Быстрая установка
Пакет доступен в PyPI. Команда pip install yfinance —upgrade загружает актуальную версию. Для ускорения соединений ставят aiohttp, но синхронный вариант достаточно для большинства задач.
После установки импорт выполняется строкой import finance sif. Дополнительная строка import pandas aspd готовит обработку таблиц.
Получение котировок
Объект ticker создаётся вызовом ticker = yf.Ticker(‘AAPL’). Методы history() и fast_info возвращают данные. Пример: df = ticker.history(period=’1y’, interval=’1d’). Дата индекс находится в UTC.
Одновременная загрузка нескольких активов выполняется функцией yf.download([‘AAPL’,’MSFT’,’TSLA’], start=’2023-01-01′, end=’2023-12-31′, group_by=’ticker’). Результат—многомерный DataFrame с колонками Open, High, Low, Close, Adj Close, Volume.
Параметры interval=’1 m’, progress=False, threads=True управляют частотой, индикатором выполнения, числом потоков. Для локального кэша частота запросов существенно падает.
Дополнительные функции
ticker.dividends выводит серии дивидендных выплат, ticker.splits отражает дробления, а corporate_actions объединяет оба типа событий. Метод financials возвращает отчёты о прибыли и убытках, balance_sheet — активы и обязательства.
Функция get_income_stat(proxy=’http://proxy:8080′) поддерживает прокси-сервер, помогая обойти региональные ограниченияния. При срабатывании HTTP-429 добавляется задержка time.sleep(2) или сокращённый список тикеров.
Для визуализации пригоден Matplotlib: df[‘Close’].plot(title=’AAPL Close’), plt.show(). Экспорт выполняется df.to_csv(‘aapl.csv’, index=True, encoding=’utf-8′).
finance остаётся компактным способом интеграции финансовых потоков Yahoo Finance в Python-проекты без прямой работы c API.



