WILLIAMO’NEIL(威廉歐奈爾),成立于1963年,致力于為投資機構(gòu)和投資者提供投資建議和獨立調(diào)研報告,目前已服務超過500家世界頂級投資機構(gòu)。
我所在的是威廉歐奈爾信息科技上海有限公司,團隊負責公司所有量化基金產(chǎn)品的業(yè)務,同時進行所有數(shù)據(jù)相關(guān)的技術(shù)研發(fā)。
1.我們用DolphinDB做了什么
目前我們使用DolphinDB處理所有的時序數(shù)據(jù),主要進行因子研發(fā)、中高頻數(shù)據(jù)處理和tick級流數(shù)據(jù)處理。每天的新增數(shù)據(jù)量在1000萬~5000萬條級別,如果存為CSV文件的話,總共為4~5GB。
1.1因子研發(fā)
我們結(jié)合財報和日線數(shù)據(jù)衍生出大量因子,然后使用DolphinDB的分布式存儲、分布式計算和實時流計算等功能進行因子的存儲、計算和建模。在使用DolphinDB進行因子研發(fā)的過程中,我們可以快速處理高達PB級別的數(shù)據(jù)集,利用內(nèi)置的多范式的編程語言,高效開發(fā)出不同風格的因子。在計算得到一些因子后,我們可以再次使用DolphinDB實時計算產(chǎn)生基于這些因子的衍生因子,投研效率得到極大提升。
此外,我們使用DolphinDB進行因子評估來測試因子的有效性。之前我們使用Python加上某國外知名云服務商的數(shù)據(jù)庫進行因子回測,在使用DolphinDB之后,發(fā)現(xiàn)DolphinDB也提供了一些高效的回測工具。比如通過一個replay函數(shù),我們就可以模擬真實的生產(chǎn)環(huán)境,通過模擬回放的方式將數(shù)據(jù)注入到流計算框架中,方便之后的回測計算。在這個過程中,我們可以使用不同的回放形式,并且通過設置不同的回放速率進行勻速、倍速或者極速回放,還可以將多個表的數(shù)據(jù)回放到同一張表中,總體來說使用非常方便。未來隨著項目的推進,我們計劃將這塊業(yè)務逐漸遷移到DolphinDB中。
1.2處理中高頻數(shù)據(jù)
目前我們團隊專攻中高頻數(shù)據(jù),這塊的數(shù)據(jù)量非常龐大,歷史數(shù)據(jù)大概在TB級別。在使用DolphinDB處理高頻數(shù)據(jù)時,我們會對輸入的行情數(shù)據(jù)使用時間序列聚合引擎生成分鐘級K線,然后根據(jù)分鐘級K線使用自定義函數(shù)生成狀態(tài)因子,同時將輸出結(jié)果指向另一個流數(shù)據(jù)表以方便之后的其他計算。在DolphinDB的助力下,我們實現(xiàn)了日線數(shù)據(jù)的高效處理,并且將研究的數(shù)據(jù)精度推進到分鐘級,在降低開發(fā)成本的基礎上極大提升了研發(fā)效率。
1.3搭建tick級數(shù)據(jù)流架構(gòu)
我們團隊在去年搭建了一個處理tick級數(shù)據(jù)的數(shù)據(jù)流架構(gòu)——使用Kafka連接數(shù)據(jù)流,然后傳到DolphinDB中進行計算分析,最后得到所需數(shù)據(jù)。該數(shù)據(jù)流框架能夠?qū)崟r產(chǎn)生我們需要的市場信號。
在我看來,只要把Kafka接數(shù)據(jù)流這步做好,后邊的很多事情并不需要操心。因為DolphinDB提供了非常成熟的實時流計算框架,其中最核心的部件是流計算引擎和流數(shù)據(jù)表。我們通過流數(shù)據(jù)引擎進行時間序列處理、橫截面處理、窗口處理、表關(guān)聯(lián)和異常檢測等操作。同時可以將流數(shù)據(jù)表作為簡化版的消息中間件,實現(xiàn)數(shù)據(jù)的發(fā)布和訂閱。在投研階段封裝好的基于批量數(shù)據(jù)開發(fā)的因子函數(shù),可以無縫投入實際生產(chǎn),實現(xiàn)批流一體,加速開發(fā)進程。目前DolphinDB的延時可以控制在毫秒級,這完全滿足了我們的需求。
2.回顧數(shù)據(jù)庫選型
之前我們主要研究中低頻數(shù)據(jù),使用某國外知名云服務商來存儲數(shù)據(jù),然后用Python進行分析計算。當公司有處理高頻數(shù)據(jù)的需求時,我們發(fā)現(xiàn)這套系統(tǒng)并不能滿足對數(shù)據(jù)處理的理想需求,尤其在數(shù)據(jù)分析方面,這套系統(tǒng)的反應速度非常慢。
于是我們在市面上尋找匹配公司需求的新產(chǎn)品,希望這款產(chǎn)品能夠?qū)崿F(xiàn)高效處理時序數(shù)據(jù),并且方便未來擴展。
經(jīng)過一番市場調(diào)研與產(chǎn)品性能測試,我們在選型會議上討論了三套方案。
第一套方案是KDB+。由于KDB+語言晦澀,學習成本過高,這套方案并沒有被采納。
第二套方案是NoSQLCassandra。經(jīng)過討論,這套方案需要額外招人進行系統(tǒng)的重構(gòu)搭建,并且后續(xù)需要專人進行維護。這會極大增加成本,所以并沒有采用。
第三套方案是DolphinDB。當時是21年初,市面上已經(jīng)出現(xiàn)了金融行業(yè)處理時序數(shù)據(jù)“非KDB+即DolphinDB”的兩家爭霸趨勢。我在會議上對照KDB+的算法例子做了一些DolphinDB的性能測試,然后展示了同樣的例子使用DolphinDB語言來寫,腳本明顯會變得更加簡潔。在一些例子中,DolphinDB的性能超越了KDB+。當時基金經(jīng)理們大多熟悉KDB+,我在會議上做完演示后,他們也非常驚訝于DolphinDB的優(yōu)秀性能。
最后在方案表決時,DolphinDB以壓倒性優(yōu)勢勝出。
3.對DolphinDB的評價
使用DolphinDB已經(jīng)有一年多了,讓我印象最深刻的就是它的高性能、易上手與及時支持。
高性能
在性能方面,DolphinDB可以對實時數(shù)據(jù)進行快速地計算與分析,實現(xiàn)毫秒級的響應速度,完全滿足了我們高效處理時序數(shù)據(jù)的需求。
易上手
在學習成本方面,由于DolphinDB的腳本語言類似Python,同時提供了很多官方的技術(shù)教程,我認為DolphinDB是非常好上手的。如果是一個有著C或Python開發(fā)經(jīng)驗的同事,只需要2周、最多1個月的時間,這位同事就能對布置的項目實現(xiàn)上手開發(fā)。
及時支持
DolphinDB技術(shù)支持團隊的響應速度非常好。除過一些日常的技術(shù)交流,在和技術(shù)支持團隊溝通的過程中,我會反饋一些DolphinDB原本不提供的接口或者函數(shù)的開發(fā)需求。不到一個月的時間,我發(fā)現(xiàn)之前提到的需求會隨著DolphinDB的新版本同時上線,這樣快速且及時的反應速度極大地幫助了我們的研發(fā)生產(chǎn)。
4.文章最后
使用DolphinDB給我們的業(yè)務帶來了極大的改善。作為一家跨國公司,我們在與國外的同事交流時,也會向他們推薦性能優(yōu)秀的時序數(shù)據(jù)庫DolphinDB。衷心希望DolphinDB能夠越做越強,未來在國際上打出更高的知名度!
免責聲明:以上內(nèi)容為本網(wǎng)站轉(zhuǎn)自其它媒體,相關(guān)信息僅為傳遞更多信息之目的,不代表本網(wǎng)觀點,亦不代表本網(wǎng)站贊同其觀點或證實其內(nèi)容的真實性。如稿件版權(quán)單位或個人不想在本網(wǎng)發(fā)布,可與本網(wǎng)聯(lián)系,本網(wǎng)視情況可立即將其撤除。
互聯(lián)網(wǎng)新聞信息服務許可證10120230012 信息網(wǎng)絡傳播視聽節(jié)目許可證0121673 增值電信業(yè)務經(jīng)營許可證京B2-20171219 廣播電視節(jié)目制作經(jīng)營許可證(京)字第10250號
關(guān)于我們 中宏網(wǎng)動態(tài) 廣告服務 中宏網(wǎng)版權(quán)所有 京ICP備2023030128號-1 舉報電話:010-63359623
Copyright ? 2016-2025 by www.uokii.com. all rights reserved 運營管理:國家發(fā)展和改革委員會宏觀經(jīng)濟雜志社