多品种金融数据高效导入丨DolphinDB 希施玛历史数据自动化导入模块介绍

发布于:2025-04-04 ⋅ 阅读:(19) ⋅ 点赞:(0)

希施玛数据的原始历史数据包含多层次市场结构与高频时序特征,因此在标准化入库过程中,需要完成库表分区设计、数据处理转换和分布式存储等多个环节。针对希施玛数据的上述特征,DolphinDB 提供了高效数据导入解决方案 —— CsmarData 模块。CsmarData 通过结构化数据处理流水线,实现了多品种金融数据的高效导入。该导入方案采用模块化设计,能够有效存储复杂的金融数据,并为量化投研提供高质量的基础数据支持。本文将详细介绍 CsmarData 模块的实现过程及最佳实践。

目前该模块已覆盖以下几类核心数据源:

1. 历史数据文件结构

在使用本教程功能模块时,需要用户自行将希施玛数据解压,并确保在主目录下包含以日期命名的日期目录,每个日期目录下包含各个市场所有数据源该日期的 csv 文件。

|—— level2

|      |—— 20211201

|      |      |—— DCEL2
|      |      |      |—— CMF
|      |      |      |      |—— ArbiQuotation
|      |      |      |      |      |—— xxx.csv
|      |      |      |      |      |—— ...
|      |      |      |      |—— MarchpriceQty
|      |      |      |      |      |—— xxx.csv
|      |      |      |      |      |—— ...
|      |      |      |      |—— OrderStatistic
|      |      |      |      |—— TAQ
|      |      |      |—— CMO
|      |      |      |      |—— ArbiQuotation
|      |      |      |      |      |—— xxx.csv
|      |      |      |      |      |—— ...
|      |      |—— CZCEL2
|      |      |—— CFFEXL2
|      |      |—— GFEXL2
|      |      |—— INEL2
|      |      |—— SHFEL2
|      |      |—— SSEL2
|      |      |      |—— STOCK
|      |      |—— SZSEL2

|      |—— 20211202

|      |      |—— DCEL2
|      |      |      |—— CMF
|      |      |      |      |—— ArbiQuotation
|      |      |      |      |      |—— xxx.csv
|      |      |      |      |      |—— ...
|      |      |      |      |—— MarchpriceQty
|      |      |      |      |      |—— xxx.csv
|      |      |      |      |      |—— ...
|      |      |      |      |—— OrderStatistic
|      |      |      |      |—— TAQ
|      |      |      |—— CMO
|      |      |      |      |—— ArbiQuotation
|      |      |      |      |      |—— xxx.csv
|      |      |      |      |      |—— ...
|      |      |—— CZCEL2
|      |      |—— CFFEXL2
|      |      |—— GFEXL2
|      |      |—— INEL2
|      |      |—— SHFEL2
|      |      |—— SSEL2
|      |      |—— SZSEL2

注意:以上目录结构为希施玛原始文件目录结构,导入数据的代码根据以上的目录结构开发,用户需确保解压后的目录结构保持一致。

各市场列表如下:

表1-1 市场代码一览表

名称 代码
上交所 SSE
深交所 SZSE
上期所 SHFE
上期能源 INE
大商所 DCE
广期所 GFEX
中金所 CFFEX
郑商所 CZCE

2. 模块介绍

CsmarData 模块主要包含数据表结构数据库和分区表创建数据导入三部分。

2.1 支持的数据源信息

目前该模块支持的数据源及数据市场信息如下所示:

  • 股票

表 2-1 股票数据支持的数据源和市场

数据源 市场
Level-2快照行情 上交所、深交所
逐笔委托 上交所、深交所
逐笔成交 上交所、深交所
  • 期货期权

表 2-2 期货期权数据支持的数据源和市场

2.2 数据表结构

tbSchema 文件夹下的模块是根据本文第二章节中的合并规则整理的数据结构。该文件夹下有子文件夹 csvSchema 和 dfsSchema 。

  • csvSchema 目录下的文件用于指定 DolphinDB 读取 csv 文件时的数据格式
  • dfsSchema 目录下的文件用于指定数据存入数据库的数据格式

每个子文件夹下进一步分为 stock 和 futures 子目录,分别存放股票和期货期权的数据结构。

2.3 数据库和分区表创建

数据库和分区表创建包括两个模块文件:CreateDB.dos 和 CreateTB.dos

  • CreateDB.dos 用于创建存储希施玛数据的数据库
  • CreateTB.dos 用于创建存储希施玛数据的分布式表。具体表结构可参看6.3章节。

基于客户的实践经验,确定了如下的分区方案:

  • 股票

表 2-3 股票数据分区方案

存储方案 存储引擎 分区方案 分区列 排序列
沪深分开存储 TDSB 时间维度按天分区 + 证券代码维度 HASH 25 分区 TradingDate 和 Symbol Symbol+ TradingTime
沪深合并存储 TDSB 时间维度按天分区 + 证券代码维度 HASH 50 分区 TradingDate 和 Symbol Market+Symbol+ TradingTime
  • 期货期权

表 2-4 期货期权数据分区方案

数据源 存储方案 存储引擎 分区方案 分区列 排序列
期货期权-分笔数据 多市场、期货期权合并 TSDB 时间维度按天分区 + 证券代码维度 HASH 30 分区 TradingDate 和 Symbol Market+Symbol+ TradingTime
期货-套利深度行情 多市场合并 TSDB 时间维度按天分区 TradingDate Market+Symbol+ TradingTime
期货期权-分价成交量行情 多市场、期货期权合并 TSDB 时间维度按天分区 TradingDate Market+Symbol+ TradingTim
期货期权-委托统计行情 多市场、期货期权合并 TSDB 时间维度按天分区 TradingDate Market+Symbol+ TradingTim
期货期权-委托队列 期货期权合并 TSDB 时间维度按天分区 + 证券代码维度 HASH 50 分区 TradingDate 和 Symbol Symbol+ TradingTime
期货期权-静态数据 期货期权合并 OLAP 时间维度按年分区 TradingDate /

2.4 去重方案

  • 为避免重复提交任务或重复导入数据,每次导入前,应将库内已有的对应日期的数据删除
  • 为避免当天数据中存在重复,将当天市场数据读入内存,使用 isDuplicated([...], LAST) 函数进行去重后再导入数据库

