国产AV激情无码久久,精品国产YW在线观看,亚洲国产欧美日韩欧美2018,中文字幕一区二区三区在线不卡

自己動手,用DolphinDB搭一套行情回放系統(tǒng)

2023-05-29 16:56   來源: 互聯(lián)網(wǎng)

      一個量化策略在交易環(huán)境中運(yùn)行時,實(shí)時數(shù)據(jù)的處理通常是由事件驅(qū)動的。為確保研發(fā)和生產(chǎn)使用同一套代碼,通常在研發(fā)階段需將歷史數(shù)據(jù),嚴(yán)格按照事件發(fā)生的時間順序進(jìn)行回放,以此模擬交易環(huán)境。DolphinDB 提供了 replay 函數(shù)進(jìn)行靜態(tài)數(shù)據(jù)的回放,即將歷史數(shù)據(jù)按照時間順序以“實(shí)時數(shù)據(jù)”的方式注入流數(shù)據(jù)表中。對具有相同時間戳的數(shù)據(jù),還可以指定額外排序列,使數(shù)據(jù)回放順序更接近實(shí)時交易場景。


      如何回放更高效?

      回放的原理是從數(shù)據(jù)庫中讀取需要的行情數(shù)據(jù),并根據(jù)時間列排序后寫入到相應(yīng)的流數(shù)據(jù)表。因此,讀數(shù)據(jù)庫并排序的性能對回放速度有很大的影響,合理的分區(qū)機(jī)制將有助于提高數(shù)據(jù)加載速度。

      此外,在實(shí)際的投研過程中,往往會有多個用戶同時通過 C++、Python 等客戶端提交數(shù)據(jù)回放請求。對行情回放服務(wù)進(jìn)行工程化管理將極大提高投研效率。為了響應(yīng)量化投研中回放服務(wù)的工程化需求,我們基于 DolphinDB 分布式數(shù)據(jù)庫、回放功能以及 DolphinDB API,搭建了一個基礎(chǔ)的行情數(shù)據(jù)回放服務(wù),給出了行情數(shù)據(jù)最佳分區(qū)存儲方案,并提供了多用戶多支股票多天多表交易所行情數(shù)據(jù)回放最佳實(shí)踐方案。用戶可以在此基礎(chǔ)上快速搭建自己的行情回放系統(tǒng)。


      性能展示:一天全速并發(fā)回放

      我們選取了深交所 2021 年 12 月 1 日 50 只交易股票數(shù)據(jù),在 linux 后臺同時啟動多個 C++ API 提交回放的程序,提交多個并發(fā)回放任務(wù),來測試這套架構(gòu)的性能表現(xiàn)。

      ·回放耗時 = 所有回放任務(wù)最晚結(jié)束時間 - 所有回放任務(wù)最早收到時間

      ·回放速率 = 所有用戶回放數(shù)據(jù)量總和 / 回放耗時

      ·平均單個用戶回放耗時 =(所有回放任務(wù)結(jié)束時間和 - 所有回放任務(wù)開始時間和)/ 并發(fā)數(shù)量

      ·平均單個用戶回放速率 = 單個用戶回放數(shù)據(jù)量 / 平均單個用戶回放耗時


      性能展示:跨天全速回放

      測試的交易日范圍從 2021 年 12 月 1 日至 12 月 9 日共 7 個連續(xù)交易日,選取深交所 50 只交易股票數(shù)據(jù),linux 后臺啟動 C++ API 提交回放的程序,提交多天回放任務(wù)。

      ·回放耗時 = 回放任務(wù)結(jié)束時間 - 回放任務(wù)收到時間

      ·回放速率 = 回放數(shù)據(jù)量 / 回放耗時

      可以看到,這套行情數(shù)據(jù)回放方案在中高頻數(shù)據(jù)下仍然具有強(qiáng)大性能,且調(diào)用方便、實(shí)現(xiàn)簡單。下面為大家簡單介紹一下架構(gòu)與搭建步驟。完整的教程已發(fā)布在官方知乎,可以點(diǎn)擊文末閱讀原文查看。


      基于 DolphinDB 的行情回放系統(tǒng)

      我們搭建的行情回放服務(wù)基于 3 類國內(nèi) A 股行情:逐筆委托數(shù)據(jù)、逐筆成交數(shù)據(jù)和 Level 2 快照數(shù)據(jù),支持以下功能與特性:

      ·C++、Python 客戶端提交回放請求(指定回放股票列表 、回放日期、回放速率、回放數(shù)據(jù)源)

      ·多個用戶同時回放

      ·多個數(shù)據(jù)源同時有序回放

      ·在時間有序的基礎(chǔ)上支持排序列有序(如:針對逐筆數(shù)據(jù)中的交易所原始消息記錄號排序)

      ·發(fā)布回放結(jié)束信號

      ·對回放結(jié)果訂閱消費(fèi)

