A package to get stock data from Yahoo Finance
Project description
Stockdex
Stockdex is a Python package that provides a simple interface to access financial data from Yahoo Finance. Data is returned as a pandas DataFrame.
Installation
Install the package using pip:
pip install stockdex
Usage
Create Ticker
object by passing the ticker symbol. Ticker objects are the main interface to retrieve stock data.
from stockdex import Ticker
# Pick arbitrary ticker
ticker = Ticker('AAPL')
Fundamental data from Yahoo Finance
API (fast queries through Yahoo Finance API):
# Price data (use range and dataGranularity to make range and granularity more specific)
price = ticker.price(range='1y', dataGranularity='1d')
# Current trading period of the stock (pre-market, regular, post-market trading periods)
current_trading_period = ticker.current_trading_period
# Fundamental data (use frequency, format, period1 and period2 to fine-tune the returned data)
income_statement = ticker.income_statement(frequency='quarterly')
cash_flow = ticker.cash_flow(format='raw')
balance_sheet = ticker.balance_sheet(period1=datetime(2020, 1, 1))
financials = ticker.financials(period1=datetime(2022, 1, 1), period2=datetime.today())
Fundamental data with criteria from Yahoo Finance
website (web scraping):
# Summary including general financial information
summary = ticker.summary
# Financial data as it is seen in the yahoo finance website
income_stmt_web = ticker.income_stmt_web
balance_sheet = ticker.balance_sheet_web
cash_flow = ticker.cashflow_web
# Analysts and estimates
analysis = ticker.analysis
# Data about options
calls = ticker.calls
puts = ticker.puts
# Profile data
key_executives = ticker.key_executives
description = ticker.description
corporate_governance = ticker.corporate_governance
# Data about shareholders
major_holders = ticker.major_holders
top_institutional_holders = ticker.top_institutional_holders
top_mutual_fund_holders = ticker.top_mutual_fund_holders
# Statistics
valuation_measures = ticker.valuation_measures
financial_highlights = ticker.financial_highlights
trading_information = ticker.trading_information
NASDAQ data from NASDAQ
website (web scraping):
Data on NASDAQ website gets updated more frequently than Yahoo Finance data. Below are some of the data that can be retrieved from the NASDAQ website.
# Data about quarterly and yearly earnings, updated on the same day as the earnings release (yahoo finance data is updated after a few days)
quarterly_earnings_surprise = ticker.quarterly_earnings_surprise
yearly_earnings_forecast = ticker.yearly_earnings_forecast
quarterly_earnings_forecast = ticker.quarterly_earnings_forecast
price_to_earnings_ratio = ticker.price_to_earnings_ratio
forecast_price_to_earnings__growth_rates = ticker.forecast_peg_rate
Stocks data from Digrin
(web scraping):
Data on Digrin website includes all historical data of the stock in certain categories, unlike Yahoo Finance which only provides the last 5 years of data at most.
# Complete historical data of the stock in certain categories
dividend = ticker.dividend
payout_ratio = ticker.payout_ratio
stock_splits = ticker.stock_splits
EU ETF data from justETF
(web scraping):
For EU ETFS, the isin
and security_type
should be passed to the Ticker
object. The isin
is the International Securities Identification Number of the ETF and the security_type
should be set to etf
.
etf = Ticker(isin='IE00B4L5Y983', security_type='etf')
etf_general_info = etf.etf_general_info
etf_wkn = etf.etf_wkn
etf_description = etf.etf_description
# Basic data about the ETF
etf_basics = etf.etf_basics
# Holdings of the ETF by company, country and sector
etf_holdings_companies = etf.etf_holdings_companies
etf_holdings_countries = etf.etf_holdings_countries
etf_holdings_sectors = etf.etf_holdings_sectors
Check out sphinx documentation here for more information about the package.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.