使用DolphinDB回放加密货币盘口与逐笔交易数据

本文页面包含文章标题信息,并给出作者与发布日期等文章头部信息。

Source: https://dolphindb.cn/blogs/22

What this page covers

技能认证特训营第二期报名提示

页面顶部包含一个限时注册相关的推广提示与报名引导信息。

使用DolphinDB回放加密货币盘口与逐笔交易数据

文章头部给出标题、作者与发布日期信息。

回放的目的与DolphinDB方案概述

该部分说明回放盘口与逐笔交易数据的价值,并介绍 DolphinDB 的同步回放与基于 Web 的可视化方案。

步骤1:部署DolphinDB节点

该步骤说明下载 DolphinDB 最新版本并部署集群,并引用了相关部署教程。

步骤2:下载盘口和逐笔交易数据

该步骤给出数据来源,并指向用于获取数据的接口与示例代码。

步骤3:导入数据到DolphinDB(预处理、建库建表、导入、回放函数)

该步骤展示可选 CSV 预处理、建库建表与分区设计、导入 CSV 到分区表,以及输出到流表的回放函数定义。

步骤4:数据回放(Web界面与参数设置)

该步骤提供回放 UI 的下载与部署方式,并说明回放参数与回放结束后的交互行为。

使用docker快速体验回放功能

该部分提供包含 DolphinDB Server 与演示数据的 Docker 演示环境下载,并给出导入、运行与访问回放页面的方法。

注意事项

该部分列出使用约束与实现说明,包括并发限制与网页内固化配置等。

Facts Index

