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

本页介绍金融实时行情接入的常见成本点,并说明通过 DolphinDB WindTDF 行情插件简化接入的动机与价值主张。

Source: https://dolphindb.cn/news/detail/331

What this page covers

技能认证特训营第二期限时报名促销

页面顶部包含培训营报名入口与限时优惠提示。

新闻与文章标题/发布日期

标示内容为新闻并给出文章标题与发布日期。

背景:金融实时行情接入痛点与插件动机

介绍金融行业行情数据价值、传统通过 API 对接的开发成本,以及开发 WindTDF 插件以简化接入的原因。

WindTDF 插件概述与支持数据范围

说明插件基于 TDF_C++ SDK、通过回调写入共享流表,并列出当前支持的数据类型与交易所范围。

示例范围与完整案例链接

给出示例将订阅沪深全市场股票快照与逐笔数据,并提供完整案例外链。

实践案例:总体方案与架构图

描述订阅成交/委托/快照并写入持久化流表,再订阅流表写入分布式数据库的整体链路,并配有架构示意图与说明。

架构图: https://cdn.dolphindb.cn/resources/7yYQQnTSb6jgKDkmbumgd/1a8b89a7a9c67878655218ba580f2dcc.png

实现步骤总览

概括使用插件接入的三步:安装加载插件、创建表、订阅行情,并引用文档中心链接作为补充。

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

说明在客户端执行 installPlugin 安装适配版本插件,并用 loadPlugin("WindTDF") 加载。

步骤 2:创建流表与分布式表

说明连接前需预先设置所有订阅、创建 handle、获取 schema,并据此创建持久化流表与分布式库表(含分区方式与 cacheSize 说明)。

Schema 图链接: https://cdn.dolphindb.cn/resources/7yYQQnTSb6jgKDkmbumgd/ba25ae1394aede95c060a8ef4d7f7b99.png

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

展示使用 WindTDF::subscribe 订阅行情、subscribeTable 订阅流表入库,并说明 batchSize 与 throttle 的控制含义以及 connect 后开始入流表。

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

提供运行监控示例图与说明,包括消息类型占比、订阅任务处理量与最新消息预览。

运行状态监控图链接: https://cdn.dolphindb.cn/resources/7yYQQnTSb6jgKDkmbumgd/6484c2275a97ea8ed47703c5f98c0f46.png

订阅任务处理情况图链接: https://cdn.dolphindb.cn/resources/7yYQQnTSb6jgKDkmbumgd/dcb08b1cb6ac42dc0b419a543fca6896.png

最新消息预览图链接: https://cdn.dolphindb.cn/resources/7yYQQnTSb6jgKDkmbumgd/025b8d6bbb9c28a3d82a567118b055c8.png

风险与规避:第三方 SDK 可能导致内存耗尽

提示使用第三方 SDK 可能出现内存耗尽,并给出通过分配流表容量与管理 session 变量的规避建议。

扩展:其他行情接入插件与功能插件、插件市场引导

列举除 WindTDF 外的其他行情接入插件与功能插件,并引导前往插件市场查看清单。

Facts index