表 2-5 股票数据去重方案

2.5 数据导入

数据导入部分包含 loadOneDayData 文件夹和 LoadCsmarData.dos,作用如下:

  • loadOneDayData 包含了两个子目录 stock 和 futures, 分别存放导入一天希施玛的股票数据和期货期权数据导入脚本。其中股票数据包含沪深快照数据、逐笔委托和逐笔成交数据;期货期权数据包括分笔数据、套利深度行情、委托统计行情、分价成交量行情、委托队列和静态数据。
  • LoadCsmarData.dos 用于导入指定目录下的所有希施玛数据,是对前面所有模块的整合。在应用层面,用户只需要了解该模块中的主要函数即可。

autoLoadCsmarStockData

语法

autoLoadCsmarStockData(fileDir, dataSource, dbName="dfs://Csmar_Level2",
                        tableName=NULL, market="ALL", startDate=NULL, 
                        endDate=NULL, parallel=1, initialDB=false, 
						initialTB=false,isDataDuplicated=true)

参数

  • fileDir 指定的存放数据的路径,该目录下的第一级子目录必须是形如 “20221201” 的日期。
  • dataSource 数据源,只能 "Snapshot", "Entrust", "Trade" 三选一。
  • dbName 数据库名称,默认 "dfs://Csmar_Level2"。
  • tableName 分布式表名称,如果用户没有额外指定表名,则默认表名 "snapshot", "entrust", "trade"。
  • market 交易所,目前只能 "ALL", "SZSE", "SSE" 三选一。当 market="ALL" 时,会将沪深的数据全部导入一张名为 tableName 的分布式表;否则,会以分开存储的形式创建名为 tableName+market 的一张分布表(比如 "snapshotSZSE")并只导入 market 一个交易所的数据。
  • startDate 字符串,导入数据的起始日期,比如 “20220101”(包括这一天)。若 startDate=NULL,则对起始日期不做判断。
  • endDate 字符串,导入数据的结束日期,比如 “20221231”(包括这一天)。若 endDate=NULL,则对结束日期不做判断。
  • parallel 并行度,控制后台提交的任务数目。
  • initialDB 一个布尔值,是否需要初始化数据库。如果已经存在名为 dbName 的数据库,当 initialDB=true 时,会删除原来的数据库并重新创建;否则会保留原来的数据库并输出 "[dbName] 数据库已经存在" 的提示。
  • initialTB 一个布尔值,是否需要初始化分布式表。如果在 dbName 数据库下已经存在名为 tbName 的表,当 initialTB=true 时,会删除原来的表并重新创建;否则会保留原来的表并输出 "数据库 [dbName] 已经存在表 [tbName]" 的提示。

详情

将 fileDir 路径下从 startDate 到 endDate 日期的股票 dataSource 数据导入 dbName 数据库中的 tableName 表里

autoLoadCsmarFuturesData

语法

autoLoadCsmarFuturesData(fileDir, dataSource, dbName=NULL, tbName=NULL, 
                         markets="ALL", startDate=NULL, endDate=NULL, parallel=1, 
                         initialDB=false, initialTB=false)

参数

  • fileDir 指定的存放数据的路径,该目录下的第一级子目录必须是形如 “20221201” 的日期。
  • dataSource 数据源,目前支持"TAQ"(十档行情), "Arbi"(套利深度行情), "MarchpriceQty"(分价成交量行情), "OrderStatistic"(委托统计行情), "OrderQueue"(委托队列),"BasicInfo"(静态数据)。
  • dbName 数据库名称,默认"dfs://Csmar_Futures_" + dataSource,导入十档行情数据时,如果不指定数据库名,那么默认数据库名为 "dfs://Csmar_Futures_TAQ" 
  • tbName 分布式表名称,如果用户没有额外指定表名,则默认表名 为dataSource数据源名称,导入十档行情数据时,如果不指定数据表名,那么默认的表名为:"TAQ" 
  • markets 交易所,不通的数据源支持的市场不同(见文档开头的表格)。当market指定时,只导入指定的市场的数据导名为tableName的表中;当 market="ALL" 时,会将该数据源支持的市场全部导入一张名为 tableName 的分布式表。例如导入十档行情数据时,指定 market = [“CZCE“,”DCE”,”INE”],那么只导入以上三个交易所的十档行情数据。
  • startDate 字符串,导入数据的起始日期,比如 “20220101”(包括这一天)。若 startDate=NULL,则对起始日期不做判断。
  • endDate 字符串,导入数据的结束日期,比如 “20221231”(包括这一天)。若 endDate=NULL,则对结束日期不做判断。
  • parallel 并行度,控制后台提交的任务数目。
  • initialDB 一个布尔值,是否需要初始化数据库。如果已经存在名为 dbName 的数据库,当 initialDB=true 时,会删除原来的数据库并重新创建;否则会保留原来的数据库并输出 "[dbName] 数据库已经存在" 的提示。
  • initialTB 一个布尔值,是否需要初始化分布式表。如果在 dbName 数据库下已经存在名为 tbName 的表,当 initialTB=true 时,会删除原来的表并重新创建;否则会保留原来的表并输出 "数据库 [dbName] 已经存在表 [tbName]" 的提示。

详情

将 fileDir 路径下从 startDate 到 endDate 日期的期货期权 dataSource 数据导入 dbName 数据库中的 tableName 表里,默认期货期权数据合并。

getJobStatus

语法

getJobStatus(jobid)

参数

jobid 后台任务描述

详情

查询后台任务中任务描述为 jobid 的任务状态

getJobDetails

语法

getJobDetails(jobid)

参数

jobid 后台任务描述

详情

输出后台任务中任务描述为 jobid 的中间信息

3. 使用示例

为了易于读者使用,本部分给出了CsmarData模块的使用示例。

  • 第一步:用户按照第 1 章文件结构中的要求解压并准备好数据。文件结构如下图:

图 3-1 数据目录结构示例

  • 第二步:将模块同步到 DolphinDB 的 sever/modules 的目录下。

图 3-2 模块上传示例

  • 第三步:载入模块和导入数据方法如下:

股票数据

use DolphinDBModules::CsmarData::LoadCsmarData

// 登录账户
login("admin", "123456")

// 设置文件目录
fileDir = "/hdd/hdd2/data/xsm/csmar/"

