使用Python从雅虎财经获取财务数据
交易员、投资者和其他金融专业人士需要访问财务数据,因为投资研究依赖于它。雅虎财经是众所周知的财务信息来源之一,它提供最新的市场统计数据、新闻和分析。Python是一种强大而灵活的编程语言,可用于从雅虎财经提取财务数据,因此,在这篇文章中,我们将使用yfinance包来实现这一点。
安装和语法
在开始之前,我们需要安装yfinance库,它允许我们从Python访问雅虎财经数据。我们可以使用pip(Python包安装程序)安装yfinance。
pip install yfinance
安装yfinance后,我们就可以在Python脚本中使用它了。导入yfinance的语法很简单:
import yfinance as yf
算法
要从雅虎财经检索财务数据,我们首先需要创建一个yfinance Ticker类的实例,该实例代表特定的股票或其他金融工具。
我们可以通过将股票代码传递给yf.Ticker()构造函数来创建一个Ticker实例,如下所示:msft = yf.Ticker("MSFT")
获得Ticker实例后,我们可以使用其方法来检索财务数据。例如,我们可以使用history()方法检索股票的历史价格数据。
hist = msft.history(period="max")
period参数指定我们想要检索数据的时期。在本例中,我们检索股票的整个历史数据。
我们还可以使用Ticker类的其他方法来检索其他类型的财务数据,例如股息、拆股和财务报表。
常用函数
yf.Ticker(symbol) − 此方法用于为特定股票代码创建Ticker对象。它返回Ticker类的实例,可用于检索给定股票代码的各种财务数据。
ticker.info − 此方法返回一个字典,其中包含有关股票代码的详细信息,例如其名称、行业、板块、交易所以及其他财务指标,如市值、股息收益率、市盈率等。
ticker.history() − 此方法返回一个pandas DataFrame,其中包含指定股票代码在指定时间段内的历史OHLC(开盘价、最高价、最低价、收盘价)价格、成交量和其他财务数据。
ticker.recommendations() − 此方法返回一个pandas DataFrame,其中包含金融分析师对给定股票代码的最新建议,包括目标价格、建议评级和建议日期。
ticker.calendar() − 此方法返回一个pandas DataFrame,其中包含给定股票代码即将到来的收益、股息和其他重要事件。
ticker.sustainability() − 此方法返回一个pandas DataFrame,其中包含给定股票代码的可持续性值,例如环境、社会和治理 (ESG) 评分。
ticker.options − 此方法返回一个字典,其中包含给定股票代码的可用期权的到期日和其他详细信息。
更改股票代码以获取特定股票的财务数据。
一些常用的股票代码:
股票代码 |
股票名称 |
---|---|
AAPL |
苹果公司 |
MSFT |
微软公司 |
AMZN |
亚马逊公司 |
TSLA |
特斯拉公司 |
GOOGL |
Alphabet公司(谷歌) |
示例
import yfinance as yf import pandas as pd import matplotlib.pyplot as plt # Create a Ticker object for a specific stock symbol ticker = yf.Ticker("AAPL") # Get detailed information about the stock symbol info = ticker.info print("Detailed Information:") for key, value in info.items(): # format and indent the printed output print(f"{key}: {value}") print("-" * 10) # Get historical OHLC prices and other financial data history = ticker.history(period="1mo") print("\nHistorical Data:") print(history) # Plot historical prices plt.plot(history.index, history["Close"]) plt.title(f"{info['shortName']} ({info['symbol']})") plt.xlabel("Date") plt.ylabel("Price") plt.show()
输出
Detailed Information: address1: One Apple Park Way ---------- city: Cupertino ---------- state: CA ---------- zip: 95014 ---------- country: United States ---------- phone: 408 996 1010 ---------- website: https://www.apple.com ---------- industry: Consumer Electronics ---------- sector: Technology ---------- fullTimeEmployees: 164000 ---------- maxAge: 86400 ---------- priceHint: 2 ---------- previousClose: 168.54 ---------- open: 169.5 ---------- dayLow: 167.16 ---------- dayHigh: 170.92 ---------- regularMarketPreviousClose: 168.54 ---------- regularMarketOpen: 169.5 ---------- regularMarketDayLow: 167.16 ---------- regularMarketDayHigh: 170.92 ---------- dividendRate: 0.92 ---------- dividendYield: 0.0055 ---------- exDividendDate: 1675987200 ---------- payoutRatio: 0.1545 ---------- fiveYearAvgDividendYield: 0.92 ---------- totalRevenue: 387537010688 ---------- debtToEquity: 195.868 ---------- revenuePerShare: 24.084 ---------- returnOnAssets: 0.19569999 ---------- returnOnEquity: 1.47943 ---------- grossProfits: 170782000000 ---------- freeCashflow: 84729126912 ---------- operatingCashflow: 109189996544 ---------- earningsGrowth: -0.105 ---------- Historical Data: 2023-04-21 00:00:00-04:00 165.050003 166.449997 164.490005 165.020004 58311900 0.0 0.0 2023-04-24 00:00:00-04:00 165.000000 165.600006 163.889999 165.330002 41949600 0.0 0.0 2023-04-25 00:00:00-04:00 165.190002 166.309998 163.729996 163.770004 48714100 0.0 0.0 2023-04-26 00:00:00-04:00 163.059998 165.279999 162.800003 163.759995 45498800 0.0 0.0 2023-04-27 00:00:00-04:00 165.190002 168.559998 165.190002 168.410004 64902300 0.0 0.0 2023-04-28 00:00:00-04:00 168.490005 169.850006 167.880005 169.679993 55209200 0.0 0.0 2023-05-01 00:00:00-04:00 169.279999 170.449997 168.639999 169.589996 52472900 0.0 0.0 2023-05-02 00:00:00-04:00 170.089996 170.350006 167.539993 168.539993 48425700 0.0 0.0 2023-05-03 00:00:00-04:00 169.500000 170.919998 167.160004 167.449997 64566300 0.0 0.0
解释
此代码使用Python中的yfinance库来检索特定股票代码(在本例中为“AAPL”,代表苹果公司)的财务数据。然后,它打印有关股票代码的详细信息,检索历史OHLC(开盘价、最高价、最低价、收盘价)价格,并使用matplotlib库绘制历史价格。
导入必要的库:yfinance、pandas和matplotlib。然后使用yfinance的Ticker方法创建ticker对象,传入股票代码“AAPL”作为参数。
接下来,info变量被赋值为ticker.info方法返回的字典,该字典包含有关股票代码的详细信息,例如其名称、板块、市值、市盈率等等。然后,代码使用for循环和字符串格式化以可读的格式打印此信息。
history变量被赋值为ticker.history方法返回的DataFrame,该方法在指定时间段内(在本例中为过去一个月)检索指定股票代码的历史OHLC价格、成交量和其他财务数据。然后,以可读的格式打印此数据。
最后,使用matplotlib绘制历史价格,x轴表示日期,y轴表示收盘价。在显示该图之前,为该图添加标题和坐标轴标签。
应用
财务分析师 − 可以使用Python和雅虎财经数据来研究公司、决定购买什么以及关注他们的投资组合。
交易算法 − 使用来自雅虎财经的实时市场数据,Python可以用来构建自动买卖股票的交易算法。
数据分析 − 使用Python和雅虎财经数据可以对财务数据进行统计分析和可视化。
结论
对于金融专家、投资者和交易员来说,使用Python从雅虎财经获取财务数据是一个强大的工具。通过使用yfinance库和Ticker类,我们可以快速访问雅虎财经上列出的任何股票或金融工具的财务报表、股息信息、拆股信息和历史价格数据。由于评估和利用这些数据的机会无数,Python和雅虎财经对于从事金融行业的所有人来说都是必不可少的工具。