量化交易開發應用:如何搭建量化投資系統?

v_ch3nguang發表於2023-09-26

1、量化投資,資料是基礎

量化投資的理念現在越來越被人熟知,不論是在學校還是在職場,對量化投資感興趣,想要一試身手,甚至是將Quant定為職業目標的人也越來越多。不過許多朋友現在還只是臨時蒐羅有限的資料,做一些零星的研究、測試和計算。與其這樣沒有明確目標地小打小鬧,不如著手建立一個比較完善的“量化投資研究系統”,下面我將和朋友們分享一下我在這方面嘗試的心得。

中國有句古話叫做“兵馬未動,糧草先行”,對於量化投資研究而言應該改為“模型未動,資料先行”,高質量的資料是出色研究的基礎。需求決定功能,我們要做哪方面的量化投資研究,決定了我們需要哪些資料。

我所理解的量化投資研究大致包括3塊內容:

學術化的研究工作,例如金融時間序列分析,這一塊研究主要集中在各種金融產品的交易資料上,例如股票、期貨、期權的價格,基金淨值等等;

構建交易策略或投資組合,這一塊研究需要交易資料、宏觀經濟指標和公司財務資料等等;

策略回測,這一塊研究需要大量歷史交易資料,用來測試評估交易策略和投資組合。

“天下沒有免費的午餐”,為了獲得資料,要麼付出金錢成本,購買資料終端(例如Wind終端);要麼付出時間成本,自己動手搭建維護一個金融資料庫。如果沒有機會擺弄萬得、彭博,還是毛主-席那句話——“自己動手,豐衣足食”。

資訊時代,最大的資料來源就是網際網路,而且在絕大部分情況下,網際網路可以提供公開免費的資料。所以我們要搭建的資料庫實際上是依賴“網路爬蟲”獲取網際網路上的資料。不過在討論如何獲取資料之前,為了確保將來的工作簡單高效,先要“約法三章”:

儘量以下載檔案,而不是抓取網頁內容的方式獲得資料;

儘量減少抓取網頁的次數,換言之,一張網頁上的資料要儘可能的多;

儘量抓取靜態網頁內容,而不是動態網頁。(有一個簡單的規則區別靜態和動態網頁,如果網頁內容變化之後,位址列裡的URL連結跟著變化,就是靜態網頁,反之則是動態的。)

2、尋找金融資料來源
廢話不多說,下面正式討論如建立自己的金融資料庫(目前只限於股票和基金資料)。

首先來到上交所和深交所的網站,目的是找到股票程式碼和指數程式碼列表。深交所以檔案下載的方式提供股票和指數程式碼(業界良心),上交所則是以網頁形式提供。天天基金網以網頁的形式提供了基金程式碼列表接下來看股票和指數的交易資料,要想獲得這些資料,一個最自然的想法就是到主流入口網站上去找。事實上網易、新浪、和訊和東方財富等入口網站都以網頁的形式提供每日交易資料。不過網易這一次成為了業界良心,網易提供資料下載服務,可以下載csv檔案獲得股票和指數的歷史交易資料,以及股票最近一週的高頻交易資料。網易提供的資料甚至包括除權調整過的昨收資料
歷史交易資料(平安銀行)

成交明細(平安銀行)

和交易相關的另一種重要資料是“復權因子”,可惜提供復權因子資料的網站並不多,新浪這一次成為了業界良心,新浪以靜態網頁的形式提供每日的復權因子。

復權因子(平安銀行)

基金淨值資料,和股票跟指數一樣,入口網站大多以網頁的形式提供歷史淨值資料,不過和訊這一次做了業界良心,和訊在基金的歷史淨值網頁上展示了該基金所有的歷史淨值資料。

基金淨值(華夏成長)

一些基本資料層面的資料,例如上市公司的基本資料,基金的基本資料等,對於這些資料,網站之間的大同小異區別不大。

最後看上市公司的財務資料,有些型別的量化投資特別需要研究公司財務資料,尤其是量化選股,需要大量財務資料構造因子,用來對股票估值和預測未來收益率。不過對比多家網站之後,不幸地發現不同網站提供的財務資料格式不盡相同,資料內容也是有出入。這一部分資料的蒐集比想象的要複雜得多,將來會專門寫一篇文章討論這個問題,暫時擱置一下。

3、開始搭建金融資料庫
透過上面的文章,資料來源已經基本確定了,接下來就要“修渠引水,匯入水庫”。水庫的話,就選擇最常用的資料庫MySQL;水渠的話,這裡用R語言。

前面講過了,整個資料庫依賴網路爬蟲獲得資料,所以修水渠之前要先掌握下面幾個方面的基本知識:

R的語法,以及如何使用RCurl、XML、xml2等R包設計爬蟲;

網頁的基本結構,以及如何利用FireFox瀏覽器的FireBug外掛或Chrome瀏覽器研究網頁結構;

正規表示式;

XPath語法,以及使用XPath提取html檔案中的特定節點。

看起來需要很多的知識準備,不過以我個人的經驗,每個方面只要掌握最基本的知識就可以利用R做出一個靠譜的爬蟲。如果想要集中時間系統化的學習上述知識,這裡推薦兩本書《Automated Data Collection with R》、《XML and Web Technologies for Data Sciences with R》和一篇網路教程《55分鐘學會正規表示式》。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70028290/viewspace-2985956/,如需轉載,請註明出處,否則將追究法律責任。

相關文章