來源:互聯(lián)網(wǎng) 閱讀:-
珠海盈米基金銷售有限公司(以下簡(jiǎn)稱“盈米基金”),是一家深度運(yùn)用互聯(lián)網(wǎng)技術(shù)、深度耕耘泛資管行業(yè)的創(chuàng)新型金融科技公司。盈米基金致力于用買方投顧的理念及實(shí)踐改變中國(guó)人買基金的方式,幫助更多的客戶實(shí)現(xiàn)可持續(xù)回報(bào)。
盈米基金在量化分析及投研成果開發(fā)的場(chǎng)景中應(yīng)用 DolphinDB,投資研究與科技實(shí)現(xiàn)團(tuán)隊(duì)在 DolphinDB 的協(xié)助下提升了應(yīng)用實(shí)現(xiàn)效率。
本篇文章主要分享盈米基金使用 DolphinDB 的具體場(chǎng)景、業(yè)務(wù)改善、選擇理由、學(xué)習(xí)經(jīng)歷和使用感受。
產(chǎn)品總監(jiān) 李一芃,數(shù)據(jù)團(tuán)隊(duì)負(fù)責(zé)人 賀云曉
使用 DolphinDB 的業(yè)務(wù)場(chǎng)景
由蜂鳥開發(fā)迭代的盈米蜂鳥投研系統(tǒng),通過復(fù)雜的后臺(tái)計(jì)算,實(shí)時(shí)為用戶提供即時(shí)的投資研究相關(guān)的工具應(yīng)用,為專業(yè)機(jī)構(gòu)投資者提供了交易運(yùn)營(yíng)服務(wù)及投研投顧業(yè)務(wù)解決方案。
目前我們主要研究日頻數(shù)據(jù),研究的數(shù)據(jù)類別包括全量的基金凈值,報(bào)告的截面數(shù)據(jù)等。目前全市場(chǎng)基金數(shù)據(jù)包含1萬(wàn)多只基金產(chǎn)品,由于基金成立時(shí)間不一,日頻凈值數(shù)據(jù)年增300萬(wàn)的數(shù)據(jù)量,數(shù)據(jù)計(jì)算量十分龐大。
雖然在具體投研中數(shù)據(jù)的頻率和總量較低,但是我們需要基于存量數(shù)據(jù)進(jìn)行大量且復(fù)雜的實(shí)時(shí)計(jì)算。在此過程中,涉及到很多時(shí)間窗口對(duì)齊、標(biāo)的過濾的連表操作。之前我們使用的其他方法,開發(fā)復(fù)雜度很高,同時(shí)計(jì)算效率非常不理想。因此,我們亟需強(qiáng)大的算力支持,實(shí)現(xiàn)高效處理數(shù)據(jù)的存儲(chǔ)、查詢與計(jì)算。目前,在使用 DolphinDB 后,我們的查詢和計(jì)算的效率已經(jīng)達(dá)到了200~300倍的提升。
DolphinDB 在我們的業(yè)務(wù)場(chǎng)景中主要被用于實(shí)現(xiàn)投研系統(tǒng)的算法工程化,其在數(shù)據(jù)查詢與計(jì)算方面可以達(dá)到毫秒級(jí)響應(yīng),完全滿足了我們的性能需求,實(shí)現(xiàn)對(duì)各種模型指標(biāo)的實(shí)時(shí)計(jì)算。
此外,我們用 DolphinDB 支持算法來實(shí)現(xiàn)各種功能,比如計(jì)算基金的各種業(yè)績(jī)?cè)u(píng)價(jià)指標(biāo),構(gòu)建風(fēng)格因子等。通過這些功能幫助客戶進(jìn)行高效投研。
DolphinDB 帶來的業(yè)務(wù)改善
目前,對(duì)于業(yè)務(wù)帶來的最大的改善是計(jì)算性能和研發(fā)效率的明顯提升。
相比之前使用其他系統(tǒng),新系統(tǒng)完全滿足了用戶操作秒級(jí)響應(yīng)的需求,部分場(chǎng)景下的計(jì)算速度甚至是之前的300倍以上。
此外,使用 DolphinDB 極大加快了項(xiàng)目的投產(chǎn)速度,簡(jiǎn)單估算,現(xiàn)在的研發(fā)速度是之前的4~5倍。
計(jì)算性能和研發(fā)效率的提升不僅僅會(huì)優(yōu)化用戶的使用體驗(yàn),更重要的是在金融市場(chǎng)諸多細(xì)分領(lǐng)域?yàn)橛脩魟?chuàng)造更多具有投研價(jià)值的產(chǎn)品及服務(wù)從而發(fā)現(xiàn)更多的投資機(jī)會(huì)。
選擇 DolphinDB 的理由
經(jīng)由推薦,我們對(duì)于 DolphinDB 有了初步的了解,并且了解到其提供的服務(wù)能為我們目前算力、數(shù)據(jù)等方面提供支持。之后我們搜索了研報(bào)和一些排名數(shù)據(jù),發(fā)現(xiàn) DolphinDB 在全球時(shí)序數(shù)據(jù)庫(kù)中位列前茅。最令我們驚喜的是,DolphinDB 超越了傳統(tǒng)數(shù)據(jù)庫(kù)功能,提供了分布式存儲(chǔ)、編程建模與高性能計(jì)算的一站式大數(shù)據(jù)解決方案。
之后我們正式進(jìn)行了數(shù)據(jù)庫(kù)選型。從多個(gè)維度謹(jǐn)慎對(duì)比 DolphinDB了與同類型其他產(chǎn)品。經(jīng)過全面的資料對(duì)比與性能測(cè)試,最終我們選擇了高性能的分布式時(shí)序數(shù)據(jù)庫(kù) DolphinDB。
在產(chǎn)品對(duì)比中,除了存算性能,我們還考慮了如下三大因素。
首先,是否具備金融屬性。許多數(shù)據(jù)庫(kù)產(chǎn)品只提供一些通用功能。但是 DolphinDB 提供了投研方面非常便利的高效工具,比如內(nèi)置豐富的金融場(chǎng)景的相關(guān)函數(shù),能夠快速實(shí)現(xiàn)一些復(fù)雜的數(shù)據(jù)分析需求。此外,DolphinDB 提供大量的截面計(jì)算和連接引擎等,能夠?qū)?shù)據(jù)清洗和分析進(jìn)行快速驗(yàn)證。
其次,是否支持多種接口。我們?cè)谑褂弥袝?huì)涉及多系統(tǒng)的對(duì)接,無論在系統(tǒng)的對(duì)接,還是在接口的定制和使用上,DolphinDB 都具備良好的擴(kuò)展性。
最后,是否易上手易使用。DolphinDB 的學(xué)習(xí)門檻很低,大多數(shù)研發(fā)和投研人員可以快速上手。同時(shí),DolphinDB 對(duì)很多計(jì)算函數(shù)及引擎做了較好的優(yōu)化,在遷移已有的計(jì)算和實(shí)現(xiàn)新的計(jì)算需求時(shí),我們不需要考慮太多底層優(yōu)化的事情。
一周上手 DolphinDB
正式達(dá)成合作后,我們團(tuán)隊(duì)面臨的挑戰(zhàn)是——項(xiàng)目進(jìn)度緊,了解并熟悉 DolpinDB 使用的時(shí)間短。DolpinDB團(tuán)隊(duì)提供了專人支持,配合我們團(tuán)隊(duì)成員只花了一周的時(shí)間就實(shí)現(xiàn)了上手。在前半周,我們認(rèn)真學(xué)習(xí)了 DolphinDB 提供的培訓(xùn)材料。后半周對(duì)著接口文檔查詢各種資料,同時(shí)在 ask.dolphindb 的社區(qū)里搜索相關(guān)的用戶問答。通過結(jié)合使用這三項(xiàng)工具,我們很快就實(shí)現(xiàn)了 DolphinDB 的基本運(yùn)用。
在后續(xù)使用中,我們會(huì)產(chǎn)生一些或大或小的技術(shù)疑問。這時(shí)我們會(huì)帶著這些問題尋求 DolphinDB 技術(shù)支持團(tuán)隊(duì)的幫助。在交流技術(shù)問題與解決方案的過程中,技術(shù)支持們會(huì)非常積極地幫助我們尋找、復(fù)現(xiàn)和解決問題。我們可以切實(shí)感受到 DolphinDB 技術(shù)支持團(tuán)隊(duì)成員的專業(yè)度,以及技術(shù)服務(wù)的及時(shí)性。在技術(shù)團(tuán)隊(duì)的幫助下,大概一個(gè)月后,我們就做到了真正熟練使用 DolphinDB,通過自主編寫代碼完成項(xiàng)目。
回顧學(xué)習(xí)及使用 DolphinDB 的經(jīng)歷,我們認(rèn)為想要用好 DolphinDB,必須要做好以下三件事:
?要有具體的使用場(chǎng)景。學(xué)習(xí) DolphinDB,本質(zhì)上也是學(xué)習(xí)一門編程語(yǔ)言。有了具體的使用場(chǎng)景才能用好語(yǔ)言,只有用得好才算真正學(xué)會(huì)了這門語(yǔ)言。
?要有具體的使用數(shù)據(jù)。DolphinDB 是一款數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的使用定然需要大量數(shù)據(jù)的支持。有了使用數(shù)據(jù),才能跑出各種模型;有了使用數(shù)據(jù),模型才能進(jìn)行使用。
?要學(xué)會(huì)用 DolphinDB 的思維來寫算法。我們發(fā)現(xiàn) DolphinDB 相比 Python 還是有一些不一樣、但是使用體驗(yàn)更佳的地方。舉例來講,Python 習(xí)慣于使用矩陣的思維去做計(jì)算,有時(shí)計(jì)算邏輯會(huì)非常復(fù)雜;而 DolphinDB 有很多基于字段、基于 SQL 的語(yǔ)法糖,這些語(yǔ)法糖在方便使用者的同時(shí)極大加快了研發(fā)效率。在習(xí)慣 DolphinDB 的算法思維之后,使用自然會(huì)變得更加順利。
關(guān)于 DolphinDB 的使用感受
使用 DolphinDB 已有些時(shí)日,我們也見證了團(tuán)隊(duì)成員從剛開始的辛苦學(xué)習(xí),到逐漸接受并且認(rèn)可 DolphinDB 的強(qiáng)大與便捷,再到大家開始主動(dòng)探索 DolphinDB 的更多功能。在這個(gè)過程中,大家也分享了很多關(guān)于 DolphinDB 的使用感受,總結(jié)后共有如下五點(diǎn):
1.DolphinDB 使用體驗(yàn)非常好。這是同事們最大、也是最深刻的使用感受。DolphinDB 針對(duì)金融領(lǐng)域提供了很多方便開發(fā)的工具。比如 window join、context by 這種功能點(diǎn)非常好用,有效避免了一些復(fù)雜邏輯。很多同事之前習(xí)慣使用 Python,但在接觸 DolphinDB 后也會(huì)被這些引擎和函數(shù)驚艷到,確確實(shí)實(shí)地感受到開發(fā)變得更加便捷。
2.DolphinDB 是輕量級(jí)的。如果一款產(chǎn)品技術(shù)太重,是很難被引入一個(gè)團(tuán)隊(duì)并且真正使用起來。如果一款產(chǎn)品不夠輕量級(jí),就無法做到將很多復(fù)雜的架構(gòu)和復(fù)雜的體系完美地融合在一起。但是反觀 DolphinDB,真正做到了產(chǎn)品的輕量,并且在保持輕量的同時(shí)提供了很多接口,具備良好的擴(kuò)展性。
3.DolphinDB 的存儲(chǔ)性能非常優(yōu)秀。壓縮比例非常高,最高可以達(dá)到10:1。當(dāng)前項(xiàng)目因?yàn)閿?shù)據(jù)總量不大,壓縮對(duì)節(jié)省存儲(chǔ)空間的意義一般,但是在并發(fā)請(qǐng)求時(shí),對(duì)提升磁盤 IO 效率很有幫助。
4.DolphinDB 的計(jì)算性能非常優(yōu)秀。這一點(diǎn)我們團(tuán)隊(duì)、尤其是負(fù)責(zé)算法的同事有著深刻體會(huì)。同樣的算法例子,使用 Python 可能需要兩分鐘才能執(zhí)行完成,但是 DolphinDB 的執(zhí)行時(shí)間只需要一秒。
5.DolphinDB 非常好上手。前文也分享了我們學(xué)習(xí) DolphinDB 的經(jīng)歷。一周實(shí)現(xiàn)基本上手,一個(gè)月達(dá)到熟練使用,對(duì)比其他產(chǎn)品的學(xué)習(xí)周期,我們認(rèn)為 DolphinDB 的學(xué)習(xí)門檻是比較低的。
讓一款產(chǎn)品真正應(yīng)用于一家企業(yè)并不容易,從接觸了解到引入準(zhǔn)備,從探索磨合到落地實(shí)踐,需要團(tuán)隊(duì)上下每個(gè)成員的齊心努力。從敲定項(xiàng)目到引入 DolphinDB,再到第一個(gè)版本的成功上線,其實(shí)只是很短、甚至不到一個(gè)月的時(shí)間。而 DolphinDB 也確實(shí)得到了開發(fā)團(tuán)隊(duì)、產(chǎn)品團(tuán)隊(duì)和研究員們的一致認(rèn)可與接受。大家都在各自的領(lǐng)域發(fā)光發(fā)熱,一起探索如何最大化地將 DolphinDB 給用起來。
衷心希望盈米基金和 DolphinDB 可以保持長(zhǎng)期合作,相互擁抱、相互成就。讓我們一起在投研系統(tǒng)的建設(shè)方面做出更多創(chuàng)新性的合作,一起推動(dòng)未來行業(yè)的蓬勃發(fā)展。
推薦閱讀:旗龍網(wǎng)