2023-12-07|閱讀時間 ‧ 約 8 分鐘

使用yfinance下載歷史股價[QuantTradingwithPython_1]


raw-image


 大家好。很高興在這個新的部落格上面。有機會能再跟大家一起討論交易的兩三事。未來我們將在這個新的地方上面;與大家一步一步地,建立起屬於我們自己個性化的量化交易平臺;敬請期待。

這是一個原本在心中構思很久的一個方案。但很遺憾的,在幾年前的環境,雖然Python的套件資源,是各種程式語言中最豐富的。但感覺上仍不足以支撐我們來完成需要的工作目標。但最近這幾年下來,心中有著很強烈的感覺,覺得時機已經成熟了。所以便有這個衝動想去完成它。

但這條路,在想像中必然不存在平坦這樣的癡心妄想。我們第一篇所要介紹的yfinance這個套件便遇到這樣的困境。但是這也是DIY的一項樂趣,不是嗎?坦白說。這已經是這第一篇介紹文章的第N次草稿。最終決定,倒著頭來的去介紹它。於是我們第一篇就是一個傳統的介紹yfinance方式。然後在未來,在其他的文章中;再來嘗試跟大家慢慢解釋。在第一篇接收數據這一方面,需要真真注意的以及要避開的坑是什麼?既然如此,就話不多說直接切入正題走起!對了,在繼續往下看之前,別忘了更新您的書籤頁到我們新的部落格。這樣以後才不會迷路。

Parkson撩交易 量化交易使用Python語言 Quant Trading with Python - 文章列表|方格子 vocus







 

使用Python yfinance套件獲取股票資料







yfinance是一個Python套件,可以用來獲取Yahoo! Finance的股票資料。這個套件有許多方便的功能,可以讓我們輕鬆地獲取股票歷史價格、股息、股票分割、公司資訊等資料。在這篇文章中,我會介紹如何使用yfinance來獲取股票資料。



安裝yfinance


首先,我們需要安裝yfinance套件。可以在終端機上使用以下命令來安裝:

pip install yfinance

 

獲取股票歷史價格

使用yfinance來獲取股票歷史價格非常簡單。以下是一個範例,可以獲取AAPL(蘋果公司)的股票歷史價格:

import yfinance as yf

 

# 獲取AAPL股票的歷史價格

aapl = yf.Ticker("AAPL")

hist = aapl.history(period="max")

print(hist)

 

這段程式碼會獲取AAPL股票的歷史價格,並將結果輸出到終端機上。period="max"的參數表示獲取所有可用的歷史資料。

yfinance還有許多其他的功能,可以獲取公司資訊、股息、股票分割等資料。以下是一個範例,可以獲取AAPL的公司資訊:

import yfinance as yf

 

# 獲取AAPL公司的資訊

aapl = yf.Ticker("AAPL")

info = aapl.info

print(info)

 

這段程式碼會獲取AAPL公司的一般介紹資訊,並將結果輸出。

獲取公司資訊

除了獲取股票價格之外,yfinance還可以獲取公司的相關資訊。例如,你可以輕鬆地獲取公司名稱、行業、市值、本益比等等。

以下是一個獲取AAPL公司資訊的範例:

import yfinance as yf

 

# 獲取AAPL公司的資訊

aapl = yf.Ticker("AAPL")

info = aapl.info

 

# 獲取公司名稱

name = info['longName']

print("公司名稱:", name)

 

# 獲取行業

sector = info['sector']

print("行業:", sector)

 

# 獲取市值

market_cap = info['marketCap']

print("市值:", market_cap)

 

# 獲取本益比

pe_ratio = info['trailingPE']

print("本益比:", pe_ratio)

 

這段程式碼會獲取AAPL公司的資訊,並分別輸出公司名稱、行業、市值和本益比到終端機上。

輸出如下:

import yfinance as yfIn [5]:aapl = yf.Ticker('AAPL') info = aapl.infoIn [6]:name = info['longName'] print("公司名稱:", name)公司名稱: Apple Inc.In [7]:# 獲取行業 sector = info['sector'] print("行業:", sector) # 獲取市值 market_cap = info['marketCap'] print("市值:", market_cap) # 獲取本益比 pe_ratio = info['trailingPE'] print("本益比:", pe_ratio)行業: Technology 市值: 2846108418048 本益比: 30.462963




獲取股息和股票分割資訊

yfinance還可以獲取股息和股票分割資訊。以下是獲取AAPL股票的股息和股票分割資訊的範例:

import yfinance as yf

 

# 獲取AAPL股票的股息和股票分割資訊

aapl = yf.Ticker("AAPL")

dividends = aapl.dividends

splits = aapl.splits

 

print("股息:", dividends)

print("股票分割:", splits)

 

這段程式碼會獲取AAPL股票的股息和股票分割資訊,並分別輸出。

獲取多支股票的資料

除了獲取單支股票的資料之外,yfinance還可以獲取多支股票的資料。以下是一個獲取AAPL、MSFT(微軟公司)和AMZN(亞馬遜公司)的股票歷史價格的範例:

import yfinance as yf

 

# 獲取AAPL、MSFT和AMZN的歷史價格

stocks = ['AAPL', 'MSFT', 'AMZN']

data = yf.download(stocks, start="2020-01-01", end="2021-01-01")

 

print(data)

 這段程式碼會獲取AAPL、MSFT和AMZN的股票歷史價格,並將結果輸出。

stocks = ['AAPL', 'MSFT', 'AMZN'] data = yf.download(stocks, start="2023-01-01", end="2023-05-31") print(data)



一旦獲取了股票資料,我們可以使用Python的資料處理套件(例如pandas和numpy)來進一步分析和處理這些資料。以下是一個範例,可以獲取AAPL股票的歷史價格,並計算出每日的報酬率:

import yfinance as yf

import pandas as pd

 

# 獲取AAPL股票的歷史價格

aapl = yf.Ticker("AAPL")

hist = aapl.history(period="max")

 

# 計算每日報酬率

hist['daily_return'] = hist['Close'].pct_change()

 

print(hist)

 

這段程式碼會獲取AAPL股票的歷史價格,計算每日的報酬率,並將結果輸出。

結論

在本篇文章中,我們介紹了如何使用yfinance來獲取股票資料。我們可以使用yfinance來獲取股票歷史價格、公司資訊、股息、股票分割等資料。此外,我們還介紹了如何獲取多支股票的資料以及如何處理獲取的資料。yfinance是一個非常方便的Python套件,可以讓我們更方便地獲取股票資料,希望本篇文章對你有所幫助!








分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.