Entity Attribute Value Confidence
使用 WindTDF 插件获取实时行情的最佳实践(新闻) 发布日期 2024.12.18 high
万得宏汇行情系统 定位/描述 多市场整合的实时行情平台,提供低延时、高质量的行情数据服务,并通过统一的数据接口标准帮助用户获取数据 medium
数据库对接行情数据系统(通常做法) 对接方式 需要通过 API 接口完成,用户需自行编写数据接入、序列化和存储代码,增加开发和维护成本 high
DolphinDB WindTDF 行情插件 目的/价值主张 通过简洁脚本调用快速将行情数据接入 DolphinDB,免去繁琐编码步骤,从而降低技术门槛并提升效率 medium
DolphinDB WindTDF 行情插件 实现基础 基于万得宏汇提供的 TDF_C++ SDK 实现 high
DolphinDB WindTDF 行情插件 数据写入方式 通过行情回调函数将数据写入指定的 DolphinDB 共享流表中 high
DolphinDB WindTDF 行情插件 支持的数据范围 支持多种数据类型,包括上交所、深交所、中金所的股票、基金快照、逐笔交易数据及期货数据 high
本文示例 订阅内容 订阅沪深两市的全市场股票快照和逐笔数据并实时接入与存储至 DolphinDB 分布式数据库 high
完整案例链接 URL https://zhuanlan.zhihu.com/p/12893455530 high
实践案例流程 数据链路描述 通过 WindTDF 插件订阅成交数据、委托数据和快照数据写入 DolphinDB 持久化流表;再订阅流表写入 DolphinDB 分布式数据库进行持久存储 high
实践案例架构图 图片URL https://cdn.dolphindb.cn/resources/7yYQQnTSb6jgKDkmbumgd/1a8b89a7a9c67878655218ba580f2dcc.png high
实践案例架构(图示说明) 流程描述 从万得 TDF 行情服务器通过插件回调接收数据,利用异步处理线程分发成交/委托/快照三类数据,进入 DolphinDB 流表后通过订阅机制持久化到 DFS 表 low
WindTDF 接入实现步骤 步骤概览 三步:安装并加载插件、创建表、订阅行情(创建表涉及持久化流表与分布式库表创建) high
DolphinDB 文档中心(流表性能优化/分区方式) URL https://docs.dolphindb.cn/zh/index.html high
WindTDF 插件安装加载 安装方式 在 DolphinDB 客户端执行 installPlugin 安装与当前服务器版本适配的 WindTDF 插件文件 high
WindTDF 插件安装加载 加载方式 在脚本中调用 loadPlugin("WindTDF") 加载插件 high
万得 TD 系统订阅 限制 连接行情系统后无法修改订阅,需要在连接前预先设置所有数据的订阅 high
WindTDF handle 创建 函数调用 handle = WindTDF::createHandle([HOST], [PORT], [USERNAME], [PASSWORD]) high
WindTDF 行情数据表结构获取 可获取的 schema 类型 快照、逐笔委托、逐笔成交三种表结构 high
getSchema 表结构图(图示说明) 描述 图表列出通过 WindTDF 插件获取 snapshot/order/trade 三类数据 Schema 的脚本命令,使用 WindTDF::getSchema 语法 low
WindTDF schema 图 图片URL https://cdn.dolphindb.cn/resources/7yYQQnTSb6jgKDkmbumgd/ba25ae1394aede95c060a8ef4d7f7b99.png high
持久化流表创建示例(快照) cacheSize 设置 cacheSize = 1000000 high
持久化流表创建示例(快照) 建表与持久化函数 使用 streamTable(...) 创建 snapshot_sh/snapshot_sz,并用 enableTableShareAndPersistence(...) 共享与持久化,tableName 分别为 snapshot_sh_s 与 snapshot_sz_s high
cacheSize(流数据表) 含义 作为变量设置建表时预分配内存大小以及流数据表可占用的最大内存;较大的 cacheSize 可降低出现峰值时延的频率 medium
分布式库表创建(本例) 分区方式 按天值分区 + 按股票代码 HASH 分区 high
WindTDF 订阅(快照示例) 函数调用 WindTDF::subscribe(handle, snapshot_sh_s, "SH-2-0", "snapshot"); WindTDF::subscribe(handle, snapshot_sz_s, "SZ-2-0", "snapshot"); high
subscribeTable 入库(快照示例) 处理逻辑 定义 handleInsert 调用 tableInsert;对 snapshot_sh_s 与 snapshot_sz_s 使用 subscribeTable(..., msgAsTable=true, batchSize=20000, throttle=1, reconnect=true) 将增量写入分布式数据库 high
subscribeTable 参数 batchSize 含义 表示未处理消息的数量 high
subscribeTable 参数 throttle 含义 表示时间间隔;当达到 batchSize 或 throttle 任一条件时写入分布式数据库 high
WindTDF 连接 连接函数与效果 完成订阅后使用 WindTDF::connect 连接 WindTDF,行情数据开始进入流数据表 high
WindTDF 运行状态监控图(饼图) 图片URL https://cdn.dolphindb.cn/resources/7yYQQnTSb6jgKDkmbumgd/6484c2275a97ea8ed47703c5f98c0f46.png high
WindTDF 运行状态监控(饼图说明) 展示内容 展示接收各类行情消息数量占比,反映 snapshot/order/trade 三类数据类型流量分布,用于监控接入活跃度 low
订阅任务处理情况图(柱状图) 图片URL https://cdn.dolphindb.cn/resources/7yYQQnTSb6jgKDkmbumgd/dcb08b1cb6ac42dc0b419a543fca6896.png high
订阅任务处理情况(柱状图说明) 展示内容 展示 DolphinDB 内部各订阅任务的 processedMsgCount;横轴为不同市场订阅任务,纵轴为已处理消息总数,用于掌握消费进度与排查积压/中断 low
最新消息预览图 图片URL https://cdn.dolphindb.cn/resources/7yYQQnTSb6jgKDkmbumgd/025b8d6bbb9c28a3d82a567118b055c8.png high
最新消息预览(图示说明) 包含字段示例 表格包含证券代码、交易日、状态、预收盘价、开盘价等字段,并提供字段筛选功能,用于在线验证数据准确性与解析正确性 low
WindTDF 插件(第三方 SDK) 潜在问题 可能出现内存耗尽(Out of Memory) high
内存耗尽规避建议 方法 合理分配流数据容量、及时管理 session 的变量 medium
DolphinDB 行情接入插件 除 WindTDF 外的示例 通联、华锐 AMD、华泰 Insight 等主流平台的行情接入插件 high
DolphinDB 功能插件 覆盖能力示例 数据存取、消息队列、机器学习等多种功能插件 medium
DolphinDB 插件市场 引导动作 欢迎前往 DolphinDB 插件市场浏览完整清单 low
技能认证特训营第二期报名 报名链接 https://www.qingsuyun.com/h5/e/217471/5/ high