行情回放服務(wù)架構(gòu)

      這套行情回放服務(wù)架構(gòu)包含以下幾個模塊:

      ·行情數(shù)據(jù)接入實(shí)時行情數(shù)據(jù)和歷史行情數(shù)據(jù)可以通過 DolphinDB API 或插件存儲到 DolphinDB 分布式時序數(shù)據(jù)庫中。

      ·函數(shù)模塊封裝數(shù)據(jù)查詢和回放過程可以通過 DolphinDB 函數(shù)視圖封裝內(nèi)置,僅暴露股票列表 、回放日期、回放速率、回放數(shù)據(jù)源等關(guān)鍵參數(shù)給行情服務(wù)用戶。

      ·行情用戶請求需要進(jìn)行行情回放的用戶可以通過 DolphinDB 客戶端軟件(如 DolphinDB GUI 工具、DolphinDB VS Code 插件、DolphinDB API 等)調(diào)用封裝好的回放函數(shù)對存儲在數(shù)據(jù)庫中的行情數(shù)據(jù)進(jìn)行回放,同時,用戶還可以在客戶端對回放結(jié)果進(jìn)行實(shí)時訂閱消費(fèi)。此外,支持多用戶并發(fā)回放。

      回放過程中的主要函數(shù)及功能如下表所示,所有函數(shù)都已封裝成視圖以便通過 API 等方式調(diào)用。


      怎么快速搭建?


回放服務(wù)搭建步驟

      Step 1:服務(wù)提供者設(shè)計合理分區(qū)的數(shù)據(jù)庫表,在 DolphinDB 集成開發(fā)環(huán)境中執(zhí)行對應(yīng)的建庫建表、數(shù)據(jù)導(dǎo)入等腳本,以將歷史行情數(shù)據(jù)存儲到 DolphinDB 分布式數(shù)據(jù)庫中作為回放服務(wù)的數(shù)據(jù)源。

      Step 2:服務(wù)提供者在 DolphinDB 集成開發(fā)環(huán)境中將回放過程中的操作封裝成函數(shù)視圖,通過封裝使得行情服務(wù)用戶不需要關(guān)心 DolphinDB 回放功能的細(xì)節(jié),只需要指定簡單的回放參數(shù)(股票、日期、回放速率、數(shù)據(jù)源)即可提交回放請求。

      Step 3:服務(wù)提供者在外部程序中通過 DolphinDB API 調(diào)用上述函數(shù)視圖實(shí)現(xiàn)提交回放的功能。在第四章將給出 API 端提交回放任務(wù)的 C++ 實(shí)現(xiàn)和 Python 實(shí)現(xiàn)。

      我們給出了 3 類行情數(shù)據(jù)的最佳分區(qū)存儲方案及建庫建表腳本、全部函數(shù)視圖的定義腳本、提交回放以及 API 端訂閱與消費(fèi)的代碼實(shí)現(xiàn)。大家可以關(guān)注DolphinDB公眾號查看完整腳本與搭建教程。


責(zé)任編輯:prsky
分享到:
0
【慎重聲明】凡本站未注明來源為"大眾時報網(wǎng)"的所有作品,均轉(zhuǎn)載、編譯或摘編自其它媒體,轉(zhuǎn)載、編譯或摘編的目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé)。如因作品內(nèi)容、版權(quán)和其他問題需要同本網(wǎng)聯(lián)系的,請在30日內(nèi)進(jìn)行!
網(wǎng)站地圖 關(guān)于我們 免責(zé)聲明 投訴建議 sitemap

未經(jīng)許可任何人不得復(fù)制和鏡像,如有發(fā)現(xiàn)追究法律責(zé)任 粵ICP備2020138440號

<tfoot id="mjdss"><nobr id="mjdss"></nobr></tfoot>
    1. <ruby id="mjdss"><div id="mjdss"></div></ruby>
      <tr id="mjdss"></tr>