文諦資產(chǎn)首席策略官劉一夫、首席框架官吳永華、首席數(shù)據(jù)分析師王哲
上海文諦資產(chǎn)管理有限公司(以下簡稱“文諦資產(chǎn)”)秉持理性、務實、高效、專業(yè)的投資精神,憑借科學的量化投資戰(zhàn)略、先進的量化交易技術(shù)和成熟的風險管理能力深耕量化領(lǐng)域,以創(chuàng)造長期穩(wěn)定收益為投資目標,為國內(nèi)外投資者和合作機構(gòu)提供專業(yè)的投資服務。文諦資產(chǎn)業(yè)務持續(xù)保持穩(wěn)健發(fā)展,公司主要從事CTA和股票的量化策略研究與運作。
大數(shù)據(jù)技術(shù)的飛速發(fā)展為量化投資注入了新鮮活力,隨著數(shù)據(jù)挖掘工具的更迭換代,各大投資機構(gòu)也在不斷夯實自身的數(shù)據(jù)處理和分析能力。文諦資產(chǎn)作為量化統(tǒng)計及應用數(shù)學領(lǐng)域的投顧專家,在存儲、計算和分析大量時間序列數(shù)據(jù)的過程中,選擇了高性能的分布式時序數(shù)據(jù)庫DolphinDB作為強有力的研究工具。在合作的三年間,DolphinDB為文諦資產(chǎn)提供了集數(shù)據(jù)庫、分布式計算和編程建模于一體的專業(yè)服務。本文由文諦資產(chǎn)的首席策略官劉一夫、首席框架官吳永華、首席數(shù)據(jù)分析師王哲共同撰寫,分享關(guān)于DolphinDB的使用場景、使用效果、技術(shù)服務、選型過程和學習經(jīng)驗。
1.使用場景
我們主要在行情存儲、因子挖掘和模型回測三方面用到了DolphinDB。
1.1行情存儲
在行情存儲方面,我們主要使用DolphinDB進行數(shù)據(jù)的入庫、清洗與查詢。
在存儲數(shù)據(jù)時,我們借助DolphinDB的分布式特性,通過提前確定好數(shù)據(jù)導入的分區(qū)字段與分區(qū)粒度,提高后續(xù)數(shù)據(jù)檢索與分析的效率。比如在查詢數(shù)據(jù)時,DolphinDB會以分區(qū)字段為數(shù)據(jù)過濾,通過SQL引擎快速定位要查找的數(shù)據(jù)塊,從而避免對整張表進行掃描,這極大提高了查詢速度。此外,為方便后續(xù)的數(shù)據(jù)分析工作,我們會使用DolphinDB對海量時序數(shù)據(jù)進行高效清洗,找出并消除殘缺、錯誤或重復的數(shù)據(jù),進而輸出一份高質(zhì)量的、滿足業(yè)務需求的數(shù)據(jù)。相比其他數(shù)據(jù)清洗工具隨著數(shù)據(jù)量的增大自身性能會下降的情況,DolphinDB在實際應用中能夠保持穩(wěn)定性能。
1.2因子挖掘
在因子挖掘方面,我們主要使用DolphinDB處理數(shù)據(jù)量龐大、運算復雜的工作任務。
目前我們處理的總數(shù)據(jù)量大概在幾十TB,每日新增數(shù)據(jù)約為70GB。在使用過程中,我們不僅會用到DolphinDB高速存取數(shù)據(jù)的基本功能,同時會用到其內(nèi)置的多范式編程語言與多種計算引擎。
比如在處理一些tick數(shù)據(jù)時,我們會使用DolphinDB完成前期的一些運算,然后通過Python API,將計算結(jié)果導入Python模型進行組合。其中我們會用到DolphinDB的流計算框架,進行流數(shù)據(jù)的發(fā)布、訂閱、預處理、實時內(nèi)存計算以及復雜指標計算等。以DolphinDB內(nèi)置的時間序列聚合引擎為例,僅需設定幾個參數(shù)指標,配合wsum、corr等聚合函數(shù)的使用,就可以快速便捷地實現(xiàn)復雜的滑動時間窗口聚合計算。
1.3模型回測
在模型回測方面,我們會用到DolphinDB提供的函數(shù)接口、元編程和計算框架,根據(jù)這些現(xiàn)有的方法和框架來進行高效回測。
一些現(xiàn)成函數(shù)如context by、crossStat等的使用可以幫助我們大大提升數(shù)據(jù)處理、特別是編程的工作效率。例如context by,該函數(shù)作為DolphinDB的獨創(chuàng)功能可以實現(xiàn)對時序數(shù)據(jù)的快速分組。相比group by每組只能返回一個標量值的特性,context by可以使每一個組返回一個和組內(nèi)元素數(shù)量相同的向量。并且在回測工作中,group by只能配合聚合函數(shù)使用,但是context by可以與其他聚合函數(shù)、移動窗口函數(shù)或累計函數(shù)等結(jié)合使用,這極大方便了研發(fā)工作??偟膩碚f,DolphinDB獨創(chuàng)的諸多函數(shù)功能豐富、使用方便,切實有效地幫助我們提升了回測效率。
函數(shù)示例:DolphinDB context by vs group by
同時,我們會使用DolphinDB的元編程功能。利用元編程設計的程序具有讀取、生成、分析及轉(zhuǎn)化其他程序的功能。通過生成動態(tài)表達式以及延遲執(zhí)行的元編程,使得研究人員即便在代碼運行時仍可自行修改代碼。此外,一些計算框架如MapReduce幫助我們進行并發(fā)計算,極大提升了計算效率。
2.使用效果
在行情存儲方面,我們的研究人員能夠清晰感受到DolphinDB的壓縮比率之高和數(shù)據(jù)落庫速度之快。舉例來說,在處理幾十TB的歷史數(shù)據(jù)時,需要在DolphinDB中壓縮數(shù)據(jù),而DolphinDB的壓縮比例非常優(yōu)秀,最高可以達到10:1,能夠切實地滿足我們的業(yè)務需求。
在因子挖掘方面,我們經(jīng)常會計算一些復雜因子。比如使用單日新增數(shù)據(jù)計算一個復雜因子,可以實現(xiàn)秒級計算。如果使用大量的歷史數(shù)據(jù),整個測試的運算時間甚至可以控制在分鐘級別。
在模型回測方面,由于DolphinDB支持數(shù)據(jù)項目化的批量處理,因此總體的回測效率很高。比如在進行某個特定參數(shù)的測試,整體時間可以控制在1分鐘內(nèi)。再比如對大量歷史數(shù)據(jù)測試全方位的特定參數(shù),從邏輯的實現(xiàn)到最后的產(chǎn)出,整體效率非常高。
3.技術(shù)服務
談及對DolphinDB最深刻的印象,就是技術(shù)支持服務。
2020年,我們與DolphinDB CEO周小華博士及技術(shù)團隊當面進行了深入交流。周博士為我們提供了許多專業(yè)的建議,同時技術(shù)團隊針對我們的業(yè)務需求進行了詳細記錄,并且在后續(xù)的跟蹤服務中幫助我們逐一實現(xiàn)了需求。
在之后的使用中,我們也會遇到技術(shù)疑惑與功能需求。比如今年在處理一些高頻數(shù)據(jù)時,我們急需一些函數(shù)的詳細用法。在與我們溝通后,DolphinDB的工程師及時教授了我們關(guān)于函數(shù)的構(gòu)建、以及改善調(diào)優(yōu)的方法。在平時的技術(shù)咨詢中,不論是多晚,即便有時是在周末,我們總會得到技術(shù)支持工程師們的及時回復。當然,除了技術(shù)咨詢,我們也會向DolphinDB提出一些開發(fā)需求。比如實現(xiàn)因子,雖然有些因子是不常規(guī)的、甚至非常復雜,DolphinDB的工程師們都會通過現(xiàn)有的功能向我們提供支持。還有必須提的一點,我們曾經(jīng)向DolphinDB溝通了一個特別的功能需求,結(jié)果這個功能很快就在下一個版本中得到實現(xiàn)。從需求的提出到功能的實現(xiàn),整體速度確實是非常驚人的。
無論是支持效率,還是專業(yè)程度,我們對DolphinDB的技術(shù)支持服務都非常滿意。
4.時序數(shù)據(jù)庫選型
我們在選型時對比了多家時序數(shù)據(jù)庫,其中主要考慮的是Kdb+與DolphinDB。
Kdb+作為金融領(lǐng)域的老牌時序數(shù)據(jù)庫,雖然名氣大、使用面廣,但是其作為國外廠商缺乏國內(nèi)的技術(shù)支持,并且其語法晦澀,培訓成本和學習成本較高。
DolphinDB在查詢和存儲方面的性能明顯優(yōu)于其他數(shù)據(jù)庫,其具備的多種流計算引擎對于流數(shù)據(jù)處理非常友好。同時DolphinDB具有高壓縮比,內(nèi)置豐富的金融函數(shù)庫,可以極大便捷研發(fā)生產(chǎn)。此外,DolphinDB可以提供及時專業(yè)的技術(shù)支持,同時上手門檻較低。
最終,我們選擇了集存儲、計算與開發(fā)于一體的高性能分布式時序數(shù)據(jù)庫DolphinDB。
5.學習和使用經(jīng)驗
總體來看,DolphinDB的入門是比較容易的。如果有Python和SQL的語法基礎(chǔ),那么只需一兩周的時間就可以上手DolphinDB。
若要更加精進地使用DolphinDB,需要對DolphinDB進行更加深入的了解。首先要了解存儲引擎的架構(gòu),目前DolphinDB使用的是OLAP和TSDB兩種引擎,可以提供很高的寫入吞吐。其次,要深入理解數(shù)據(jù)庫的設計原理,比如分區(qū)表的工作原理,這會大大提升數(shù)據(jù)查詢的效率。然后,在數(shù)據(jù)計算方面要學習一些高效處理所需的函數(shù),這樣在實際業(yè)務場景中可以更加自如地使用函數(shù)。最后,要保持一顆學習的心態(tài)。因為DolphinDB在不斷地優(yōu)化提升,不斷地擴展迭代一些新的功能,要用好DolphinDB,一定要保持學習態(tài)度、緊跟版本技術(shù)動態(tài)。
6.結(jié)尾
在友好合作的三年間,DolphinDB切實有效地助力文諦資產(chǎn)進行量化投研。希望DolphinDB可以精益求精,未來在行業(yè)中的發(fā)展越來越好,越來越強。文諦資產(chǎn)也會堅守不斷追求創(chuàng)新、大膽向前的精神,推動量化投資向更高更遠發(fā)展。
新化月報網(wǎng)報料熱線:886 2395@qq.com
相關(guān)文章
最近更新
- 復雜因子秒級計算,文諦資產(chǎn)的數(shù)據(jù)庫選型方案2023-02-13
- 贛江新區(qū)“美麗經(jīng)濟”新動向,舒蕾生物科技園開園投產(chǎn)2023-02-13
- 強化普惠金融服務優(yōu)勢,快易花獲行業(yè)和用戶一致好評2023-02-13
- 股票分紅是怎么分的?股票每年都有分紅嗎?2023-02-13
- 配債后什么時候可以賣出正股?配債是買入還是賣出?2023-02-13
- 股票向下跳空缺口是主力洗盤嗎?股票跳空缺口一定會補上嗎?2023-02-13
- 小盤股主力吸籌要多久?主力吸籌意味著什么?2023-02-13
- 新希望服務:深耕成都,做透服務,堅定民生定位!2023-02-13
- 怎么選小盤股?小盤股為什么不值得長期持有?2023-02-13
- 換季感冒,咳嗽不停應該怎么辦?2023-02-13
- 股票跌停了為什么還有成交量?放量跌停和縮量跌停哪個好?2023-02-13
- 低位補倉的原則是什么?重倉和輕倉是什么意思?2023-02-13
- 妖股跌停洗盤有哪些特征?跌停板出貨法還是洗盤怎么判斷?2023-02-13
- 股票底背離是什么意思?波段操作和短線操作的區(qū)別是什么?2023-02-13
- 股票背離什么意思?股票出現(xiàn)頂背離會有什么結(jié)果?2023-02-13
- 焦點要聞:市公共資源交易平臺1月進場交易項目同比增長18.64%2023-02-13
- 天天微動態(tài)丨甘肅省節(jié)后勞務市場供需兩旺 截至1月底共輸轉(zhuǎn)城鄉(xiāng)富余勞動力131.7萬人2023-02-13
- 世界觀點:蘭州公安交警發(fā)布出行安全提示2023-02-13
- 蘭州市教育局:開學了, 各校要把安全工作放在重心位置2023-02-13
- 甘肅加快水利重大項目重點工程建設 全省水利投資去年突破二百億元2023-02-13
- 全球新消息丨【強信心 穩(wěn)經(jīng)濟 促發(fā)展】甘肅省1月份全社會用電量同比增長8.42%2023-02-13
- 環(huán)球微頭條丨市交通局 清理規(guī)范中介服務事項2023-02-13
- 嚴重擁堵!武漢主城區(qū)實時交通指數(shù)3.068,注意行車安全2023-02-13
- 345盤在售、16盤千字頭!2月臨深在售新盤一次看完2023-02-13
- 參考價2周年,已成市場交易標準!10+張數(shù)據(jù)圖深度解讀巨變2023-02-13
- 綠景白石洲舊改、招商漁二村今年或入市!南山12大舊改搶先看2023-02-13
- 每日視點!深圳建創(chuàng)新藥產(chǎn)業(yè)化基地!項目遴選方案公示2023-02-13
- 湖南省第一批創(chuàng)新型中小企業(yè)名單出爐,長沙933家企業(yè)入圍2023-02-13
- 每日速看!2022年度綠色制造名單公示,長沙29家單位上榜2023-02-13
- 全球報道:科技引領(lǐng) 高新區(qū)創(chuàng)新型企業(yè)奮力“出圈”2023-02-13