教程入門:建立一個完全自動化的交易系統

NO IMAGE

本文是針對初學者講解如何建立一個基於事件驅動的全自動化交易系統。

  首先對於量化交易的初學者,建議讀讀 Ernie P. Chan的書籍:Quantitative Trading: How to build your own algorithmic trading business,這本書是基礎。

  量化交易系統可以分為半自動化交易和完全自動化交易兩種,半自動化系統適合一個星期有幾筆交易,推薦使用 Matlab, R語言, 甚至是Excel,具體建議如下:

  • 可以忽略Matlab, 它會帶來很多金錢上的成本,並沒有許多訓練材料如部落格或書籍教會你如何使用Matlab編碼交易策略。
  • R語言有不少資源可以用來學習如何構建交易策略,推薦閱讀:QuantStratTradeR  run by Ilya Kipnis.
  • 如果你沒有程式設計經驗,可以使用Microsoft Excel,能夠使用Excel進行半自動化交易,但是不能幫助你建立一個完整的交易技術體系。

  下圖是半自動化交易框架:

trading

  對於完全自動化交易系統,適合你實時下單,可以使用C#語言,QuantConnect也是使用C#,QuantStart 和Quantopian 使用的是Python,HFT更喜歡使用C ,當然Java也很流行。

自動化交易系統

 

系統架構

  在課程Executive Program in Algorithmic Trading 中,會告訴你一個全自動化交易系統的架構以及其中每個元件的特點,見下圖:

全自動化交易系統的架構

  整個架構分三個部分,Application Server和Exchange,核心是複雜的事件處理引擎,市場資料輸入到事件處理引擎,由引擎向交易所發出買賣交易。

  下圖是來自於 “Algorithmic Trading System Architecture” By: Stuart Gordon Reid:

系統架構

  在系統的介面層使用的是MVC模式和觀察者模式,業務層分為資料來源層 資料預處理層和智慧層以及訂單處理層,最後是報表分析層。在資料預處理層,可以使用過濾器等模式進行資料的預先處理,業務核心是CEP事件驅動引擎。

 

開源系統

  下面介紹幾個開源的交易系統:

  (1)Quantopian:使用易於學習的Python,能夠自由訪問很多資料集,有大量社群支援,它是這個領域的市場領導者,它的開源專案是Zipline,這是一個開源的引擎,能夠引發在IDE中的backtester,其Github倉庫按此。有 Google
group
討論組支援。

  (2) QuantConnect:它提供開源的演算法交易引擎,連結見此:link 

 

使用Python matplotlib繪製股票走勢圖