華夏基金對(duì)市面上多家數(shù)據(jù)庫(kù)進(jìn)行調(diào)研測(cè)試,從性能、語(yǔ)言學(xué)習(xí)成本和技術(shù)服務(wù)等多方面進(jìn)行綜合考量,最終選擇高性能時(shí)序數(shù)據(jù)庫(kù)DolphinDB。本文將分享華夏基金使用DolphinDB的業(yè)務(wù)實(shí)踐。
本文作者:華夏基金金融科技部高級(jí)副總裁楊雪松,高級(jí)工程師李乾鵬
目前我們主要研究日頻或日頻以下的中低頻因子,需要日常維護(hù)、管理和計(jì)算公共因子或用戶自定義的因子,同時(shí)進(jìn)行因子的策略回測(cè)。實(shí)際生產(chǎn)數(shù)據(jù)已超過(guò)1TB。在使用DolphinDB前,我們的研究員需要自己編寫(xiě)大數(shù)據(jù)的回測(cè)系統(tǒng),手動(dòng)改換參數(shù)和進(jìn)行壓力測(cè)試。比如進(jìn)行10年滬深300的日頻調(diào)倉(cāng)回測(cè)需要2個(gè)小時(shí),研發(fā)效率低下、較難滿足實(shí)際業(yè)務(wù)需求。
為了有效提升策略回測(cè)效率、改善研發(fā)環(huán)境,我們想要搭建一套全新的系統(tǒng)。在對(duì)比測(cè)試國(guó)內(nèi)外多家數(shù)據(jù)庫(kù)后,我們選擇了高性能的時(shí)序數(shù)據(jù)庫(kù)DolphinDB。
使用DolphinDB研究策略和開(kāi)發(fā)引擎
我們主要使用DolphinDB解決策略研究的相關(guān)問(wèn)題。首先使用DataX將異構(gòu)原始數(shù)據(jù)導(dǎo)入DolphinDB,再借助DolphinDB的分布式計(jì)算框架和豐富的金融函數(shù)庫(kù)生成技術(shù)指標(biāo),在提升效率的同時(shí)大大縮短了開(kāi)發(fā)周期。然后基于技術(shù)指標(biāo)生成公共因子和用戶自定義因子,同時(shí)根據(jù)股票數(shù)據(jù)進(jìn)行策略回測(cè)。最后分析回測(cè)結(jié)果如收益分析、歸因分析等。
目前我們已經(jīng)使用DolphinDB研發(fā)出數(shù)百個(gè)公共因子,利用module功能將其形成一個(gè)因子庫(kù),供研究員和基金經(jīng)理使用。以下為策略研發(fā)流程圖:
此外,我們借助DolphinDB研發(fā)了指標(biāo)選股引擎、單因子分析引擎和策略回測(cè)引擎。其中,我們使用DolphinDB成功開(kāi)發(fā)的基于事件和向量融合的策略回測(cè)引擎,性能非常優(yōu)秀,在業(yè)務(wù)方面得到了極大的認(rèn)可。
數(shù)據(jù)庫(kù)選型
我們?cè)谶x型時(shí)從多方面對(duì)比InfluxDB、ClickHouse、KDB+、DorisDB和DolphinDB。
·InfluxDB不支持量化金融的常用函數(shù),在性能測(cè)試中相比DolphinDB差了一個(gè)數(shù)量級(jí)。
·KDB+語(yǔ)言晦澀,價(jià)格昂貴,缺乏國(guó)內(nèi)的技術(shù)支持團(tuán)隊(duì)。
·ClickHouse的性能不及DolphinDB,函數(shù)的共通性較弱,并且作為開(kāi)源軟件對(duì)集群的支持性并不是很好。
·DorisDB的性能未能完全滿足我們的業(yè)務(wù)需求。
同時(shí),我們對(duì)DolphinDB進(jìn)行以下綜合考量:
·DolphinDB在海量存儲(chǔ)、實(shí)時(shí)計(jì)算、查詢等方面的性能表現(xiàn)極佳。
·DolphinDB提供豐富的金融常用函數(shù)。
·不管在windows還是linux系統(tǒng)中,輕量級(jí)的DolphinDB部署起來(lái)都很方便。
·DolphinDB的語(yǔ)言是SQL和Python結(jié)合,學(xué)習(xí)成本低,我們的正式員工經(jīng)過(guò)1-2周的學(xué)習(xí)就可以基本上手。
·DolphinDB有豐富的文檔資料和國(guó)內(nèi)專(zhuān)業(yè)的技術(shù)支持團(tuán)隊(duì),我們?cè)谑褂脮r(shí)遇到問(wèn)題,不僅可以查閱手冊(cè),也可以尋找技術(shù)團(tuán)隊(duì)支持,及時(shí)解決問(wèn)題。
DolphinDB帶來(lái)的業(yè)務(wù)效果提升
使用DolphinDB加快了許多業(yè)務(wù)的周期,尤其是策略回測(cè)、指標(biāo)計(jì)算和因子計(jì)算等方面的提升效果很明顯。相比使用傳統(tǒng)數(shù)據(jù)庫(kù),DolphinDB的速度可以提高一個(gè)數(shù)量級(jí)。開(kāi)頭提到,我們之前進(jìn)行10年滬深300的日頻調(diào)倉(cāng)回測(cè)需要花費(fèi)2個(gè)小時(shí),但是在使用DolphinDB后整個(gè)過(guò)程不超過(guò)1分鐘,提升效率超過(guò)100倍。
與DolphinDB的未來(lái)合作計(jì)劃
我們計(jì)劃借助DolphinDB搭建一個(gè)量化相關(guān)的數(shù)據(jù)平臺(tái),把第三方數(shù)據(jù)源的數(shù)據(jù)都導(dǎo)入到DolphinDB中,這樣業(yè)務(wù)員在使用時(shí)可以調(diào)用統(tǒng)一的對(duì)外暴露接口查詢各個(gè)數(shù)據(jù)庫(kù)的相關(guān)數(shù)據(jù)。同時(shí)我們?cè)谘芯縧evel2的高頻因子。在預(yù)演中,每天的新增數(shù)據(jù)量接近40GB,加上歷史數(shù)據(jù)總計(jì)幾十TB,這對(duì)數(shù)據(jù)庫(kù)的性能提出更高的要求。希望和DolphinDB繼續(xù)保持友好合作。
免責(zé)聲明:以上內(nèi)容為本網(wǎng)站轉(zhuǎn)自其它媒體,相關(guān)信息僅為傳遞更多信息之目的,不代表本網(wǎng)觀點(diǎn),亦不代表本網(wǎng)站贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性。如稿件版權(quán)單位或個(gè)人不想在本網(wǎng)發(fā)布,可與本網(wǎng)聯(lián)系,本網(wǎng)視情況可立即將其撤除。