暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

原创 DolphinDB 2025-04-03
31

希施玛数据的原始历史数据包含多层次市场结构与高频时序特征,因此在标准化入库过程中,需要完成库表分区设计、数据处理转换和分布式存储等多个环节。针对希施玛数据的上述特征,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 和 SymbolSymbol+ TradingTime
沪深合并存储TDSB时间维度按天分区 + 证券代码维度 HASH 50 分区TradingDate 和 SymbolMarket+Symbol+ TradingTime
  • 期货期权

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

数据源存储方案存储引擎分区方案分区列排序列
期货期权-分笔数据多市场、期货期权合并TSDB时间维度按天分区 + 证券代码维度 HASH 30 分区TradingDate 和 SymbolMarket+Symbol+ TradingTime
期货-套利深度行情多市场合并TSDB时间维度按天分区TradingDateMarket+Symbol+ TradingTime
期货期权-分价成交量行情多市场、期货期权合并TSDB时间维度按天分区TradingDateMarket+Symbol+ TradingTim
期货期权-委托统计行情多市场、期货期权合并TSDB时间维度按天分区TradingDateMarket+Symbol+ TradingTim
期货期权-委托队列期货期权合并TSDB时间维度按天分区 + 证券代码维度 HASH 50 分区TradingDate 和 SymbolSymbol+ 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
CPUIntel(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)
snapshot103,278,5915374.622.148.09.35.2510.4
entrust584,645,28053627.767.6142.619.07.559.9
trade773,129,25755822.230.6104.016.46.3510.7

期货-期权

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

数据源源数据量数据天数数据来源(市场)耗时(min)RPS(W/s)吞吐量(MB/s)原始 csv 大小(GB)单副本磁盘占用大小(GB)压缩比并发数最大内存占用(GB)
TAQ162,040,0275SHFE、DCE、INE、CFFEX1320.863.548.47.66.37510.4
OrderStatistic71,790,0265DCE717.18.13.31.32.54517.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市盈率1DOUBLE
PERatio2市盈率2DOUBLE
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
IOPVETF净值估计DOUBLE
YTM到期收益率DOUBLE
UNIX格林威治时间DOUBLE
Market交易所代码SYMBOL
ClosePrice今日收盘价DOUBLE
TotalBuyOrderNo委买笔数10档DOUBLE[]
TotalSellOrderNo委卖笔数10档DOUBLE[]
ETFBuyNoETF申购笔数DOUBLE
ETFBuyVolumeETF申购数量DOUBLE
ETFBuyAmountETF申购金额DOUBLE
ETFSellNoETF赎回笔数DOUBLE
ETFSellVolumeETF赎回数量DOUBLE
ETFSellAmountETF赎回金额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
IOPVETF 净值估计DOUBLE
YTM到期收益率DOUBLE只适用于SSE
UNIX格林威治时间DOUBLE
Market市场SYMBOL
ClosePrice今日收盘价DOUBLE
TotalBuyOrderNo委买笔数DOUBLE[ ]委买笔数10档
TotalSellOrderNo委卖笔数DOUBLE[ ]委卖笔数10档
ETFBuyNoETF 申购笔数DOUBLE只适用于SSE
ETFBuyVolumeETF 申购数量DOUBLE只适用于SSE
ETFBuyAmountETF 申购金额DOUBLE只适用于SSE
ETFSellNoETF 赎回笔数DOUBLE只适用于SSE
ETFSellVolumeETF 赎回数量DOUBLE只适用于SSE
ETFSellAmountETF 赎回金额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市盈率 1DOUBLE只适用于SZSE
PERatio2市盈率 2DOUBLE只适用于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最新成交量DOUBLECZCE、CFFEX该字段为空
PreTotalPosition昨持仓量DOUBLE
TotalPosition持仓量DOUBLE
PrePositionChange日增仓DOUBLESHFE、INE该字段为空
TotalAmount成交总额DOUBLE
TradeAmount分笔期间成交金额DOUBLE
PriceUpLimit涨停价DOUBLE
PriceDownLimit跌停价DOUBLE
PreSettlePrice昨结算价DOUBLE
PreClosePrice昨收盘价DOUBLE
OpenPrice开盘价DOUBLE
ClosePrice收盘价DOUBLE
SettlePrice结算价DOUBLE
LifeLow历史最低价DOUBLECFFEX、SHFE&INE该字段为空
Lifehigh历史最高价DOUBLECFFEX、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
GammaGammaDOUBLE只适用于DCE期权
RhoRhoDOUBLE只适用于DCE期权
ThetaThetaDOUBLE只适用于DCE期权
VegaVegaDOUBLE只适用于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 期货套利深度行情数据字段信息

