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