使用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和雅虎财经对于从事金融行业的所有人来说都是必不可少的工具。

更新于:2023年7月18日

4K+ 次浏览

开启您的职业生涯

完成课程后获得认证

开始
广告