私募基金構建量化交易平台已經不是什么新鮮的事情了。本文是筆者對私募基金如何逐步建立量化交易平台的淺識,文中不足之處,請各位批評指正。
1. 業務規劃#
私募量化基金的發展建議遵從單一資產到多資產,單一策略到多策略,低頻段到中高頻段的思路。
首先,單一資產到多資產。私募量化基金的交易標的可以從業務簡單,風險相對較低的債券和股票開始。債券和股票的業務比較容易上手,而且因為沒有使用槓桿,業務的風險相對較低,可以作為量化投資策略的試驗品。一般而言,一只量化投資產品可以大致設置在 5000 萬 - 1 個億的規模。在比較熟悉量化投資策略及了解背後市場規律之後,可以嘗試著擴大資產的種類。此時可以考慮引進商品期貨或期權,股指期貨或期權。隨著這些金融衍生品的引入,從而大大地豐富了資產的種類,形成良性的輪動或對沖機制。有了這種規避風險的輪動或對沖機制後,募集資金的規模也可以繼續擴大,比如一只量化投資產品至少要擴大到幾個億左右的規模,並且可以根據風險的不同,針對不同的風險偏好客戶,設置不同的產品,從而豐富自己的產品系列。
其次,單一策略到多策略。在平台構建初期,可以考慮單一或者較少的策略。就如前面所提到的,平台構建的初期僅僅考慮簡單的交易標的即可。對於債券或股票而言,量化交易策略相對來說發展比較成熟。以股票多因子策略為例,策略原理和策略的實現步驟已經經過很多年的積累,已經非常標準化。對於私募量化基金經理來說,其精力可以更多地放在因子的挖掘和比較上。相對於債券和股票的量化策略,商品期貨及股指期貨,期權的發展在國內發展比較晚,可供選擇的交易標的比較少。隨著金融衍生品在國內的發展,其對應的量化策略也是層出不窮。最近幾年,面向商品期貨的 CTA 策略,面向股票和股指的統計套利策略等等得到了迅速的發展和不斷的完善。隨著平台的不斷擴大,可以配合產品的擴大,擴大策略的種類。
最後,低頻段到中高頻段。量化交易平台是需要不斷進行完善的平台。越是高頻的交易,對系統或平台的要求越高,而高頻交易的重要度和熱度也高於低頻交易。最近幾年比較熱門的 T+0 交易,CTA 策略等都是屬於高頻交易的範疇。高頻交易平台的精髓在於把單機的軟硬件外加網絡系統的性能發揮到極致(譬如把伺服器搬到上海證通機房或者深圳濱海機房),而不是像互聯網那樣強調高負載和延展性。電商平台常見的動輒用上百台甚至上千台的伺服器集群的做法並不適合私募的量化投資平台的要求。隨著交易頻率的提高,一方面是軟硬件的性能需要不斷地提高,另一方面算法的智能化和系統穩定性也需要不斷優化。私募量化交易平台如果一開始就定位於高頻交易策略,由於知識和經驗的積累不足,對於高頻交易所需的環境的認識不充分,導致交易的失敗甚至無法執行。另外一方面,高頻交易由於人為干預的空間比較少,從而導致風險性較高。所以,私募量化交易平台應遵從低頻段到中高頻段的成長過程。
2. 平台功能設計#
完整的量化交易平台應該包含以下幾個系統:1,數據中心。2,策略中心。3,交易中心。
首先,數據中心是量化交易平台的基礎。所有的量化交易策略不管是回測還是實盤交易,都需要數據的支撐。數據中心的建設相對業務比較簡單,但比較繁瑣,主要是數據庫的構建和數據的保存和清洗。該過程涉及的業務較少,主要的精力在數據的清洗上。如何提供有效的數據,減輕後續業務流上對數據處理和判斷的壓力是該系統主要任務。
對於基礎行情數據的某些屬性如除權公式,不同數據提供商的計算方式有所差異,這方面需要使用統一的數據源。然而鑑於所用數據提供商的限制以及分析的需要,必然從多個數據源採集不同的數據來保證證券信息的完整性。而對於大多數類型的數據,可以將收集過程分為兩個階段,即首次採集與增量採集。採集時應該使用簡單可靠的策略,使得數據源發生變化時能夠方便調整策略,數據更新的過程可靠健壯性強。目前而言,由於數據的來源既可以來自比較權威的數據服務商,比如 Wind,Choice,Tushare 等,券商也有自己的行情系統,但專業性沒有專業的數據服務商好。最近今年,隨著行為金融學的關注度上升,也有利用爬蟲獲取行情與交易以外的數據,比如博客的人氣指數,新聞的關鍵字等。量化投資與機器學習公眾號曾經出過一篇《利用 Twitter 情緒去預測股市》的文章,有興趣的朋友可以去學習。
其次,策略中心是量化交易平台的心臟。策略中心包含策略的編寫、回測及評價。其中,回測的優劣對私募基金的尤其重要。回測的主要目的在於儘量還原真實交易條件而貼合實際的交易過程,來檢測策略的表現。回測過程中需要考慮避免使用未來的數據,也就是不能使用 T 日之後產生的信號影響進而 T 日之前的數據來進行 T 日的交易。常見且必須的回測評價應該包括收益與最大回測的評價,交易明細的展現,交易成本和持倉記錄的變化。當策略在選定的時間區間完成回測時,用戶可以查看此策略的各項盈利與風險指標,用戶能夠看到整個策略運行期的收益率曲線圖等相關圖表。用戶可以導出一個策略的回測報告和具體交易日誌,回測報告包括各項指標及回測結果分析圖。更高級的回測評價可以增加歸因分析,收益分析類的功能。對於基金的績效進行歸因分析的目的是為了獲取影響私募基金收益的主要因素,如資產的配置方式,股票選擇過程中的行業偏好等等。將當前的目標基金與選定的市場基準進行績效的分析,從不同的方面對兩者收益的差異進行 “切割”,不同的 “切面” 則反映了不同的關注點,如上述的資產的配置方式,股票選擇過程中的偏好。
最後,交易中心是量化交易平台的最終目標。交易中心可分為模擬交易和實盤交易。在策略中心經過回測驗證的策略可以先進行模擬交易。在模擬交易中心經歷實時數據的驗證,以確定量化交易策略模型的泛化能力。模擬中心主要通過第三方服務商的接口,接入第三方的模擬櫃檯實現。當量化交易策略模型的泛化能力較高時,可以轉為實盤交易。實盤交易主要通過與券商的 PB 交易系統的接口實現。在私募發展初期,對於低頻策略,也可以考慮手動進行模擬盤和實盤交易。
3. 非功能性設計#
非功能設計主要包括兩個方面:一是響應速度。二是易用性。
響應速度主要是指在回測過程中,尤其是回測時間區間較長的時候,系統應保證一定的回測響應速度。隨著交易模型的日趨複雜化和回測時間區間的加長,用戶應能儘快地得到回測結果用於研究,判斷及決策。最近幾年,機器學習的導入雖然大大地方便了模型的構建過程,但是機器學習所需的調參過程對系統的響應速度也提出了更高的要求。
易用性主要是指用戶能否快速地上手。目前國內互聯網量化平台,比如聚寬,優礦等都提供了面向初學者的教育板塊,既包含量化投資的金融知識,也包括了數學,統計,編程等必備技能,以此來幫助初學者儘快使用量化交易平台。作為面向私募的量化交易平台,可以不必像互聯網量化平台一樣考慮諸多不同用戶,但至少在頁面流轉,平台術語等方面要符合私募的業務習慣。除此以外,私募量化投資平台應建立屬於自己的函數庫。
4. 前台技術#
用戶交互需要提供一個方便的界面接口,而 B/S 模式是目前主流的用戶交互方式,量化投資平台採用 B/S 架構為用戶提供交互功能,WEB 伺服器通過 TOMCAT 進行佈署,使用 SSH 框架實現。前台與後台的數據交互主要使用 REST 和 WebSocket 技術。REST 架構是 RoyThomas Fielding 提出的一種軟件架構風格。REST 架構以資源為中心,資源是由 URI 標識的唯一實體,客戶端通過在 PUT、POST 請求裡附加一個表示來對資源狀態進行修改,而伺服器通過響應客戶端 GET 請求時附上的表示來推進應用狀態。對於非實時的數據請求,比如歷史價格的查詢,財務數據的查詢等,可以通過 REST 架構來實現。
與伺服器端的中層引擎進行交互的方法可使用 WebSocket 技術。傳統的要求實時性的 Web 應用通常採用輪詢機制來實現:客戶端保持固定的頻率,每隔一段時間就向伺服器發送一次請求,以此來保持客戶端和伺服器端的數據同步。輪詢有實現簡單的優點,在網頁中使用 JavaScript 定義一個定時函數就可以;但同時這種方式也有問題,就是當客戶端頻繁地發送請求時伺服器端的數據可能並沒有更新,此時的所有請求都是做了無用功,為伺服器帶來訪問壓力的同時也浪費了帶寬資源。WebSocket 就是為了解決這一問題而提出的一種瀏覽器與伺服器間進行全雙工通訊的網絡技術,它可以實現客戶端和伺服器端的長連接和雙向實時通信。對於實時數據請求,比如實時股價,可以通過 WebSocket 架構來實現。
5. 後台技術#
量化投資平台的實現中,後台的數據處理模塊 (ETL 模塊,邏輯運算模塊,回測模塊等),因模塊的相對獨立性,且主要以數據處理與運算為主,所以分別作為獨立模塊獨立開發,可使用 JAVA 語言或者 C++ 語言。最近幾年,隨著 Python 語言的普及,也可以考慮使用 Python 技術。
對於後台中最為核心的回測模塊,目前用Zipline來搭建策略中心比較常見,此外由國人開發的vn.py、rqalpha在 Github 上也饱受好評。
回測平台的建設既可以考慮獨立定制,也可以考慮用第三方平台,目前國內比較知名的量化平台有聚寬、優礦、米筐等。對於剛剛起步的私募基金,可優先考慮用第三方平台。對於相對小一些的公司或者個人投資者來說,借助一些外部的平台,也是很有必要的。一些回測平台也跟券商進行了合作,後續如果能把信號生成與券商櫃檯自動交易連接起來,也是好事(深南,2019)。
6. 可視化技術#
在 B/S 架構下的可視化方面,可選擇 Echarts 或 Highcharts 等圖形庫。以 Highcharts 為例,Highcharts 是用純 JavaScript 編寫的圖表庫,能快捷的在 web 網站或是 web 應用程序添加有交互性的圖表,並且無償提供給個人網站、學習和非商業用途使用。HighCharts 支持的圖表類型有區域圖、曲線圖、餅狀圖、柱狀圖、綜合圖表和散狀點圖。HighCharts 界面美觀,因使用 JavaScript 編寫,所以運行起來,不需要像 Flash 和 Java 一樣需要插件,而且運行速度快。另外 Highcharts 還有很好的兼容性,能夠完美支持當前大多數瀏覽器。
參考文獻:
[1] 孔令潇。量化選股回測平台的設計與實現 [D]
[2] 曹義。多因子量化投資管理系統設計與實現 [D]
[3] 劉寧。基於 Web 的量化交易平台的設計與實現 [D]
[4] 沈士忠。量化策略研究平台的設計與實現 [D]
[5] 溫從華,王佳林,林岳龍,等。基於大數據技術的量化交易策略及金融監管 [J]
[6] 深南。一文讀懂量化系統接入及相關平台 [J]