不蓋你,台股 Python 量化交易真的只要三行!我創立 FinLab 以來,一直想要打造一個優質的 Python 回測服務,挑戰技術上的突破,為台灣的小資金融做出更進一步的貢獻。只需要 pip install finlab 就可以下載所有歷史資料、經過兩三行的選股程式碼,就可以模擬歷史績效囉!讓你用短短三天的時間,從零到一百,實戰台使用 Python。
為什麼要做 FinLab Python Package?
Python 最大的優點就是開源,有很多 ML 和資料分析的 Packages 可以使用,但 Python 永遠都不可能像 XQ、Multicharts 一樣方便。寫爬蟲、清洗資料、回測策略,最精簡也需要上千行程式碼才能完成。但使用 FinLab Package 只要三行:
而 Python 的量化平台在台灣,大部分是高手搭建自己用,很少會拿出來跟大家分享,原因很簡單,自己賺錢都賺不完了,何必做成 2C 的平台呢?開源出來對高手有任何好處嗎?沒有。而事實上,就算有人自告奮勇,製作這樣的平台,很多也都是以冷清或失敗收場(美國 Quantopian)。導致於一般想接觸量化投資的大眾,就只能使用 Python 以外的服務,例如 XQ、Multicharts、等。
目標是做出改變台灣投資環境生態的 Python Package
雖然這不會是我最賺錢的專案,但卻是最想要成功的專案,要如何讓此專案永續經營,並且跟使用者、開發者達到互利互惠,才是最終的目的。要是今天我不做了,FinLab 還是可以繼續下去,讓越來越多人用 Python 來選股。
從 2015 年,就想要做一個量化選股平台,但那時有太多的阻礙了,雲端技術都沒有到位,現在終於水到渠成了!有安裝的 Python 環境:Colab,有 cloud function、storage 在台灣可以節省成本,有 5G 加速下載歷史資料的時間,有 Kubernetes 平衡大家使用回測負載。只能說沒有這些功能,我們也沒辦法做出一個像樣的產品(感謝 Google XD)。
這只是一個起點,時代的腳步是不等人的,未來還有更多的領域想要整合,更多的技術,像是 AI、虛擬貨幣、期權等等。也需要大家的共襄盛舉,請督促我們更近一步將 Python 選股、投資交易發揚光大!
三步驟:台股創造 20% 年化報酬策略
現在就開始使用 FinLab Package 吧!其實安裝 FinLab Package 的方式非常簡單,只要打開 Google Colab,並且輸入
!pip install finlab
就可以開始使用了,接下來就來示範,三行獲得 20% 報酬率的選股策略!
1. 獲取資料
假如我們想要獲得台灣上市上櫃所有的股價,可以輸入:
from finlab import data
data.get('price:收盤價')
是不是真的超快超方便!別急,更精彩的還在後頭!
選股策略
假如我們想要選出創 300 天新高的股票,要怎麼選擇呢?只要一行即可完成:
position = close >= close.rolling(300).max()
position
當中的 position
是一個 True 或 False 的表,代表某檔股票當天是否創新高,創新高就為 True,反之則為 False。由於創三百天新高是滿高門檻的,所以可以看到上述股票都是呈現 False,也就是沒有創新高。
歷史回測
最後,假如我們真的想要回測,也就是驗證創新高 300 天的股票,持有一個月,會有怎麼樣的績效,我們可以用以下的方法模擬:
from finlab import backtest
backtest.sim(position, resample='M')
瞬間完成了回測。怎麼樣?沒有騙你吧,真的是三行(不算 import )完成了 20% 年化報酬的回測了。假如你一言不合想要直接用,介面也會顯示目前持股,只要照著持股操作,就可以獲得與模擬相似的報酬率。
這個在我 2015 年夢寐以求的簡便系統,如今已經完成,想知道模組如何使用可以參考這篇 入門文章 喔!我們有詳細的 API 文檔 與豐富的 資料庫 等你來探索。也可以追蹤我們 FinLab 獲得更多新知,來增加自己的量化交易報酬率吧!