字段名字段类型字段类型说明
TradingDateDATE交易归属日期
CmbTypeSYMBOL组合类型只适用于CZCE,且 20230428日后已下线该字段
TradingTimeTIMESTAMP交易发生时间
ShortNameSYMBOL合约简称只适用于CZCE, 20230428日后已下线该字段
FirstLegSYMBOL腿1合约代码只适用于CZCE, 20230428日后已下线该字段
SecondLegSYMBOL腿2合约代码只适用于CZCE, 20230428日后已下线该字段
SymbolSYMBOL套利合约号
LastPriceDOUBLE最新成交价只适用于GFEX
HighPriceDOUBLE最高价只适用于GFEX
LowPriceDOUBLE最低价只适用于GFEX
LifeHighDOUBLE历史最高价只适用于GFEX
LifeLowDOUBLE历史最低价只适用于GFEX
PriceUpLimitDOUBLE涨停价只适用于CZCE, 20230428日后已下线该字段
PriceDownLimitDOUBLE跌停价只适用于CZCE, 20230428日后已下线该字段
SecurityIDSYMBOL证券统一编码
MarketSYMBOL市场
UNIXDOUBLE格林威治时间
SellPriceDOUBLE[ ]卖价卖价五档
BuyPriceDOUBLE[ ]买价买价五档
SellVolumeDOUBLE[ ]卖量卖量五档
BuyVolumeDOUBLE[ ]买量买量五档
BidImplyQtyDOUBLE[ ]申买推导量申买推导量五档,适用于DCE和GFEX
AskImplyQtyDOUBLE[ ]申卖推导量申卖推导量五档,适用于DCE和GFEX
BestBuyQtyDOUBLE[ ]最优价委买量最优价委买量十档,只适用于DCE
BestSellQtyDOUBLE[ ]最优价委卖量最优价委卖量十档,只适用于DCE
NolevelINT深度行情数量只适用于DCE
TotalBuyOrderNoDOUBLE[ ]买入总委托笔数买入总委托笔数五档,只适用于CZCE
TotalBuyOrderVolumeDOUBLE总买入数量只适用于CZCE
TotalSellOrderNoDOUBLE[ ]卖出总委托笔数卖出总委托笔数五档,只适用于CZCE
TotalSellOrderVolumeDOUBLE总卖出数量只适用于CZCE
WtAvgBuyPriceDOUBLE加权委买价格只适用于CZCE,20230428日后已下线该字段
WtAvgSellPriceDOUBLE加权委卖价格只适用于CZCE,20230428日后已下线该字段
WtAvgBuyVolumeDOUBLE派生买量只适用于CZCE,20230428日后已下线该字段
WtAvgSellVolumeDOUBLE派生卖量只适用于CZCE,20230428日后已下线该字段

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

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

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

字段名字段类型字段含义说明
SymbolSYMBOL合约代码
SecurityIDSYMBOL证券统一编码
TradingDateDATE交易归属日期
TradingTimeTIMESTAMP交易发生时间
PriceDOUBLE[ ]价格价格五档
PriceBOQTYDOUBLE[ ]买开数量买开数量五档
PriceBEQTYDOUBLE[ ]买平数量买平数量五档
PriceSOQTYDOUBLE[ ]卖开数量卖开数量五档
PriceSEQTYDOUBLE[ ]卖平数量卖平数量五档
MarketSYMBOL市场
UNIXDOUBLE格林威治时间

期货期权-委托统计行情

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

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

字段名字段类型字段含义
SymbolSYMBOL证券代码
SecurityIDSYMBOL证券统一编码
TradingDateDATE交易归属日期
TradingTimeTIMESTAMP交易发生时间
TotalBuyOrderVolumeDOUBLE委托买入总量
WtAvgBuyPriceDOUBLE加权平均委买价格
TotalSellOrderVolumeDOUBLE委托卖出总量
WtAvgSellPriceDOUBLE加权平均委卖价格
MarketSYMBOL市场
UNIXDOUBLE格林威治时间

期货期权-委托队列

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

表 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品种编码SYMBOL2023年4月28日该字段下线
StartDate首个交易日DATE2023年4月28日该字段下线
EndDate最后交易日DATE2023年4月28日该字段下线
VolumeMultiple合约数量乘数INT2023年4月28日该字段下线
TickSize最小报价单位DOUBLE2023年4月28日该字段下线
PriceUpLimit涨停价DOUBLE
PriceDownLimit跌停价DOUBLE
PreTotalPosition昨持仓量DOUBLE
PreClosePrice昨收盘价DOUBLE
PreSettlePrice前结算价DOUBLE
TradeStatus合约交易状态INT2023年4月29日起新增字段
Market市场SYMBOL
UNIX格林威治时刻DOUBLE
文章转载自DolphinDB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论