/** 沪深合并*/
// 导入快照数据,单线程
jobid1 = autoLoadCsmarStockData(fileDir=fileDir, dataSource="Snapshot", parallel=1)
getJobStatus(jobid1)   // 查看任务状态

// 导入逐笔委托,3 并发
jobid2 = autoLoadCsmarStockData(fileDir=fileDir, dataSource="Entrust", parallel=3)
getJobStatus(jobid2)   // 查看任务状态

// 导入逐笔成交,3 并发
jobid3 = autoLoadCsmarStockData(fileDir=fileDir, dataSource="Trade", parallel=3)
getJobStatus(jobid3)   // 查看任务状态

期货期权数据

use DolphinDBModules::CsmarData::LoadCsmarData

// 登录账户
login("admin", "123456")

// 设置文件目录
fileDir = "/hdd/hdd2/data/xsm/csmar/"

/**多市场合并 */
// 导入十档行情 数据,郑商所、大商所、上期能源 5并行
jobid4 = autoLoadCsmarFuturesData(fileDir=fileDir, dataSource="TAQ", markets = ["CZCE","DCE","INE"], parallel=5)
getJobStatus(jobid4) 

// 导入套利深度行情 数据,支持的所有市场 单线程
jobid5 = autoLoadCsmarFuturesData(fileDir=fileDir, dataSource="Arbi", markets = "ALL", parallel=1)
getJobStatus(jobid5) 

// 导入分价成交量行情 数据,支持的所有市场 单线程
jobid6 = autoLoadCsmarFuturesData(fileDir=fileDir, dataSource="MarchpriceQty", markets = "ALL", parallel=1)
getJobStatus(jobid6) 

// 导入委托统计行情 数据,支持的所有市场 单线程
jobid7 = autoLoadCsmarFuturesData(fileDir=fileDir, dataSource="OrderStatistic", markets = "ALL", parallel=1)
getJobStatus(jobid7) 

// 导入 委托队列 数据,支持的所有市场 单线程
jobid8 = autoLoadCsmarFuturesData(fileDir=fileDir, dataSource="OrderQueue", markets = "ALL", parallel=1)
getJobStatus(jobid8) 

// 导入 委托队列 数据,支持的所有市场 单线程
jobid9 = autoLoadCsmarFuturesData(fileDir=fileDir, dataSource="BasicInfo", markets = "ALL", parallel=1)
getJobStatus(jobid9) 

4. 注意事项

数据文件路径 fileDir 的设置

在模块中数据文件查找的方法如下:

  • 从 fileDir 目录下递归查找所有由 8 位数字组成的文件夹(即形如 “20250221” 的日期)。
  • 再将找到的所有日期和 startDate、endDate 进行字符串比较,从而筛选出符合要求的导入数据日期。
  • 最后在每个日期文件夹下,递归查找所有以 csv 结尾的文件,从而获取该日期下的所有 csv 文件的绝对路径。

因为第一步是查找所有 8 位数字组成的文件夹,所以 autoLoadCsmarStockData 和 autoLoadCsmarfuturesData函数的 fileDir 的路径下必须有一层目录是以形如 “20250221” 的日期命名。

所以如果用户想要导入一天的数据,需要通过 startDate、endDate 参数控制导入日期,而不是通过 fileDir 参数。

数据源与市场字段的设置

导入数据时,模块会按照数据源名称和市场名称查找对应目录中的数据文件,所以数据源名称和市场需要填写正确。例如,期货期权分笔数据支持的市场为:CZCE、DCE、INE、CFFEX、SHFE和GFEX,如果填写markets =”ALL”,相当于 markets = [“CZCE”,”DCE”,”INE”,”CFFEX”,”SHFE”,”GFEX”] ,若用户只有其中几个市场的数据,请具体填写,如: markets = [“CZCE”,”CFFEX”,”GFEX”]。

5. 性能测试

本数据导入模块(CsmarData)专为处理Level-2高频数据设计,为确保用户对系统资源占用的可预期性,本研究通过相关能测试对模块运行效能进行量化评估。测试结果表明,在常规硬件配置环境下,数据导入过程中该模块内存占用率比较理想。针对不同应用场景下的性能优化需求,我们提了相关性能优化建议,用户可根据实际业务需求选择适配的调优方案以实现系统效能的阶梯式提升。

5.1 测试环境

表 5-1 测试环境软硬件信息

软硬件项 信息
OS(操作系统) CentOS Linux 7 (Core)
内核 3.10.0-1160.el7.x86_64
CPU Intel(R) Xeon(R) Gold 5220R CPU @ 2.20GHz
内存 356G
磁盘 4块 SSD,3.5 TB 固态硬盘 SATA 读取密集型 6 Gbps 512 2.5 英寸 Flex Bay AG 硬盘 1 DWPD单盘测试随机写- 平均写入IO:266MB/s

5.2 性能结果

股票

表 5-2 沪深数据合并存储的导入性能

数据源 数据量 数据天数 耗时(min) RPS(W/s) 吞吐量(MB/s) 原始 csv 大小(GB) 单副本磁盘占用大小(GB) 压缩比 并发数 最大内存占用(GB)
snapshot 103,278,591 5 37 4.6 22.1 48.0 9.3 5.2 5 10.4
entrust 584,645,280 5 36 27.7 67.6 142.6 19.0 7.5 5 9.9
trade 773,129,257 5 58 22.2 30.6 104.0 16.4 6.3 5 10.7

期货-期权

表 5-3 TAQ 与 OrderStatistic 数据源多市场合并导入性能

数据源 数据量 数据天数 数据来源(市场) 耗时(min) RPS(W/s) 吞吐量(MB/s) 原始 csv 大小(GB) 单副本磁盘占用大小(GB) 压缩比 并发数 最大内存占用(GB)
TAQ 162,040,027 5 SHFE、DCE、INE、CFFEX 13 20.8 63.5 48.4 7.6 6.37 5 10.4
OrderStatistic 71,790,026 5 DCE 7 17.1 8.1 3.3 1.3 2.54 5 17.7

5.3 吞吐量提升建议

如需提高数据导入的吞吐量,可参考以下优化策略:

(1)通过设置参数 parallel,增加后台导入任务的数据,提高导入的并行度。注意环境内存资源的使用。

(2)使用读写性能更好的硬盘。希施玛数据为一个标的一个csv文件,需要循环读取很多文件,所以性能瓶颈往往是磁盘,内存占用并不大。

