使用 Python 及 yfinance 函式庫繪製台灣加權指數資料

甘果-avatar-img
發佈於程式
更新 發佈閱讀 6 分鐘

[本文內容僅就一般性之證券投資公開資訊進行統計程式教學之範例,作者並不針對特定有價證券買賣提供建議]

  • 安裝類別庫

在進行類神網路建立模型時,經常會使用的例子是利用股票市場的資料建立模型。一般在取得股票資經常使用的 python 類別庫是「yfinance」。安裝的方式也是利用 pip 來進行。

pip install yfinance

接下來就是引入這個類別庫,

import yfinance as yf
print(yf.__version__)

要注意的是,因為「 yfinance」 是透過爬蟲的方式取得 yahoo finance 網站的資料,如果 yahoo 網站格式變更就必須要更新;所以要儘量使用最新版本的「yfinance」。目前使用的版本是 0.2.65

接下來,指定要取得的股票資料內容及區間。如果是台灣加權指數,它的代號是「^TWII」,如果是美國道瓊指標則是「^DJI」,台積電 ADR則是「TSM」;而台灣的個股,例如台積電(2330),那麼代號就是「2300.TW」。

from datetime import date
from datetime import timedelta
from dateutil.relativedelta import relativedelta

import numpy as np
import matplotlib.pyplot as plt

idName='^TWII'
# idName='^DJI'
# idName='TSM'
# idName='2330.TW'
endDate=date.today()
beginDate=endDate-relativedelta(months=12)
dataYahoo=yf.download(idName,start=beginDate,end=endDate,auto_adjust=True)
print(dataYahoo.columns)
  • 取得股票資料內容

從 yfinance 取得的資料包含'Close'(收盤),'High'(最高),'Low'(最低),'Open'(開盤),'Volume'(成交量)。例如,我們要把加權指數一年內的開盤及收盤的資料繪製出來。

#---------------
valueClose=dataYahoo['Close'].values.tolist()
valueOpen=dataYahoo['Open'].values.tolist()
nData=len(valueOpen)
x=np.arange(0,nData,1.0)
labelX=dataYahoo.index.strftime('%Y/%m/%d')
#----------------
plt.plot(x,valueOpen,'b-',label='Open')
plt.plot(x,valueClose,'r-',label='Close')

showTick=np.arange(0,nData,20)
plt.xticks(ticks=showTick,labels=labelX[showTick],
fontsize=8,rotation=45)
plt.legend(fontsize=10)
plt.ylabel('TW Stock Index')
plt.xlabel('Date')
plt.grid()
plt.show()
raw-image
  • 顯示中文的圖形

如果要使用中文來繪製完整的圖形及說明,則必須要先下載中文字形。Google有提供一些免費的中字字型,例如「NotoSansTC-VariableFont_wght.ttf」。下載解縮之後,放在跟程式同一個目錄就可以使用;所以,我們就可以將台灣加權指數以中文方式繪製出來。

# Google Chinese Font
# https://fonts.google.com/noto/specimen/Noto+Sans+TC?subset=chinese-traditional&script=Hant
import matplotlib.font_manager as fontManger
zhfont=fontManger.FontProperties(fname='NotoSansTC-VariableFont_wght.ttf')

plt.plot(x,valueOpen,'b-',label='開盤')
plt.plot(x,valueClose,'r-',label='收盤')

showTick=np.arange(0,nData,20)
plt.xticks(ticks=showTick,labels=labelX[showTick],
fontsize=8,rotation=45)
plt.legend(fontsize=10,prop=zhfont)
plt.ylabel('台灣加權指數',fontproperties=zhfont)
plt.xlabel('日期',fontproperties=zhfont)
plt.grid()
plt.show()
raw-image

[本文內容僅就一般性之證券投資公開資訊進行統計程式教學之範例,作者並不針對特定有價證券買賣提供建議]

留言
avatar-img
留言分享你的想法!
avatar-img
甘果的沙龍
4會員
28內容數
作者從國內主要的半導體公司退休,重回校園唸書;開始第三人生。分享退休投資規劃、科技產業經驗以及校園學習點滴。
甘果的沙龍的其他內容
2025/05/07
蘋果M系列晶片採用統一記憶體架構 (UMA),不同於NVIDIA CUDA常用的獨立顯示卡記憶體架構。本文以PyTorch 撰寫測試M4晶片CPU和GPU矩陣運算效能程式,結果顯示不管GPU或是CPU的結果,運算效能驚人,非常適合教學及小型研究用途。
Thumbnail
2025/05/07
蘋果M系列晶片採用統一記憶體架構 (UMA),不同於NVIDIA CUDA常用的獨立顯示卡記憶體架構。本文以PyTorch 撰寫測試M4晶片CPU和GPU矩陣運算效能程式,結果顯示不管GPU或是CPU的結果,運算效能驚人,非常適合教學及小型研究用途。
Thumbnail
2025/04/26
本文章說明如何在已安裝 Python 3.9 的 iMac mini 上設定 Python 虛擬環境,以及如何使用 venv 工具、安裝常用函式庫(如 numpy、pyTorch 等),並設定 Jupyter 連動不同 Python 虛擬環境。
Thumbnail
2025/04/26
本文章說明如何在已安裝 Python 3.9 的 iMac mini 上設定 Python 虛擬環境,以及如何使用 venv 工具、安裝常用函式庫(如 numpy、pyTorch 等),並設定 Jupyter 連動不同 Python 虛擬環境。
Thumbnail
2025/04/19
這篇文章說明如何在iMac mini M4上設定Jupyter Notebook作為遠端程式設計伺服器,方便使用iPad進行程式開發。文章涵蓋Jupyter Notebook的安裝、設定遠端連線以及建立可執行的shell script,讓伺服器能持續運作。
Thumbnail
2025/04/19
這篇文章說明如何在iMac mini M4上設定Jupyter Notebook作為遠端程式設計伺服器,方便使用iPad進行程式開發。文章涵蓋Jupyter Notebook的安裝、設定遠端連線以及建立可執行的shell script,讓伺服器能持續運作。
Thumbnail
看更多
你可能也想看
Thumbnail
對於剛接觸Python程式的使用者來說,要一口氣學會爬蟲可能相對困難,但若想即時且輕鬆獲得台股相關數據,你可以利用證交所所提供的API進行數據蒐集。只需要簡單幾行程式碼,就能輕鬆抓到台股上千支股票的每日資訊,是不是棒呆了!!
Thumbnail
對於剛接觸Python程式的使用者來說,要一口氣學會爬蟲可能相對困難,但若想即時且輕鬆獲得台股相關數據,你可以利用證交所所提供的API進行數據蒐集。只需要簡單幾行程式碼,就能輕鬆抓到台股上千支股票的每日資訊,是不是棒呆了!!
Thumbnail
本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。
Thumbnail
本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。
Thumbnail
介紹了股票投資時常用的市場面指標、基本面指標、技術面指標、籌碼面指標、財務面指標等。並聚焦於淨值、總市值和股本的相關補充內容。
Thumbnail
介紹了股票投資時常用的市場面指標、基本面指標、技術面指標、籌碼面指標、財務面指標等。並聚焦於淨值、總市值和股本的相關補充內容。
Thumbnail
本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。
Thumbnail
本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。
Thumbnail
本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。
Thumbnail
本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。
Thumbnail
本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。
Thumbnail
本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News