iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 2
2

蒐集資料源

程式交易的基礎就是要足夠的資料源做為參考,無論是用在分析建模,還是交易時的運算,甚至是盤中避險,總是逃不脫歷史資料跟即時資料的互相參佐,因此如何穩定取得需要的資料源,是程式交易者必須掌握的基本功。

資料源分類

通常分為二大類

  1. 靜態資料源
    通常來自歷史資料等,以 XML / CSV / XLS / JSON / HTML 等方式提供,常用於擬定策略參考時,作為參考值使用,或者用於歷史回測。
  2. 動態資料源
    通常來自即時報價等,以 CSV / JSON / HTML 等方式提供,常用於即時交易時計算技術線或指標等用途。

資料源協定

通常分為二大類

  1. TCP 協定
    常封裝為 ActiveX / COM / DDE 等元件
  2. HTTP / HTTPS 協定
    以網頁或 API 等方式提供

蒐集前準備

  1. 發送 HTTP / HTTPS 要求及處理 HTTP / HTTPS 回應
  2. 蒐集代理伺服器清單
    ProxyNova
    GatherProxy
    Free Proxy List
  3. 透過代理發送 HTTP / HTTPS 要求
    避免頻繁查詢而被阻擋存取。
  4. 資料編碼判斷
    證交所與期交所不少資料仍使用 big5 編碼,尤其是目前九百多檔上市股票名稱中,有超出 big5 編碼的中文字,必須使用 big-hkscs 編碼才能顯示。
  5. 確認合適的資料儲存方式
    如使用 csv 儲存,或使用 MariaDB / MongoDB 等資料庫儲存。
  6. 資料解析技巧
    正確解析 HTML / JSON / CSV / PDF 並取出所需資料。
  7. 資料清整技巧
    去除無用資訊,將資料內容格式化,例如將 1080917 轉為 2019-09-17。

執行環境

不建議直接使用 Command Prompt 和 PowerShell,建議改用 Cmder 執行,避免輸出編碼問題,還能提供色彩提示。

系列進程

明天開始到第 12 天會集中說明資料蒐集相關的套件使用與開發,從第 13 天開始券商 API 串接與常見技術指標的介紹與計算等內容。


團隊系列文:

CSScoke - 金魚都能懂的這個網頁畫面怎麼切 - 金魚都能懂了你還怕學不會嗎
Clarence - LINE bot 好好玩 30 天玩轉 LINE API
Hina Hina - 陣列大亂鬥
King Tzeng - IoT沒那麼難!新手用JavaScript入門做自己的玩具
Vita Ora - 好 Js 不學嗎 !? JavaScript 入門中的入門。
TaTaMo - 用Python開發的網頁不能放到Github上?Lektor說可以!!


上一篇
Day-01 程式交易:基礎觀念及準備
下一篇
Day-03 資料蒐集:取得加權指數成分股暨市值比重資料
系列文
Python 程式交易 30 天新手入門30

尚未有邦友留言

立即登入留言