最齊全的 Python 技術指標工具箱 talib (一)套件安裝與基本操作說明

安裝 talib 套件

通常我們以一般的安裝套件方法,嘗試直接 pip install talib 去安裝,但這樣 talib 往往會安裝失敗。

關於 talib 的安裝,如同我們 google 搜尋得到的答案,我們也確實嘗試過透過以下方式安裝最為穩妥。

步驟 1:點擊連結前往一位加州大學老師提供的 Python Packages:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib

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

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

步驟 4:在終端機中,輸入指令 cd /d,在 /d 後,加上一個的空格,後面放上剛才下載存放 .whl 檔案的路徑。這時候終端機上,你的工作目錄應該已經移動到存放 .whl 的路徑了。假設我們剛才把 .whl 檔放在 D 槽的 Download 目錄下,如下方所示,這表示我們成功把工作目錄移動過去了!

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

匯入 talib 套件

與 pandas、numpy 等 Python 強大套件相同,使用前記得先 import。

import talib

實作常用均線指標

假設我們有一個比特幣價量資料 csv,檔名叫做 BTCUSDT.csv,我們把它讀取進來,並且指定 timestamp 欄位為 DataFrame 的 index,程式碼和印出結果如下:

import pandas as pd 
data = pd.read_csv(“BTCUSDT.csv”, index_col=”timestamp”, 
parse_dates=True)

可以明顯看得出來,這是比特幣的一分線歷史價量資料。

幾種常見的均線如下:

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

這幾種均線對價格波動的敏感度都有所不同,我們有空再來詳述。總之,我們計算完後,若想確認結果是否正確,可以運行下方程式碼,初步以繪圖來進行檢查:

import matplotlib.pyplot as plt
plt.figure(figsize=(12,6)) 
plt.plot(data["close"],label="close") 
plt.plot(sma,label="sma") 
plt.plot(ema,label="ema") 
plt.plot(wma,label="wma") 
plt.plot(trima,label="trima") 
plt.legend() 
plt.show()

假設這裡我們只取最後 500 分鐘的資料來繪製,結果如下:

藍線是每分鐘的收盤價,我們從圖中可以觀察到,隨著收盤價的波動,最敏感的是EMA,其次是 WMA,而後依序是 SMA、TRIMA。這跟它們的計算方式有關。

至於很多讀者會問:哪一個均線比較好用?坦白說,我們沒辦法說用EMA比較好,還是用SMA比較好,因為他們本來就沒有好不好之分,而是要回歸均線的邏輯:均線是過去一段時間所有買方的平均成本價於是我們接著就能思考,我們想要用均線來衡量什麼市場狀態?怎麼樣計算才比較符合我們想像中的樣態?

均線這個話題再聊下去就跑題了。總之,Talib 能做的不僅如此,下一篇我們再來繼續介紹 talib 能實作的更多指標吧!

延伸閱讀:最齊全的 Python 技術指標工具箱 talib (二):閱讀套件說明文件的邏輯就這麼簡單


量化通粉絲社群,定期分享實用資源
✅加入LINE匿名群組量化通QuantPass」無壓力討論與分享!
✅追蹤量化通的粉絲專頁量化通QuantPass」即時獲取實用的資源!

程式交易課程推薦
📣 Python 程式交易系列線上課程,手把手開始用程式交易打造自己的被動收入!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。