手把手程式實作分享系列: Python 技術指標工具 Talib 介紹及安裝

Walter Chiu
Bandai的機器學習筆記
6 min readDec 26, 2023

1. Talib是什麼?

TA-Lib(Technical Analysis Library)是一個用於技術分析的Python套件,它提供了大量的技術分析指標和模式識別函數,可用於金融市場和股票交易的量化分析。TA-Lib的全名是Technical Analysis Library,是一個開源項目,旨在為交易者和開發者提供一個強大且廣泛使用的技術分析工具。

以下是TA-Lib的一些主要特點和功能:

  1. 技術分析指標: TA-Lib提供了大量常用的技術分析指標,包括移動平均線(Moving Averages)、相對強弱指標(Relative Strength Index,RSI)、MACD(Moving Average Convergence Divergence)等。這些指標對於分析市場趨勢和價格動態非常有用。
  2. 支援全金融商品: TA-Lib可以應用於不同的金融市場,包括股票、期貨、外匯等。這使得它成為跨不同資產類別進行技術分析的理想工具。因為技術分析的理論不限定在股票,所以只要有時間序列的產品,都可以用talib來完成技術指標的計算。
  3. 易於使用: TA-Lib的API相對簡單,使用者可以輕鬆地將其應用於他們的交易策略和分析工具中。
  4. 開源和廣泛支持: TA-Lib是一個開源項目,它得到了廣泛的支持和貢獻。這意味著開發者可以查看代碼、提出改進建議,並參與到項目的開發中。

2. 安裝 Talib 套件

如果你是直覺性的用:

pip install talib

那你應該已經失敗了,對吧~

這個套件的安裝,跟一般套件比較不一樣,因為TA-Lib是一個包含C語言代碼的庫,而且它的Python包通常是通過SWIG(Simplified Wrapper and Interface Generator)生成的。

步驟 1:在安裝TA-Lib之前,要先去他們網站下載安裝檔
https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib

搜尋 TA-Lib,找到對應的 Windows 系統和 Python 版本的 whl 檔,下載放到任何一個目錄下。如下方截圖:

步驟 2:打開 Windows 的 cmd,如果是使用 Anaconda的讀者可以直接打開 Anaconda Prompt 進入環境。

步驟 3:在終端機中,到你下載的資料夾中。像是下圖的話,就是到C 槽的下載資料夾裡面。

步驟 4:輸入 pip install,後面加上你的 .whl 檔案全名,例如: pip install TA_Lib‑0.4.24‑cp37‑cp37m‑win_amd64.whl,即可成功安裝 talib!雖然終端機會跳出很多 warning 訊息,但有出現 Successfully installed TA-Lib-0.4.24 就表示安裝成功囉!

3. 匯入 talib 套件

Python 套件都一樣,使用前記得先 import

import talib

4. 簡單的範例

我們多使用二個套件,pandas跟yfinance。
yfinance可以讓我簡單的拿到一些美股的資料;大家可以替完成自己喜歡的資訊。

然後一個簡單的程式碼: talib.SMA(data[‘Close’], timeperiod=20)
就可以拿到20日線了,非常簡單。

import talib
import pandas as pd
import yfinance as yf

# 下載股票價格數據
symbol = "AAPL"
start_date = "2022-01-01"
end_date = "2023-01-01"
data = yf.download(symbol, start=start_date, end=end_date)

# 計算20日簡單移動平均線
data['SMA_20'] = talib.SMA(data['Close'], timeperiod=20)

# 打印數據
print(data[['Close', 'SMA_20']])

結論如下:

移動平均線的計算方式也有很多種,像是sma,ema,wma.trima,這幾種均線對價格波動的敏感度都有所不同,大家可以自己嘗試看看。

這些算法在talib裡面都有一併給大家,也是簡單的算式就可實現。

sma = talib.SMA(data["close"], 60)      # 簡單移動平均線 
ema = talib.EMA(data["close"], 60) # 指數移動平均線
wma = talib.WMA(data["close"], 60) # 加權移動平均線
trima = talib.TRIMA(data["close"], 60) # 三角移動平均線

5. Talib 說明文件

直接去他們官方網站:

https://ta-lib.github.io/ta-lib-python/doc_index.html

我自己覺得重點是下面的指標說明,裡面有100多個指標可以使用。

理論上你想的到的,應該都包在裡面了。就跟哥爾羅傑的大秘寶一樣。

點擊第一個 Overlap Studies,看看文件寫了什麼:

像是第一個布林通道,就會一行簡單的出現上中下線。

upperband, middleband, lowerband = BBANDS(close, timeperiod=5, nbdevup=2, nbdevdn=2, matype=0)

是不是真的很簡單~ 大家趕快去試試看吧~

--

--

Walter Chiu
Bandai的機器學習筆記

台大電機博士候選人,主要學習電腦科學、資訊教育,關心各種時事議題,歡迎一起討論有趣的專題 dodo0095@hotmail.com