使用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和雅虎財經對於從事金融行業的所有人來說都是必不可少的工具。
資料結構
網路
關係型資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP