1. 程式人生 > >為什麼要自建量化交易平臺?

為什麼要自建量化交易平臺?

量化交易平臺概述

  量化交易是指藉助現代統計學和數學的方法,利用計算機技術來進行交易的投資方式。它從歷史資料中選擇經數量模型驗證的大概率事件制定策略,通過嚴格執行來獲得持續穩定的超額回報。它具有嚴格的紀律性、完備的系統性、善用套利思想、依靠概率取勝等優勢。

  這裡的平臺是指一套完整的服務於研製量化交易策略的開發支援環境。它通過選擇合適的技術體系和技術架構,有效地縮短策略開發的時間和降低策略開發的難度。

  當前,專業量化機構和寬客打造的量化交易平臺,通常有這些基本需求:

  覆蓋量化交易完整生命週期,支援策略研發、策略回測、模擬交易、實盤交易全過程。

  支援多種主流程式開發語言。

  支援多個主要市場。

  我們提供的XAPI統一行情交易介面,接入了各大市場的資料和交易通道,可以遮蔽各交易所接入差異和複雜性,有效的降低了人力成本。

  在策略的實現過程中,引入複雜事件處理引擎(CEP)機制,對回測資料/模擬資料/實時資料/交易資料採用一致的事件模型。策略可以靈活的切換資料來源而不用修改程式碼,做到在研究/回驗/模擬/實盤各階段真正的無縫遷移。

  使用者可以選用的程式設計開發語言,包括C, C++, C#, Python,Matlab,Java等。

為什麼要自建平臺

  幾年前,上期技術開放了CTP交易介面後,催生了國內一批期貨交易軟體的發展,當時他們的特點是基本採用封閉的自己設計的指令碼程式語言,語法結構比較簡單,有很多表達的限制;逐漸的量化平臺實際上向2個方向在演化,一個是主要用於策略的研發環節,比較典型的就是Matlab和Python,因為它們有大量的數學庫可以直接被呼叫,並且支援矩陣運算,像基於Python的zipline回測框架就比較常用;另外一個方向的重點是高效快速地執行策略,這類平臺由於個性化的需求比較強,採用第三方平臺常常不能滿足需求,使得一些私募團隊轉向自建量化交易平臺,基本上可以解決下面三個方面的問題:

  1、成本控制

  目前,商業化的第三方量化平臺主要有2種收費模式,一種是以成交量為基數來計算,一種是以年費來計算,不管採用那個計費的方案,隨著使用者的交易規模的上升,管理的賬戶的數目的增加,平臺費用都是比較大的一塊支出;自建平臺的話,只是在開始的付出一筆建設費,以後的總體執行支出就很少,而且,部署多套的話,也不會額外增加成本。成本方面實際上還有另外一種成本,就是因為平臺的轉換而投入的時間和學習成本。比如使用者一開始選擇了A平臺,用了一段時間以後,發現A平臺有些功能完成不了,於是切換到B平臺,這樣就會導致使用者需要將A平臺和B平臺都學習一遍,這個成本在實際工作中都是非常高的。自建平臺以後,一開始投入的學習時間和成本都能夠得到很好的保護。

  2、策略安全

  使用者開發的量化交易策略通常是最具商業價值的部分,所以,幾乎所有的量化團隊和個人對於的策略的安全性都是高度重視的。在目前的商業化平臺中,有些平臺的開發、回測、交易全過程都是在平臺提供商的雲端進行;有些平臺雖然是在客戶的本機開發,但是回溯測試還是會和伺服器發生互動;這些情況下,使用者對於策略的安全性的疑慮始終難以徹底打消。自建平臺就完全不存在這方面的問題,使用者的策略都完全在自己的掌控範圍內,除了發出的交易指令,不需要和外界的伺服器互動。

  3、功能定製

  第三方平臺為了滿足多個方面的使用者需求,通常會做的大而全,這樣的執行效率也會相應的下降;另外,這樣的產品的生命週期通常跨度比較大,會出現在早期設計產品架構的時候,不容易預計到後面的新的應用,比如像現在新出現的期權交易,在多數平臺上原先設計的時候,都不大可能考慮期權策略的交易。這樣的話,使用者如果要擴充套件定製一下新的功能,可能就會變得非常困難,甚至無法實現。而自己平臺本身就是量身定做,對於功能擴充套件就可以很容易的實現。

