Python 从雅虎财经获取金融数据
交易、投资和其他金融专业人士需要访问金融数据,因为投资研究依赖于它。雅虎财经是最著名的金融信息来源之一,提供最新的市场统计数据、新闻和分析。Python 是一种强大而灵活的编程语言,可以用来从雅虎财经提取金融数据,因此在本文中,我们将使用 yfinance 包来实现这一目的。
安装和语法
在开始之前,我们需要安装 yfinance 库,它允许我们从 Python 访问雅虎财经的数据。我们可以使用 pip,即 Python 包安装程序,来安装 yfinance。
pip install yfinance
一旦我们安装了yfinance,我们就可以在我们的Python脚本中开始使用它。导入yfinance的语法很简单−
import yfinance as yf
步骤
- 从Yahoo Finance获取金融数据,首先需要创建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() - 此方法返回一个包含指定股票符号在指定时间段内的历史OHLC(开盘价、最高价、最低价、收盘价)价格、成交量和其他金融数据的pandas DataFrame。
-
ticker.recommendations() - 此方法返回一个包含金融分析师对给定股票符号的最新建议的pandas DataFrame,包括目标价格、建议评级和建议日期。
-
ticker.calendar() - 此方法返回一个包含给定股票符号的即将到来的盈利、股息和其他重要事件的pandas DataFrame。
-
ticker.sustainability() - 此方法返回一个包含给定股票符号的可持续性值的pandas DataFrame,如环境、社会和治理(ESG)评分。
-
ticker.options - 此方法返回一个包含给定股票符号的期权到期日期和其他详细信息的字典。
更改股票符号以获取特定股票的金融数据。
一些常见的股票符号包括 –
股票代码 | 股票名称 |
---|---|
AAPL | 苹果公司 |
MSFT | 微软公司 |
AMZN | 亚马逊公司 |
TSLA | 特斯拉公司 |
GOOGL | 谷歌公司 |
示例
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和Yahoo Finance数据研究公司,决定购买什么股票,监控他们的投资组合。
-
交易算法 - 利用Yahoo Finance的实时市场数据,可以使用Python构建自动购买和卖出股票的交易算法。
-
数据分析 - 可以使用Python和Yahoo Finance数据对金融数据进行统计分析和可视化。
结论
对于金融专家、投资者和交易员来说,使用Python从Yahoo Finance获取财务数据是一个强大的工具。借助yfinance库和Ticker类,我们可以快速访问任何在Yahoo Finance上列出的股票或金融工具的财务报表、股息信息、拆分信息和历史价格数据。对于在金融领域工作的每个人来说,Python和Yahoo Finance是一个重要的工具,因为评估和利用这些数据的机会是无穷无尽的。