(3)数据分盘存储,同时从多个盘读取数据导入,提升吞吐量。

6. 总结

DolphinDB CsmarData 模块通过结构化流水线与分布式存储技术的深度整合,为希施玛多层级高频数据提供了标准化、高性能的入库解决方案。本模块针对股票、期货期权等核心金融品种,设计兼容多市场、多数据源的统一存储模型,结合时间-证券代码双重维度分区策略,有效支撑了百亿级高频历史数据的高效存取。性能测试表明,在常规硬件环境下模块单日数据处理吞吐量尚可,且内存占用率稳定可控,充分验证了其在量化投研场景下的工程实用性。

7. 附录

7.1 模块代码

CsmarData 模块:CsmarData.zip

7.2 异常处理

对于导入过程中可能出现的问题,会在日志中输出对应的报错提示信息。

表 7-1 常见异常信息

异常情况 输出信息
创建数据库时,名为 dbName 的数据库已经存在且 initialDB=false {"code": "warning","message": "[dbName] 数据库已经存在"}
创建分布式表时,名为 tableName 的表已经存在且 initialDB=false {"code": "warning","message": "数据库 [dbName] 已经存在表 [tableName]"}
数据导入时,fileDir 目录下没有形如 “20250221” 的文件夹 {"code": "warning","message": "[fileDir] 路径下没有找到指定日期的文件夹,请确认文件路径"}
股票数据导入时,dataSource 不是 "Snapshot", "Entrust", "Trade"; 三者之一期货期权数据导入时,dataSource 不在"TAQ", "Arbi", "MarchpriceQty", "OrderStatistic", "OrderQueue","BasicInfo"之中 {"code": "error","message": "数据源 [dataSource] 暂时不支持"}
股票数据导入时数据导入时,market 不属于 “ALL“, ”SSZ“, ”SZSE“期货期权数据导入时,不在数据源支持的市场列表之中 {"code": "error","message": "市场 [market] 暂时不支持"}
数据导入时,startDate 和 endDate 不是 NULL 或者形如 “20250221” 的字符串 {"code": "error","message": "开始日期 [startDate] 格式有误"}{"code": "error","message": "结束日期 [endDate] 格式有误"}
实际 csv 文件的数据列数和 CsvSchema.dos 模块里面预设的表结构的列数不一致 {"code": "error","message": "[csvPath] 的数据格式有误,列数不匹配"}
日期文件夹下,没有对应的 csv 文件 {"code": "error","message": "深交所 [day] 日期的 [csvNames] 的 csv 文件不全或者不存在"}{"code": "error","message": "上交所 [day] 日期的 [csvNames] 的 csv 文件不全或者不存在"}…
其他错误【通过 try{}catch(ex){} 捕获异常】 {"code": "error","message": 输出报错信息 ex}

7.3 行情数据存储模型设计

希施玛各类历史数据文件在不同时间段可能存在表结构的变化。因此,要把这些不同时间段的同一类数据导入到 DolphinDB 同一张表中,需要考虑到所有变化,并设计出兼容所有数据的库表结构。本部分详细介绍希施玛原始数据文件与 DolphinDB 数据库表的映射关系。

股票数据

以下列出了希施玛数据中股票逐笔委托、行情快照、逐笔成交表的详细字段名、字段类型和字段含义。

Level-2 快照数据

  • 深交所数据(41列)

表 7-2 深交所快照数据字段信息

字段名 字段含义 数据类型
Symbol 证券代码 SYMBOL
TradingDate 交易归属日期 DATE
TradingTime 交易发生时间 TIMESTAMP
PreClosePrice 昨收盘价 DOUBLE
OpenPrice 开盘价 DOUBLE
HighPrice 最高价 DOUBLE
LowPrice 最低价 DOUBLE
LastPrice 最新成交价 DOUBLE
TotalNo 成交总笔数 DOUBLE
TradeNo 分笔期间成交笔数 DOUBLE
TotalVolume 成交总量 DOUBLE
TradeVolume 分笔期间成交量 DOUBLE
TotalAmount 成交总额 DOUBLE
TradeAmount 分笔期间成交金额 DOUBLE
PERatio1 市盈率1 DOUBLE
PERatio2 市盈率2 DOUBLE
TotalSellOrderVolume 委托卖出总量 DOUBLE
WtAvgSellPrice 加权平均委卖 DOUBLE
SellLevelNo 卖盘价位数 INT
SellPrice 申卖价10档 DOUBLE[]
SellVolume 申买量10档 DOUBLE[]
TotalBuyOrderVolume 委托买入总量 DOUBLE
WtAvgBuyPrice 加权平均买入价 DOUBLE
BuyLevelNo 买盘价位数 INT
BuyPrice 申买价10档 DOUBLE[]
BuyVolume 申买量10档 DOUBLE[]
UNIX 格林威治时刻 DOUBLE
Market 市场 SYMBOL
PriceUpLimit 涨停价 DOUBLE
PriceDownLimit 涨跌价 DOUBLE
PriceUpdown1 升跌一 DOUBLE
PriceUpdown2 升跌二 DOUBLE
ClosePrice 今收盘价 DOUBLE
SecurityPhaseTag 当前品种交易状态 SYMBOL
NAV 基金T-1日净值 DOUBLE
IOPV 基金实时参考净值 DOUBLE
PremiumRate 权证溢价率 DOUBLE
TotalBuyOrderNo 委买笔数10档 DOUBLE[]
TotalSellOrderNo 委卖笔数10档 DOUBLE[]
SymbolSource 证券代码源 SYMBOL
SecurityID 证券统一编码 DOUBLE
  • 上交所数据(51列)

表 7-3 上交所快照数据字段信息