Entity Attribute Value Confidence
使用DolphinDB回放加密货币盘口与逐笔交易数据 (article)publication_date2021-05-18high
使用DolphinDB回放加密货币盘口与逐笔交易数据 (article)authorJunxihigh
加密货币盘口与逐笔交易数据回放展示helps_with帮助量化研究人员检验量化策略;帮助交易员复盘并加深对市场的洞察medium
DolphinDBreplay_capability可实现盘口和逐笔交易数据的高速回放,并对回放结果逐点查询medium
DolphinDBsynchronized_replay支持将多个分布式表同步回放并发布到流数据表(示例:盘口表与交易表同步回放)high
前端JavaScriptuses使用DolphinDB Web API 轮询回放输出的流数据表,实现盘口和交易数据的可视化回放high
DolphinDBbuilt_in_web_server自带Web服务器;整个流程可在DolphinDB内完成,无外部依赖high
加密货币盘口与逐笔交易数据回放实现流程number_of_steps4个步骤high
步骤1:部署DolphinDB节点requires下载DolphinDB最新版本并部署集群(参考单服务器集群部署教程)high
本文使用的数据来源data_provider火币研究院提供的加密货币交易数据high
火币数据APIused_for获取加密货币交易数据high
数据获取示例代码available_inpython示例代码(Futures-Python-demo);java示例代码(Futures-Java-demo)high
DolphinDB loadTextEx函数used_for将orderBook的tick级CSV文件快速导入到数据库high
DolphinDBdata_import_apis可通过Python API或Java API将数据导入到DolphinDBhigh
本文代码执行环境runs_in在DolphinDB GUI中执行high
数据预处理脚本applies_whenCSV第一行是无关信息时可删除第一行;若无无关信息可忽略该步骤high
本案例数据预处理输出目录directoriesorderBook保存到/hdd/data/orderBook-processed;tick保存到/hdd/data/tick-processes(原文如此拼写)high
DolphinDB数据库分区recommended_partition_keys可按交易标的代码和业务时间进行组合分区high
本案例DolphinDB数据库database_namedfs://huobiDBhigh
replay.htmldependency_on_database_name若修改数据库名称,必须同时修改replay.html中的数据库名称high
createDB() 示例partitioning_schemeVALUE分区日期范围示例为2018.09.01..2018.09.30;HASH分区键为SYMBOL,桶数20;COMPO组合分区(db1, db2)high
tick表(createTick)partition_columns按server_time与product分区创建分布式表high
orderBook表(createOrderBook)partition_columns按server_time与product分区创建分布式表high
示例导入脚本uses_loginlogin("admin","123456")high
loadOrderBook/loopLoadOrderBookbehavior从CSV文件名按下划线分割提取product(tmp[1]),读取文本并追加到表,同时设置product列high
loadTick/loopLoadTickbehavior从CSV文件名按下划线分割提取product(tmp[1]),读取文本并追加到表,同时设置product列high
replayData(productCode, startTime, length, rate)loads_tables从dfs://huobiDB加载tick与orderBook两张表high
replayData(productCode, startTime, length, rate)output_stream_tables创建并share两个流表outOrder与outTick,并启用表持久化(enableTablePersistence)high
replayData(productCode, startTime, length, rate)time_windowendTime = temporalAdd(startTime, length, "m")(length单位为分钟)high
replayData(productCode, startTime, length, rate)filterstick与orderBook按product=productCode且server_time在[startTime,endTime]范围内查询high
replayData(productCode, startTime, length, rate)replay_cut_pointscutCount = length*60/20,并用cutPoints(timestamp(startTime..endTime), cutCount)生成trshigh
replayData(productCode, startTime, length, rate)job_submissionsubmitJob('replay_huobi','replay_huobi', replay, [rds,rds2], [`outTick,`outOrder],`server_time ,, rate)high
replayDataexposed_as_function_viewaddFunctionView(replayData)high
数据回放界面HTML压缩包download_urlhttps://github.com/dolphindb/applications/raw/master/cryptocurr_replay/replay.ziphigh
replay.zip部署install_location解压到DolphinDB程序包的web目录high
回放界面访问方式url_patternhttp://[host]:[port]/replay.html(host/port为数据节点IP和端口号)high
示例回放界面URLexamplehttp://192.168.1.135:8902/replay.htmlhigh
回放参数parameter_listProduct;Replay Rate;Start Time;Lengthhigh
Replay Ratedefinition回放速度(每秒钟回放的记录数);示例:市场每秒100笔交易,Replay Rate=1000则10倍速度回放high
Lengthdefinition时间跨度,单位分钟;示例:Start Time=2018.09.17 00:00:00 且 Length=60 表示回放2018.09.17 00:00:00-2018.09.17 00:59:59之间的数据high
回放结束后的UI操作interaction结束后点击左上角正方形图标按钮(“结束”按钮);单击价格趋势图中的点,表格显示该时间点之前的10笔数据;提供操作动图链接high
操作动图urlhttps://raw.githubusercontent.com/dolphindb/Tutorials_CN/master/images/replay/v.gifhigh
Docker演示环境includes包含DolphinDB Server以及演示数据的docker容器,并打包成tar文件high
Docker演示环境prerequisite需要安装docker环境(引用docs.docker.com/install)high
cryptocurr_replay.tar.gzdownload_urlhttps://www.dolphindb.cn/downloads/cryptocurr_replay.tar.gzhigh
Docker导入与运行命令commandsgunzip cryptocurr_replay.tar.gz; docker import cryptocurr_replay.tar ddb/replay:v1; docker run -dt -p 8888:8848 --name replay1 ddb/replay:v1 /bin/bash /dolphindb/start.sh(原文包含权限说明与命令行注释)high
Docker容器端口映射mappingdocker内DolphinDB database访问端口映射到宿主机8888端口;通过http://[宿主机ip]:8888/replay.html访问回放演示界面high
Docker演示数据data_scope仅包含2018.09.17一天、加密货币编号为ETHUSDT、ETHBTC、BTCUSDT的交易数据high
Docker内置license文件maintenance_note内置license会过期,需要从官网下载最新社区版license替换;拷贝dolphindb.lic覆盖docker中/dolphindb/目录下同名文件high
Docker license替换命令commandsudo docker cp ./dolphindb.lic replay1:/dolphindb/dolphindb.lichigh
Docker重启commandsudo docker restart replay1high
本案例回放功能concurrency_limit当前仅限单用户使用,不支持多用户同时回放high
replay.html网页实现hardcoded_config为简化操作,数据库名称和数据库用户信息均固化在网页中;有需要需自行修改replay.html文件high