量化交易開發應用:如何搭建量化投資系統?
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 量化合約交易模式軟體開發|量化交易系統搭建模式
- 量化交易系統開發app,量化馬丁策略交易平臺搭建APP
- Fowin量化交易系統開發搭建方案
- 量化交易系統開發
- 量化交易系統開發(機器人搭建)機器人
- 自動交易量化搬磚系統開發高頻量化搭建
- 量化交易系統開發需求丨量化交易原始碼模式原始碼模式
- 量化現貨合約交易系統開發/量化合約對沖策略系統開發搭建
- 量化交易系統開發技術闡述丨量化交易原始碼開發原始碼
- 合約交易/量化交易/對沖交易策略/系統技術開發/應用
- 量化合約交易系統開發
- “量化交易”系統開發技術詳細丨“量化交易”原始碼原始碼
- 合約量化交易對沖策略系統開發應用程式
- 量化交易系統開發技術框架丨量化交易市值機器人系統開發案例框架機器人
- 智悠AI量化機器人/合約量化交易/系統開發技術/案例/應用AI機器人
- 量化交易/系統視乎開發/DAPP/量化合約交易技術開發詳情APP
- 錢包量化交易系統開發方案
- 數字貨幣/期貨量化交易系統開發(交易演算法)| 量化交易系統開發原始碼示例演算法原始碼
- 高頻量化交易系統開發,交易機器人系統開發機器人
- 量化合約系統開發(方案模式)|合約量化系統開發(原始碼搭建)模式原始碼
- 量化對沖搬磚交易系統開發(開發策略)丨量化對沖搬磚交易系統開發原始碼原始碼
- SET智慧合約量化系統開發|秒合約量化開發搭建
- 摩頓(Mortonn)網格量化交易系統應用開發詳情分析
- 量化現貨交易系統開發(功能詳解)| 量化現貨交易系統(原始碼demo示例)原始碼
- 量化交易系統開發之合約策略
- 量化交易系統開發(現成產品)
- 數字貨幣量化交易系統開發功能詳解丨量化交易開發原始碼模式原始碼模式
- 量化交易系統極速開發/Python語言/現貨量化開發技術Python
- 加密貨幣交易模式系統搭建開發:量化交易帶來的優勢加密模式
- 量化策略交易系統開發,自動對沖搬磚交易平臺搭建
- AI合約量化交易對沖策略/系統開發/永續合約槓桿量化技術/應用AI
- 量化合約機器人開發丨量化系統開發丨合約量化交易策略程式碼示例機器人
- 高頻量化對沖合約交易模式系統開發模式搭建模式
- 關於合約量化交易系統開發原始碼搭建框架方案原始碼框架
- 量化搬磚交易平臺搭建,自動對沖系統開發
- 幣幣量化/合約量化/跟單交易系統技術開發/量化跟單策略方案
- 量化合約對沖交易策略系統開發與應用(原始碼演示)原始碼
- 智慧量化合約跟單系統開發技術/量化交易/合約跟單交易