字段名 字段含义 数据类型
Symbol 证券代码 SYMBOL
TradingDate 交易归属日期 DATE
TradingTime 交易发生时间 TIMESTAMP
PreClosePrice 昨收盘价 DOUBLE
OpenPrice 开盘价 DOUBLE
HighPrice 最高价 DOUBLE
LowPrice 最低价 DOUBLE
LastPrice 最新成交价 DOUBLE
TradeStatus 当前品种状态 DOUBLE
SellLevelNo 申卖价格档位数 INT
SellPrice 委卖价10档 DOUBLE[]
BuyPrice 委买价10档 DOUBLE[]
BuyLevelNo 申买价格档位数 INT
SellVolume 委卖量10档 DOUBLE[]
BuyVolume 委买量10档 DOUBLE[]
TotalNo 成交总笔数 DOUBLE
TotalVolume 成交总量 DOUBLE
TotalAmount 成交总额 DOUBLE
TotalBuyOrderVolume 委托买入总量 DOUBLE
WtAvgBuyPrice 加权平均委买价格 DOUBLE
BondWtAvgBuyPrice 债券加权平均委买价格 DOUBLE
TotalSellOrderVolume 委托卖出总量 DOUBLE
WtAvgSellPrice 加权平均委卖价格 DOUBLE
BondWtAvgSellPrice 债券加权平均委卖价格 DOUBLE
IOPV ETF净值估计 DOUBLE
YTM 到期收益率 DOUBLE
UNIX 格林威治时间 DOUBLE
Market 交易所代码 SYMBOL
ClosePrice 今日收盘价 DOUBLE
TotalBuyOrderNo 委买笔数10档 DOUBLE[]
TotalSellOrderNo 委卖笔数10档 DOUBLE[]
ETFBuyNo ETF申购笔数 DOUBLE
ETFBuyVolume ETF申购数量 DOUBLE
ETFBuyAmount ETF申购金额 DOUBLE
ETFSellNo ETF赎回笔数 DOUBLE
ETFSellVolume ETF赎回数量 DOUBLE
ETFSellAmount ETF赎回金额 DOUBLE
WithdrawBuyNo 买入撤单笔数 DOUBLE
WithdrawBuyVolume 买入撤单数量 DOUBLE
WithdrawBuyAmount 买入撤单金额 DOUBLE
WithdrawSellNo 卖出撤单笔数 DOUBLE
WithdrawSellVolume 卖出撤单数量 DOUBLE
WithdrawSellAmount 卖出撤单金额 DOUBLE
TotalBuyNo 买入总笔数 DOUBLE
TotalSellNo 卖出总笔数 DOUBLE
MaxBuyDuration 买入委托成交最大等待时间 DOUBLE
MaxSellDuration 卖出委托成交最大等待时间 DOUBLE
BuyOrderNo 买方委托价位数 DOUBLE
SellOrderNo 卖方委托价位数 DOUBLE
SecurityID 证券统一编码 DOUBLE
  • 沪深合并(63列)

表 7-4 沪深合并快照数据字段信息

字段名 描述 数据类型 说明
Symbol 证券代码 SYMBOL
TradingDate 交易归属日期 DATE
TradingTime 交易发生时间 TIMESTAMP
PreClosePrice 昨收盘价 DOUBLE
OpenPrice 开盘价 DOUBLE
HighPrice 最高价 DOUBLE
LowPrice 最低价 DOUBLE
LastPrice 最新成交价 DOUBLE
TradeStatus 当前品种状态 SYMBOL 只适用于SSE
SellLevelNo 申卖价格档位数/卖盘价位数 INT
SellPrice 委卖价 DOUBLE[ ] 委卖价10档
BuyPrice 委买价 DOUBLE[ ] 委买价10档
BuyLevelNo 申买价格档位数/买盘价位数 INT
SellVolume 委卖量 DOUBLE[ ] 委卖量10档
BuyVolume 委买量 DOUBLE[ ] 委买量10档
TotalNo 成交总笔数 DOUBLE
TotalVolume 成交总量 DOUBLE
TotalAmount 成交总额 DOUBLE
TotalBuyOrderVolume 委托买入总量 DOUBLE
WtAvgBuyPrice 加权平均委买价格 DOUBLE
BondWtAvgBuyPrice 债券加权平均委买价格 DOUBLE 只适用于SSE
TotalSellOrderVolume 委托卖出总量 DOUBLE
WtAvgSellPrice 加权平均委卖价格 DOUBLE
BondWtAvgSellPrice 债券加权平均委卖价格 DOUBLE 只适用于SSE
IOPV ETF 净值估计 DOUBLE
YTM 到期收益率 DOUBLE 只适用于SSE
UNIX 格林威治时间 DOUBLE
Market 市场 SYMBOL
ClosePrice 今日收盘价 DOUBLE
TotalBuyOrderNo 委买笔数 DOUBLE[ ] 委买笔数10档
TotalSellOrderNo 委卖笔数 DOUBLE[ ] 委卖笔数10档
ETFBuyNo ETF 申购笔数 DOUBLE 只适用于SSE
ETFBuyVolume ETF 申购数量 DOUBLE 只适用于SSE
ETFBuyAmount ETF 申购金额 DOUBLE 只适用于SSE
ETFSellNo ETF 赎回笔数 DOUBLE 只适用于SSE
ETFSellVolume ETF 赎回数量 DOUBLE 只适用于SSE
ETFSellAmount ETF 赎回金额 DOUBLE 只适用于SSE
WithdrawBuyNo 买入撤单笔数 DOUBLE 只适用于SSE
WithdrawBuyVolume 买入撤单数量 DOUBLE 只适用于SSE
WithdrawBuyAmount 买入撤单金额 DOUBLE 只适用于SSE
WithdrawSellNo 卖出撤单笔数 DOUBLE 只适用于SSE
WithdrawSellVolume 卖出撤单数量 DOUBLE 只适用于SSE
WithdrawSellAmount 卖出撤单金额 DOUBLE 只适用于SSE
TotalBuyNo 买入总笔数 DOUBLE 只适用于SSE
TotalSellNo 卖出总笔数 DOUBLE 只适用于SSE
MaxBuyDuration 买入委托成交最大等待时间 DOUBLE 只适用于SSE
MaxSellDuration 卖出委托成交最大等待时间 DOUBLE 只适用于SSE
BuyOrderNo 买方委托价位数 DOUBLE 只适用于SSE
SellOrderNo 卖方委托价位数 DOUBLE 只适用于SSE
SymbSource 证券代码源 SYMBOL 只适用于SZSE
SecurityID 证券统一编码 SYMBOL
NAV 基金T-1日净值 DOUBLE 只适用于SZSE
PERatio1 市盈率 1 DOUBLE 只适用于SZSE
PERatio2 市盈率 2 DOUBLE 只适用于SZSE
PremiumRate 权证溢价率 DOUBLE 只适用于SZSE
PriceDownLimit 跌停价 DOUBLE 只适用于SZSE
PriceUpLimit 涨停价 DOUBLE 只适用于SZSE
PriceUpdown1 升跌 一 DOUBLE 只适用于SZSE
PriceUpdown2 升跌二 DOUBLE 只适用于SZSE
SecurityPhaseTag 当前品种交易 状态 SYMBOL 只适用于SZSE
TradeAmount 分笔期间成交金额 DOUBLE 只适用于SZSE
TradeNo 分笔期间成交笔数 DOUBLE 只适用于SZSE
TradeVolume 分笔期间成交量 DOUBLE 只适用于SZSE

