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

前篇最齊全的 Python 技術指標工具箱 talib (一)套件安裝與基本操作說明)講了如何安裝 talib 套件,以及如何用 talib 實作各式均線指標。

但其實 talib 內容非常豐富,如果每一篇文章逐一講解,都要可以出一本技術分析的書了。於是,這邊筆者準備教 Python 初學者如何閱讀套件說明文件。即使是 Python 高手,在遇到沒使用過的套件時,也是需要閱讀開發者提供的說明文件才能上手。但由於熟悉說明文件的邏輯思路,高手們對於操作套件語法的上手速度是遠高於初學者。

因此,這裡就藉著 talib 的入門教學,來教大家閱讀文件的思路吧!希望這篇文章看完之後,大家不僅學會 talib 的用法,也能夠學會閱讀套件文件。

好富投 1920x400
好富投 978x258

點我了解更多資訊


何搜尋 talib 說明文件

對於大部分的套件,在 google 搜尋「python talib document」就能找到說明文件。對於其他套件,把搜尋的關鍵字 talib 套件名稱更換,依循這個規則搜尋即可。

搜尋結果如下:運氣不錯,第一個搜尋結果就是了!

Py 101209161710
Py 101209161711

閱讀說明文件的方式:從官方範例著手

點擊剛才搜到的連結,我們首先會看到下面這張截圖的畫面:

我們來看看這個說明文件頁面有哪些資訊:首先是安裝(Installation and Troubleshooting),關於安裝的部分我們就先跳過,有興趣再自行閱讀,因為我們已經安裝好了。套件安裝和基本操作教學 在 talib 介紹的第一篇時已經介紹過了,還沒看過或對套件不熟的讀者可以點擊 連結 進行閱讀:

再來是 API 的部分。什麼是 API?講白話,就是「你告訴它你的需求,它就把你要的東西傳給你」。如果你會寫 Python 的 def 函數,應該可以很簡單理解這句話的意思。

不過話說回來,很明顯,這個連結點進去就會是我們想查詢的東西了!為什麼呢?因為我們想知道該怎麼使用這個套件計算技術指標,我們的需求是「得到指標的運算結果」,所以我想知道我該如何告訴它「價量資料、指標的時間長度參數」,它如何「把資料做計算,並把結果回傳給我」。

我們實際點進去,看到如下方截圖的畫面,上面開發者提供的程式碼範例,以及各個函數(Function)的文件說明連結。

首先看到幾個程式碼區塊,這對初學者相當友善,直接複製貼上就能執行它的範例,直接用 talib.SMA 並且把價格資料用 np.array 的格式傳入,就能計算出均線了。通常筆者會先試試看這些簡單的範例,確認輸出的結果是不是和預期的一樣。不過,眼尖的讀者應該發現一個嚴重的問題:這究竟是幾日均線?

沒錯,這個畢竟只是讓用戶快速入門的範例,我們想知道該如何傳入均線的長度參數。另外,除了 np.array 以外,這個套件還能支援其他傳入資料型態嗎?

閱讀說明文件的方式:詳細函數操作說明

這時,我們就可以往下看到幾個超連結的部分,如下方截圖:

從說明文件首頁也能看到這些連結。看得出來,不只是技術指標,talib 連型態辨識的運算都包圓了。(至於寫出來的型態是不是符合預期就另當別論了)

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

找到了!原來 talib 開發者統一把傳入的長度參數統一命名為 timeperiod,因此在傳入價格序列的後方填入 timeperiod=20,就能算出 20 均線了。20之前的 timeperiod 不一定要寫,總之單純寫 talib.SMA(close, 20) 也是行得通的。關於要不要寫傳入參數名稱,Python 有自己的一套規則,之後再來分享!

總之,有這個文件我們就知道如何操作 talib 函數了。

另外,有一些文件會寫得更嚴謹,例如載明傳入參數、回傳值的型態,偉大的 pandas 的文件和範例說明就是個典範!talib 沒有寫得這麼仔細,那我們就只能直接透過閱讀程式碼或是多多嘗試來確認了。像是 talib 其實支援 pd.Series 來傳入計算指標所需的價格資料。

總之,talib 我們就先介紹到這裡了。讀者趕緊用手邊的價格資料來試試看吧!


量化通粉絲社群,一起討論程式交易!

加入LINE社群量化交易討論群」無壓力討論與分享!

加入臉書社團「程式交易 Taiwan」即時獲取實用的資源!

QP66
QP66

具備逾十年交易經驗,研究交易資產橫跨股票、債券、外匯、原物料,以及加密貨幣。現為量化避險基金交易員,亦曾任職於資金規模逾百億的避險基金,以及在區塊鏈企業擔任顧問一職。

擅長從宏觀至微觀,由淺入深挖掘交易機會,並運用Python實現全自動化的投資組合管理。

文章: 24

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *