Python 財報月報股價爬蟲,台股資料庫終極解決之道!

下載資料不要再涓涓細流,每一檔股票慢慢下載,每一天重複慢慢等待,現在是 5G 的時代,大數據這個名詞也已經用到爛,偏偏台股這種小數據,蒐集起來大費周章,不合理吧?今天就來解決這個問題。

財經資料庫比較

假如我告訴你,請找一款 Package 可以讓你徜徉在資料海之中,比較市面上的股票資料庫,你可能會找到以下幾個:

CMoeny 貓頭鷹

CMoney 數據貓頭鷹之前好像還可以用,但是好像已經沒有在開發了,API 檔案裡面,所謂的「服務網站」好像沒有公開(或關閉了),所以不知如何使用。

TEJ 資料庫

不過要是你在學校,可以用 TEJ 可以下載到資料,但是所謂的「達人方案」也需要每月 8888 ,能不能讓你發發發發,就不確定了。

坊間 Python 教學

查看部落格教學來下載,像是 2016 年,我開始在網路上分享的時候,也是先介紹怎麼寫不同的爬蟲,流量也都滿好的,因為大家都想知道怎麼抓資料,但是抓下來後,網站改版爬蟲壞掉要修改?要怎麼整裡儲存?抓下來的資料要如何串接回測?這些都非常瑣碎,導致很多人停留在這個階段就已經放棄了。

FinMind

當前最好的解決方案,是跟 FinLab 名字很像的 FinMind Package ,秉持著開放的精神,讓你免費使用 600 次 request,每小時,其實已經很佛心了!但是台股有 2000 檔股票,代表你注定一小時沒辦法下載所有資料了。就算付費會員,資料下載下來,要怎麼合併整裡儲存,也是一番功夫呀

資料庫的掙扎

我當初想要建構一個回測平台,資料庫希望可以跟別人合作,但是資料庫廠商很保守,「這些資料要做什麼用的呢?」「你是要對外使用嗎?」「你先說你需要哪些資料,我們再來估價看看喔!」。對他們來講,資料是公司命脈,當然需要謹慎把關,商品本來就是要拉高價格,以提升毛利率。但對我來講,這些公開資料,應該是開放的,易取得的,可分享的假如大家都是想要賣資料庫,就注定了 Python 理財無法大眾化,因為大部分都卡死在資料處理這一關了,沒有一個好的資料庫,再好的回測系統也是枉然。

FinLab:從今天起,你有不同的選擇

2000 檔股票、15 年資料,一次下載,一勞永逸,一行打趴!

所以為了打造一個最好用的 Python 回測系統,只好先從資料庫開始了。我們真的也是花了非常多心力在做這個資料庫上,上百則條目,包含上市櫃興櫃的股價財報月報、三大法人、集保庫存,你想得到的幾乎都有啦。但如何讓大家「最快」的拿到「大量」資料,並且將伺服器「傳輸成本降到最低」?用 SQL 資料庫都絕對無法達成,所以我們連資料庫都一併重寫。就算我們手上已經有很多爬蟲,但我跟 Ben 還是經歷了將近一年的調整,終於做出了像樣的資料庫。最近還新增了加密貨幣的資料和回測,持續更新中。

這個市面上最好用的資料庫,只是為了回測而順便打造的!簡單說,這只是前菜,主餐還在後面!好的 Package,不需要多解釋,只是要兩行即可說明:

from finlab import data
data.get('price:收盤價')
image

接下來一系列,會帶你瞭解 FinLab Package 的好用之處!歡迎到 FB 粉專 追蹤我們,才不會錯過接下來的內容喔!或是頁面又上方註冊 Email ,有新的文章就會提醒你。

FinLab - 韓承佑

嗨大家好,我是韓承佑,FinLab創辦人,畢業於巴黎薩克雷大學資工博士,目前擔任臺灣量化交易協會 學術顧問、台北商業大學 創新育成中心 創業技術顧問與上市科技公司 量化交易顧問。當初,我喜歡寫程式、無意間因為軟體比賽接觸Fintech,從此開始了財經跟程式的學習之路。我們成立 FinLab 量化投資部落格,用自己研發的軟體,對台灣股市做大量快速的實驗。希望可以在量化投資的路上,當大家的「武器製造商」!