逐笔委托数据

  • 深交所(13列)

表 7-5 深交所逐笔委托数据字段信息

字段名 字段含义 字段类型
Symbol 证券代码 SYMBOL
TradingDate 交易归属日期 DATE
TradingTime 交易发生时间 TIMESTAMP
SetID 频道代码 INT
RecID 消息记录号 LONG
OrderPrice 委托价格 DOUBLE
OrderVolume 委托数量 DOUBLE
OrderType 订单类别 SYMBOL
UNIX 格林威治时间 DOUBLE
Market 市场 SYMBOL
SymbolSource 证券源代码 SYMBOL
OrderCode 委托买卖方向 SYMBOL
SecurityID 证券统一编码 DOUBLE
  • 上交所(15列)

表 7-6 上交所逐笔委托数据字段信息

字段名 字段含义 字段类型
Symbol 代码 SYMBOL
TradingDate 交易归属日期 DATE
TradingTime 数据生成时间 TIMESTAMP
SetID 频道代码 INT
RecID 委托序号 LONG
OrderPrice 委托价格 DOUBLE
OrderType 订单类别 DOUBLE
UNIX 格林威治时间 DOUBLE
Market 市场 SYMBOL
OrderCode 委托买卖方向/ 当前产品状态 SYMBOL
SecurityID 统一证券编码 DOUBLE
OrderID 原始订单号 DOUBLE
Balance 剩余委托量 DOUBLE
RecNO 业务序号 LONG
TradeVolume 已成交的委托数量(2024.03.01起新增字段) DOUBLE
  • 沪深合并(17列)

表 7-7 沪深合并逐笔委托数据字段信息

字段名 字段含义 字段类型 说明
Symbol 证券代码 SYMBOL
TradingDate 交易归属日期 DATE
TradingTime 交易发生时间 TIMESTAMP
SetID 频道代码 INT
RecID 委托序号/消息记录号 LONG
OrderPrice 委托价格 DOUBLE
OrderType 订单类别 SYMBOL
UNIX 格林威治时间 DOUBLE
Market 市场 SYMBOL
OrderCode 委托买卖方向 SYMBOL
SecurityID 证券统一编码 SYMBOL
OrderID 原始订单号 DOUBLE 只适用于SSE
Balance 剩余委托量 DOUBLE 只适用于SSE
RecNO 业务序号 LONG 只适用于SSE
TradeVolume 已成交的委托数量 DOUBLE 只适用于SSE(2024.03.01起新增字段)
OrderVolume 委托数量 DOUBLE 只适用于SZSE
SymbolSource 证券代码源 SYMBOL 只适用于SZSE

逐笔成交数据

  • 深交所(14列)

表 7-8 深交所逐笔成交数据字段信息

字段名 字段含义 字段类型
Symbol 证券代码 SYMBOL
TradingDate 交易归属日期 DATE
TradingTime 交易发生时间 TIMESTAMP
BuyOrderID 买方委托索引 DOUBLE
SellOrderID 卖方委托索引 DOUBLE
TradePrice 成交价格 DOUBLE
TradeVolume 成交数量 DOUBLE
TradeType 成交类型 SYMBOL
UNIX 格林威治时间 DOUBLE
Market 市场 SYMBOL
SecurityID 统一证券编码 DOUBLE
SymbolSource 证券代码源 SYMBOL
SetID 频道代码 INT
RecID 消息记录号 LONG
  • 上交所(15列)

表 7-9 上交所逐笔成交数据字段信息

字段名 字段含义 字段类型
Symbol 证券代码 SYMBOL
TradingDate 交易归属日期 DATE
TradingTime 交易发生时间 TIMESTAMP
RecID 成交序号 LONG
TradeChannel 成交通道 INT
TradePrice 成交价格 DOUBLE
TradeVolume 成交数量 DOUBLE
TradeAmount 成交金额 DOUBLE
UNIX 格林威治时间 DOUBLE
Market 市场 SYMBOL
BuyRecID 买方订单号 INT
SellRecID 卖方订单号 INT
BuySellFlag 内外盘标志 SYMBOL
SecurityID 统一证券编码 DOUBLE
RecNO 业务序号 LONG
  • 沪深合并(20列)

表 7-10 沪深合并逐笔成交数据字段信息

字段名 字段含义 字段类型 说明
Symbol 证券代码 SYMBOL
TradingDate 交易归属日期 DATE
TradingTime 交易发生时间 TIMESTAMP
RecID 成交序号/消息记录号 LONG
TradeChannel 成交通道 INT 只适用于SSE
TradePrice 成交价格 DOUBLE
TradeVolume 成交数量 DOUBLE
TradeAmount 成交金额 DOUBLE
UNIX 格林威治时间 DOUBLE
Market 市场 SYMBOL
BuyRecID 买方订单号 INT 只适用于SSE
SellRecID 卖方订单号 INT 只适用于SSE
BuySellFlag 内外盘标志 SYMBOL 只适用于SSE
SecurityID 证券统一编码 SYMBOL
RecNO 业务序号 LONG 只适用于SSE
BuyOrderID 买方委托索引 DOUBLE 只适用于SZSE
SellOrderID 卖方委托索引 DOUBLE 只适用于SZSE
SetID 频道代码 INT 只适用于SZSE
SymbolSource 证券代码源 SYMBOL 只适用于SZSE
TradeType 成交类型 SYMBOL 只适用于SZSE

期货期权

以下列出了希施玛数据中期货期权分笔数据、套利深度行情、分价成交量行情、委托统计行情、委托队列、静态数据表的详细字段名、字段类型和字段含义。

期货期权-分笔数据

注意:目前仅支持多市场分笔数据合并存储,期货期权合并存储。下表为多市场合并存储的字段信息。

表 7-12 期货期权分笔数据字段信息

字段名 字段含义 字段类型 说明
Symbol 合约代码 SYMBOL
ShortName 合约简称 SYMBOL
SecurityID 证券统一编码 SYMBOL
TradingDate 交易归属日期 DATE
TradingTime 交易发生时间 TIMESTAMP
LastPrice 最新成交价 DOUBLE
HighPrice 最高价 DOUBLE
LowPrice 最低价 DOUBLE
TradeVolume 分笔期间成交量 DOUBLE
TotalVolume 成交总量 DOUBLE
LastVolume 最新成交量 DOUBLE CZCE、CFFEX该字段为空
PreTotalPosition 昨持仓量 DOUBLE
TotalPosition 持仓量 DOUBLE
PrePositionChange 日增仓 DOUBLE SHFE、INE该字段为空
TotalAmount 成交总额 DOUBLE
TradeAmount 分笔期间成交金额 DOUBLE
PriceUpLimit 涨停价 DOUBLE
PriceDownLimit 跌停价 DOUBLE
PreSettlePrice 昨结算价 DOUBLE
PreClosePrice 昨收盘价 DOUBLE
OpenPrice 开盘价 DOUBLE
ClosePrice 收盘价 DOUBLE
SettlePrice 结算价 DOUBLE
LifeLow 历史最低价 DOUBLE CFFEX、SHFE&INE该字段为空
Lifehigh 历史最高价 DOUBLE CFFEX、SHFE&INE该字段为空
AveragePrice 成交均价 DOUBLE
Nolevel 深度行情数量 INT 只适用于DCE
BuyOrSell 买卖方向 SYMBOL
SellPrice 卖价 DOUBLE[ ]
BuyPrice 买价 DOUBLE[ ]
SellVolume 卖量 DOUBLE[ ]
BuyVolume 买量 DOUBLE[ ]
BidImplyQty 申买推导量 DOUBLE[ ]
AskImplyQty 申卖推导量 DOUBLE[ ]
Market 市场 SYMBOL
UNIX 格林威治时间 DOUBLE
BestBuyQty 最优价委买量 DOUBLE[ ] 只适用于DCE
BestSellQty 最优价委卖量 DOUBLE[ ] 只适用于DCE
Delta 今虚实度 DOUBLE 只适用于CFFEX、SHFE、INE
Gamma Gamma DOUBLE 只适用于DCE期权
Rho Rho DOUBLE 只适用于DCE期权
Theta Theta DOUBLE 只适用于DCE期权
Vega Vega DOUBLE 只适用于DCE期权
Amplitude 振幅 DOUBLE 只适用于CFFEX、CZCE、GFEX
BuyVOL 外盘 DOUBLE 只适用于CFFEX、CZCE、GFEX
Change 涨跌 DOUBLE 只适用于CFFEX、CZCE、GFEX
ChangeRatio 涨跌幅 DOUBLE 只适用于CFFEX、CZCE、GFEX
ContinueSign 连续合约代码 SYMBOL 只适用于CFFEX和GFEX期权
ContinueSignName 连续合约名称 SYMBOL 只适用于CFFEX和GFEX期权
DerivedBuyPrice 组合买入价 DOUBLE 只适用于CZCE
DerivedBuyVolume 组合买入数量 DOUBLE 只适用于CZCE
DerivedSellPrice 组合卖出价 DOUBLE 只适用于CZCE
DerivedSellVolume 组合卖出数量 DOUBLE 只适用于CZCE
OpenClose 开平仓性质 SYMBOL 只适用于CFFEX、CZCE、GFEX
OrderDiff 委差 DOUBLE 只适用于CFFEX、CZCE、GFEX
OrderRate 委比 DOUBLE 只适用于CFFEX、CZCE、GFEX
PositionChange 仓差 DOUBLE 只适用于CFFEX、GFEX
SellVOL 内盘 DOUBLE 只适用于CFFEX、CZCE、GFEX
TotalBuyOrderNo 买入总委托笔数 DOUBLE[ ] 只适用于CZCE
TotalBuyOrderVolume 总买入数量 DOUBLE 只适用于CZCE
TotalSellOrderNo 卖出总委托笔数 DOUBLE[ ] 只适用于CZCE
TotalSellOrderVolume 总卖出数量 DOUBLE 只适用于CZCE
VolRate 量比 DOUBLE 只适用于CFFEX、CZCE、GFEX
WtAvgBuyPrice 加权平均委买价格 DOUBLE 只适用于CZCE
WtAvgSellPrice 加权平均委卖价格 DOUBLE 只适用于CZCE
CenterChangeNo 数据中心编号 INT 只适用于SHFE、INE
ChangeNo 当前合约编号 INT 只适用于SHFE、INE
CodecPrice 编码基准价 DOUBLE 只适用于SHFE、INE
Currency 币种代码 SYMBOL 只适用于SHFE、INE
InstrumentNo 合约编码 INT 只适用于SHFE、INE期权数据
IsTrading 标明是否交易 INT 只适用于SHFE、INE期权数据
OptionsType 期权类型 SYMBOL 只适用于SHFE、INE期权数据
PacketNo 当前增量行情编号 INT 只适用于SHFE、INE
PreDelta 昨虚实度 SYMBOL 只适用于CFFEX、SHFE、INE
SettleGroupID 结算组代码 SYMBOL 只适用于CFFEX、SHFE、INE
SettleID 结算编号 INT 只适用于CFFEX、SHFE、INE
SnapNo 快照行情编号 INT 只适用于SHFE、INE期权数据
StrikePrice 执行价 DOUBLE 只适用于SHFE、INE期权数据
SymbolUnderlying 期权基础商品代码 SYMBOL 只适用于SHFE、INE期权数据
TickSize 最小变动价位 DOUBLE 只适用于SHFE、INE
UnderlyingMultiple 合约基础商品乘数 DOUBLE 只适用于SHFE、INE
UnderlyingType 合约类型 SYMBOL 只适用于SHFE、INE期权数据
VolumeMultiple 约数量乘数 INT 只适用于SHFE、INE

期货-套利深度行情

注意:目前只支持多市场数据合并存储,下表为多市场合并存储的字段信息。

表 7-13 期货套利深度行情数据字段信息

