用Python合併台指期歷史數據並整理成秒線資料
2020/4/12更新:感謝網友Show於回應中指出期交所交易量是B+S,所以在第二段程式碼中把交易量除以二以更精準符合欄位名稱,同時修改複製程式碼斷行沒斷乾淨的問題。
前陣子被找去一起玩玩台灣股市的交易機器人,無奈空閒不多,都是有一搭沒一搭地搞。我這裡分到爬資料的工作,開始沒多久就驚訝於傳統市場的數據流通度遠低於加密貨幣市場,可能由於歷史資料龐大,可免費調閱的區間跟時間解析度都很低。5分、小時級的數據倒還容易取得,然而我被要求要有秒級的數據,解決方案好像只剩付錢跟人買或是從現在開始自己爬-兩者皆讓人不舒爽。(若誰知道有免費且細緻的股票歷史資料資源,拜請賜教!)尋尋覓覓後,發現台灣期貨交易所可以免費下載逐筆交易資料,實是餵機器狗的珍貴口糧,反正期貨也是適合進行機器交易的標的,就加減弄弄記錄下。
本篇目標
製作最近一個月的期貨大台秒線資料,包含計算過的"均價"與總量。
步驟包含:
1.下載csv逐筆數據
2.合併csv數據,同時進行大台資料篩選,因為逐筆數據包含所有期貨商品
3.將同一秒的價格以交易量做簡單平均,並且加總交易量
因為秒是很小的時間單位,本次整理不做成K線的四點資料。
期交所網站與資料下載
首先進入臺灣期貨交易所:https://www.taifex.com.tw/cht/index
然後連點30次下載csv...哎呀,好懶呀~一個月點30次而已,就不用寫爬蟲了吧~...最後再一併解壓縮到同一個資料夾。
註解:其實"期貨每日交易行情下載"那裡就能一次下載整理好的最近一個月指定期貨商品歷史資料,不過是每日報價為主。如果願意付點小錢的話,到首頁"交易資訊/交易歷史資料申請",可以直接得到涵蓋本文目標的整理過的歷史資料,只是想要達成目的沒有想要玩程式的讀者可以直接去試試。
環境
個人使用Anaconda/Jupyter notebook的Python,純粹因為整包一起裝好方便,又喜歡Jupyter notebook一邊筆記一邊跑數據的使用者介面,這種有很多中斷點的設計對於新手而且主要以處理數據為主的使用者來說非常友善。使用其他環境也不會有什麼差別,本篇作業很單純。