平臺的架構設計

  1、量化交易平臺架構圖

  這個架構在設計的過程中,充分的考慮了各個功能模組之間的解耦合。從大的結構來分的話,整個體系分成3層,Provider-XAPI-CTP完成了行情資料交易資料的連線;Strategy-Framework實現了策略的邏輯;最上面的CUI-From是和使用者互動的介面層。

  

  2、XAPI統一行情交易介面封裝圖

  這是XAPI統一行情交易介面的內部的實現示意圖,在這個統一介面中,目前,我已經集成了以下的櫃檯API:

  • CTP期貨、CTP期權

  • LTS證券、LTS期權

  • 金仕達期權

  • 上海黃金交易所飛鼠介面

  • UFX

  • Wind

  

  3、XAPI支援的上層程式語言

  像期貨套利策略、期權交易策略對於框架的依賴程度比較低,可以直接基於XAPI做開發,當前支援的程式語言有:

  • C

  • C++

  • C#

  • Matlab

  • Python

  • Java

  • Com

  

預製模組

  1、XAPI

  這個模組在前面已經提到,主要是現在市場上的交易與行情API太多,分別對接每一個API特別麻煩,如果能統一用一套API接入就會很省事。 目前的統一行情交易介面,實現了以下3點:

  • 統一的結構體

  • 統一的呼叫方式

  • 靈活的載入方式

  2、Data壓縮

  自定義的二進位制行情資料儲存格式,支援相容Bar和Tick資料,支援無限深度行情,支援除權除息資訊。將行情使用此格式編碼後再用7z或zip壓縮後再儲存。 行情格式名定為Protobuf Data Zero(.pd0),Protobuf表示所用的核心庫,0表示了此種編碼的特點。如果採用這個資料格式記錄資料,可以將資料檔案的大小縮小到原先的30分之一。

  3、DataReceiver

  這個模組主要是讓使用者建立自己的資料中心,每天使用者可以使用這個行情接收器做行情資料的落地儲存。記錄的格式就是上面介紹的.pd0格式,為了方便使用者在Python和Matlab中呼叫,我們提供了轉換到hdf5格式的輔助工具。

  4、APIProvider

  這個模組是用於連線上層的OpenQuant和XAPI統一行情交易介面層。

  5、DataSimulator

  很多客戶有自己的歷史資料檔案或資料來源,但每次將歷史資料匯入到OpenQuant中是一件很麻煩的事情,如果能直接讀取資料檔案進行回測不就很方便了。所以我們在這提供了一種直接讀取資料進行回測的方法。

自建平臺服務體系

  為幫助客戶自己搭建量化交易平臺,我們推出4個層次的服務體系。

  一、免費專案評估

  由於自建平臺是一個需要投入大量的人力、物力的系統工程,在工程實施前結合使用者的實際情況,做一個整體專案的方案設計是必不可少的步驟。為了讓使用者有針對性的選擇想要實現的目標,我們提供免費的專案評估和分層實施的建議,免費評估的內容,主要包括下面幾個方面:

  整體專案推進方案的評估和建議

  IT團隊的建設和分工建議

  平臺運維的管理流程建議

  技術方案選型

  服務報價:免費

  二、VIP1:策略層

  當前,自建平臺的程式設計開發語言主要可選擇C#和Python,通常,Python語言用於策略的研發,C#開發語言用於策略的執行。在這個階段我們重點放在策略的實現上。通過下面的幾個方面的實踐,可以讓使用者對最終將要實現的自己的平臺有一個直觀的認識,另外,這也是符合我們在構建一個大型系統的時候,採用分層的、模組化的、逐步遞進的建設思想。一方面可以大大增強客戶對於整個系統建造成功的信心,另一方面也最大可能地減少專案推進過程中容易走彎路的情形,避免推翻重來的重大失誤。這幾個方面包括:

  常規CTA策略的開發和實現

  策略的歷史回測

  策略的優化

  歷史回測資料的清洗和拼接

  策略的實盤執行

  服務報價:3萬/年

  三、VIP2:擴充套件層

  這個層面主要實現的目標是進一步增強和完善功能集,以符合一個交易團隊在實際的日常運作中的工作流。通常,在完成了上面的基礎層的功能以後,從大多數交易團隊實踐反饋來看,還需要增加下面的這些功能:

  • 如何加入新的API到XAPI元件中

  • 套利策略的開發和實現

  • 策略狀態機的原理和實現

  • 自定義介面的應用程式的開發和實現

  • 交易系統的雲端部署

  服務報價:6萬/年

  四、VIP3:架構層

  這個層面是包括了所有使用者希望實現的功能集合,不僅僅將預先已經開發的模組有機地整合起來,可能還需要使用者根據實際情況,開發新的模組,這部分的內容包括:

  • 系統模組的框架剖析和程式碼梳理

  • 資料中心的建立和維護

  • 期權的快速交易的面板開發和實現

  • 期權交易策略的篩選和Greeks監控

  • 使用者新增功能和現有框架的融合設計

  服務報價:12萬/年

  相關服務諮詢:周小姐 15757152829(同微信) qq:903857135