使用 WindTDF 插件获取实时行情的最佳实践

本页是一篇实践文章,提供标题与基础发布信息,并围绕 WindTDF 插件接入实时行情展开说明。

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

What this page covers

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

页面顶部提供限时报名活动提示与链接入口。

使用 WindTDF 插件获取实时行情的最佳实践

文章包含标题与基础发布信息(作者标识与日期)。

背景与动机:实时行情接入的痛点与 WindTDF 插件定位

介绍金融行情数据接入场景、传统 API 对接成本,以及 DolphinDB WindTDF 行情插件用于简化接入与存储流程。

插件原理与支持数据范围

说明 WindTDF 插件的实现基础(TDF_C++ SDK、回调写入共享流表)及当前支持的数据类型与市场范围。

示例范围与完整案例链接

定义示例将订阅沪深全市场股票快照与逐笔数据并接入存储到 DolphinDB 分布式数据库,并给出完整案例外链。

DolphinDB WindTDF 插件实践案例:总体方案与架构图

描述订阅成交/委托/快照数据写入持久化流表,再从流表订阅写入分布式库的整体流程,并给出架构图与说明。

实现步骤概览与参考文档入口

给出接入的三步:安装加载插件、创建表、订阅行情,并提示流表性能优化与分区方式可查阅文档中心。

步骤1:安装并加载 WindTDF 插件

说明在客户端使用 installPlugin 安装适配服务器版本的插件,并用 loadPlugin("WindTDF") 加载。

步骤2:创建流表与分布式表(含 schema 获取与示例代码)

强调连接前需预设订阅,创建连接 handle,获取 snapshot/order/trade schema,并创建持久化流表与分布式库表(含分区策略)。

步骤3:订阅 WindTDF 行情并写入分布式数据库

使用 WindTDF::subscribe 订阅行情并通过 subscribeTable 将流表增量数据批量写入分布式库,解释 batchSize/throttle 并在完成订阅后连接启动接收。

步骤4:WindTDF 运行状态监控与结果示例

展示运行期间的接收与处理计数监控图,以及查询结果示例以证明数据已写入分布式数据库。

限制与风险:第三方 SDK 可能导致内存耗尽及规避建议

指出第三方 SDK 可能引发 Out of Memory,并建议通过合理分配流数据容量与管理 session 变量降低风险。

相关插件生态与插件市场引导

提到除 WindTDF 外还提供其他行情接入插件与功能插件,并引导访问插件市场。

Facts Index

