跳轉到

技術指標計算

支援 Talib 和 pandas_ta 上百種技術指標!只需要一行,幫你算出2000檔股票、10年的所有資訊!

使用設定

在使用這個函式前,必需要先安裝 talib 套件,可以參考 官方安裝教學 來安裝,支援 Windows、MacOS、Linux。

建議使用者可以先參考以下範例,並且搭配 talib官方文件,就可以掌握製作技術指標的方法了。

範例一

計算所有股票的 RSI 數值

from finlab import data
data.indicator('RSI', timeperiod=14)

上圖中,可以看到資料包含 NaN ,代表資料筆數不足,無法計算出數值,每一檔股票除了剛開始的 14 天外,幾乎都會有數值。

範例二

計算所有股票的 KD 值,由於 KD 數值是由 K 和 D 所組成,每一檔股票每天會有兩個數值,所以 data.indicator 會自動回傳兩個 pd.DataFrame,可以用 k, d = data.indicator('STOCH') 將 K 與 D 數值紀錄,之後用於比大小,例如 k > d

from finlab import data
k, d = data.indicator('STOCH')
k

範例三 (續) 選股

延續上述的範例二,假如我們希望將最近一天 K > D 值的股票清單列出來,可以用以下語法

(k > d).iloc[-1]
0015    False
0050     True
0051    False
0052     True
0053     True
        ...  
9951     True
9955    False
9958    False
9960     True
9962     True
Name: 2021-07-13 00:00:00, Length: 2269, dtype: bool

範例四 - Pandas_ta 技術指標

finlab 0.3.2 dev1 版本開始支援 Pandas_ta 計算技術指標。 套件安裝方法及指標選項請見 Pandas_ta官方文件

我們將 Pandas_ta 與 Finlab 整合,使用方式非常的簡單,就跟以前一模一樣,用一行簡短的程式,就可以計算兩千檔股票的數值:

from finlab import data

values = data.indicator('supertrend')

此時,程式會優先搜尋 TaLib 中是否有對應的函式,假如沒有的話,就會搜尋 Pandas_ta。可以讓你一次把所有股票的技術指標一次計算出來。缺點是 Pandas_ta 計算的速度比較慢,所以運算時要稍微等待一下。