字段名 字段类型 字段类型 说明
TradingDate DATE 交易归属日期
CmbType SYMBOL 组合类型 只适用于CZCE,且 20230428日后已下线该字段
TradingTime TIMESTAMP 交易发生时间
ShortName SYMBOL 合约简称 只适用于CZCE, 20230428日后已下线该字段
FirstLeg SYMBOL 腿1合约代码 只适用于CZCE, 20230428日后已下线该字段
SecondLeg SYMBOL 腿2合约代码 只适用于CZCE, 20230428日后已下线该字段
Symbol SYMBOL 套利合约号
LastPrice DOUBLE 最新成交价 只适用于GFEX
HighPrice DOUBLE 最高价 只适用于GFEX
LowPrice DOUBLE 最低价 只适用于GFEX
LifeHigh DOUBLE 历史最高价 只适用于GFEX
LifeLow DOUBLE 历史最低价 只适用于GFEX
PriceUpLimit DOUBLE 涨停价 只适用于CZCE, 20230428日后已下线该字段
PriceDownLimit DOUBLE 跌停价 只适用于CZCE, 20230428日后已下线该字段
SecurityID SYMBOL 证券统一编码
Market SYMBOL 市场
UNIX DOUBLE 格林威治时间
SellPrice DOUBLE[ ] 卖价 卖价五档
BuyPrice DOUBLE[ ] 买价 买价五档
SellVolume DOUBLE[ ] 卖量 卖量五档
BuyVolume DOUBLE[ ] 买量 买量五档
BidImplyQty DOUBLE[ ] 申买推导量 申买推导量五档,适用于DCE和GFEX
AskImplyQty DOUBLE[ ] 申卖推导量 申卖推导量五档,适用于DCE和GFEX
BestBuyQty DOUBLE[ ] 最优价委买量 最优价委买量十档,只适用于DCE
BestSellQty DOUBLE[ ] 最优价委卖量 最优价委卖量十档,只适用于DCE
Nolevel INT 深度行情数量 只适用于DCE
TotalBuyOrderNo DOUBLE[ ] 买入总委托笔数 买入总委托笔数五档,只适用于CZCE
TotalBuyOrderVolume DOUBLE 总买入数量 只适用于CZCE
TotalSellOrderNo DOUBLE[ ] 卖出总委托笔数 卖出总委托笔数五档,只适用于CZCE
TotalSellOrderVolume DOUBLE 总卖出数量 只适用于CZCE
WtAvgBuyPrice DOUBLE 加权委买价格 只适用于CZCE,20230428日后已下线该字段
WtAvgSellPrice DOUBLE 加权委卖价格 只适用于CZCE,20230428日后已下线该字段
WtAvgBuyVolume DOUBLE 派生买量 只适用于CZCE,20230428日后已下线该字段
WtAvgSellVolume DOUBLE 派生卖量 只适用于CZCE,20230428日后已下线该字段

期货期权-分价成交量行情

注意:目前仅支持多市场数据合并存储,期货期权合并存储。下表为多市场合并存储的字段信息。

表 7-14 期货期权分价成交量行情字段信息

字段名 字段类型 字段含义 说明
Symbol SYMBOL 合约代码
SecurityID SYMBOL 证券统一编码
TradingDate DATE 交易归属日期
TradingTime TIMESTAMP 交易发生时间
Price DOUBLE[ ] 价格 价格五档
PriceBOQTY DOUBLE[ ] 买开数量 买开数量五档
PriceBEQTY DOUBLE[ ] 买平数量 买平数量五档
PriceSOQTY DOUBLE[ ] 卖开数量 卖开数量五档
PriceSEQTY DOUBLE[ ] 卖平数量 卖平数量五档
Market SYMBOL 市场
UNIX DOUBLE 格林威治时间

期货期权-委托统计行情

注意:目前仅支持多市场数据合并存储,期货期权合并存储。下表为多市场合并存储的字段信息。

表 7-15 期货期权委托统计行情字段信息

字段名 字段类型 字段含义
Symbol SYMBOL 证券代码
SecurityID SYMBOL 证券统一编码
TradingDate DATE 交易归属日期
TradingTime TIMESTAMP 交易发生时间
TotalBuyOrderVolume DOUBLE 委托买入总量
WtAvgBuyPrice DOUBLE 加权平均委买价格
TotalSellOrderVolume DOUBLE 委托卖出总量
WtAvgSellPrice DOUBLE 加权平均委卖价格
Market SYMBOL 市场
UNIX DOUBLE 格林威治时间

期货期权-委托队列

注意:目前仅支持期货期权合并存储。

表 7-16 期货期权委托队列字段信息

字段名 描述 数据类型
Symbol 证券代码 SYMBOL
SecurityID 证券统一编码 SYMBOL
TradingDate 交易归属日期 DATE
TradingTime 交易时间 TIMESTAMP
BuyPrice01 买价 一 DOUBLE
BestBuyQty 最优价委买量10档 DOUBLE[ ]
SellPrice01 卖价 一 DOUBLE
BestSellQty 最优价委卖量10档 DOUBLE[ ]
Market 市场 SYMBOL
UNIX 格林威治时间 DOUBLE

期货期权-静态数据

注意:目前仅支持期货期权合并存储。

表 7-17 期货期权静态数据字段信息

字段名 描述 数据类型 说明
Symbol 合约代码 SYMBOL
ShortName 合约简称 SYMBOL
SecurityID 证券统一编码 SYMBOL
TradingDate 交易归属日期 DATE
TradingTime 交易时间 TIMESTAMP
Variety 品种编码 SYMBOL 2023年4月28日该字段下线
StartDate 首个交易日 DATE 2023年4月28日该字段下线
EndDate 最后交易日 DATE 2023年4月28日该字段下线
VolumeMultiple 合约数量乘数 INT 2023年4月28日该字段下线
TickSize 最小报价单位 DOUBLE 2023年4月28日该字段下线
PriceUpLimit 涨停价 DOUBLE
PriceDownLimit 跌停价 DOUBLE
PreTotalPosition 昨持仓量 DOUBLE
PreClosePrice 昨收盘价 DOUBLE
PreSettlePrice 前结算价 DOUBLE
TradeStatus 合约交易状态 INT 2023年4月29日起新增字段
Market 市场 SYMBOL
UNIX 格林威治时刻 DOUBLE