Entity Attribute Value Confidence
文章发布日期2024-12-18high
技能认证特训营第二期报名链接https://www.qingsuyun.com/h5/e/217471/5/high
万得宏汇行情系统定位/描述多市场整合的实时行情平台,提供低延时、高质量的行情数据服务,并通过统一的数据接口标准帮助用户获取数据。medium
数据库与行情系统对接常见方式通常需要通过 API 接口完成;用户需要自行编写数据接入、序列化和存储代码。medium
自行编写行情接入与存储代码影响需要较强技术支持能力,并增加开发和维护成本。medium
DolphinDB WindTDF 行情插件目的/价值通过简洁脚本调用让用户快速将行情数据接入 DolphinDB,免去繁琐编码步骤,降低技术门槛并提升效率。medium
DolphinDB WindTDF 行情插件实现基础基于万得宏汇提供的 TDF_C++ SDK 实现,通过行情回调函数将数据写入指定的 DolphinDB 共享流表中。high
DolphinDB WindTDF 行情插件支持的数据类型/市场(当前)支持上交所、深交所、中金所的股票、基金快照、逐笔交易数据及期货数据。high
本文示例订阅范围订阅沪深两市全市场股票快照和逐笔数据并实时接入与存储至 DolphinDB 分布式数据库。high
完整案例外链https://zhuanlan.zhihu.com/p/12893455530high
实践方案(总体流程)数据流通过 WindTDF 插件订阅成交数据、委托数据和快照数据写入 DolphinDB 持久化流数据表;再订阅流表数据写入 DolphinDB 分布式数据库持久存储。high
实践案例架构图(图示说明)流程细节数据从万得 TDF 行情服务器流出,经 WindTDF 插件回调函数分发到异步处理线程,写入成交/委托/快照流表,并持久化至 DolphinDB 分布式数据库表。medium
WindTDF 数据接入 DolphinDB主要步骤数量与内容三步:安装并加载插件、创建表、订阅行情(创建表涉及持久化流表与分布式库表)。high
DolphinDB 文档中心链接https://docs.dolphindb.cn/zh/index.htmlhigh
WindTDF 插件安装方式在 DolphinDB 客户端执行 installPlugin 安装与当前 DolphinDB 服务器版本适配的 WindTDF 插件文件。high
WindTDF 插件加载方式在脚本中调用 loadPlugin("WindTDF") 加载插件。high
万得 TD 系统订阅限制连接行情系统后无法修改订阅,因此需要在连接前预先设置所有数据的订阅。high
WindTDF::createHandle用途用于创建连接 handle。high
handle = WindTDF::createHandle参数形式([HOST], [PORT], [USERNAME], [PASSWORD])high
WindTDF::getSchema用途分别传入 snapshot、order、trade 参数以获取快照、逐笔委托、逐笔成交的表结构定义。medium
持久化流数据表(示例:快照)cacheSize 设置cacheSize = 1000000high
持久化流数据表(示例:快照)创建方式使用 streamTable(...) 创建 snapshot_sh 与 snapshot_sz,并用 enableTableShareAndPersistence(...) 共享与持久化(表名 snapshot_sh_s、snapshot_sz_s,cacheSize 与 preCache 均为 cacheSize)。high
cacheSize(流数据表)含义/作用作为预分配内存大小及流表可占用最大内存的设置;较大的 cacheSize 可降低出现峰值时延的频率。medium
分布式库表(本例)分区方式按天值分区 + 按股票代码 HASH 分区。high
WindTDF::subscribe(示例:快照)订阅调用WindTDF::subscribe(handle, snapshot_sh_s, "SH-2-0", "snapshot"); 以及 WindTDF::subscribe(handle, snapshot_sz_s, "SZ-2-0", "snapshot");high
subscribeTable(示例:快照)用途订阅持久化流数据表,将增量数据实时写入分布式数据库(示例中使用 handler=handleInsert{shSnapshot}/handleInsert{szSnapshot})。high
subscribeTable 参数 batchSize 与 throttle含义batchSize 表示未处理消息数量;throttle 表示时间间隔;满足任一条件时数据写入分布式数据库。high
WindTDF::connect作用/时机完成订阅后调用 WindTDF::connect 连接 WindTDF,行情数据开始进入流数据表。high
WindTDF 运行监控可查看内容可查看快照(snapshot)、逐笔委托(order)、逐笔成交(trade)的接收消息数分布占比。medium
WindTDF 订阅运行状态监控监控指标/用途通过处理消息计数 processedMsgCount 监控不同订阅项的数据链路吞吐量与处理进度。medium
查询结果示例(图示说明)证明内容图示表格展示包含 Wind 代码、交易日期、前收盘价、开盘价、买卖盘价格等字段的最新行情消息查询结果,用于证明 WindTDF 插件已将实时行情采集、处理并存入分布式数据库。medium
WindTDF 插件(使用第三方 SDK)潜在问题可能出现内存耗尽(Out of Memory)。high
内存耗尽风险规避建议方式通过合理分配流数据容量、及时管理 session 变量等方式避免 OOM。medium
DolphinDB提供的其他行情接入插件(示例)通联、华锐 AMD、华泰 Insight 等主流平台的行情接入插件。medium
DolphinDB提供的功能插件类别(示例)数据存取、消息队列、机器学习等功能插件。low
DolphinDB 插件市场引导行为欢迎前往 DolphinDB 插件市场浏览完整清单。low