szse

为接收深圳证券交易所实时行情数据,DolphinDB 开发了 szse 插件。该插件通过深圳证券交易所行情网关(MDGW)接收 Binary 行情数据,并将行情写入 DolphinDB 共享内存表或共享流表。

注:
注意:DolphinDB 仅提供对接深交所行情网关的插件。行情网关、网络环境及接入凭据需由用户自行准备。

安装插件

版本要求

DolphinDB Server:3.00.6。支持 Linux ABI。

安装步骤

  1. 在 DolphinDB 客户端中使用 listRemotePlugins 函数查看可供安装的插件。

    login("admin", "123456")
    listRemotePlugins()

    仅展示当前操作系统和 Server 版本支持的插件。若未找到 szse 插件,请联系 DolphinDB 技术支持。

  2. 使用 installPlugin 函数安装插件。

    installPlugin("szse")
  3. 使用 loadPlugin 函数加载插件。

    loadPlugin("szse")

接口说明

createSZSEConnection

语法

szse::createSZSEConnection(id, host, port, senderCompID, targetCompID, password, outputTable, [option])

详情

创建与深交所行情网关的连接并返回连接句柄。同一 DolphinDB 进程中,连接 ID 必须全局唯一,最多可同时创建 64 个连接。

参数

id STRING 类型标量,表示连接 ID,要求全局唯一。

host STRING 类型标量,表示行情服务器 IP 地址或主机名。

port 整型标量,表示行情服务器端口,取值范围为 1–65535。

senderCompID STRING 类型标量,表示发送方代码。

targetCompID STRING 类型标量,表示接收方代码。

password STRING 类型标量,表示连接行情网关所需的密码。

outputTable STRING 到 ANY 类型的字典,指定各类行情数据的输出表。字典的 key 为行情类型,支持的取值见 outputTable 支持的 key;value 必须为共享内存表或共享流表,且表结构必须与使用相同 option 调用 szse::getSchema 返回的结构一致。

option(可选参数)STRING 到 BOOL 类型的字典,支持以下 key:

配置项 类型 说明
ReceivedTime BOOL 默认为 false。设置为 true 时,在输出表末尾增加 NANOTIMESTAMP 类型的 receiveTime 列,记录插件接收到行情数据的时间。
OutputElapsed BOOL 默认为 false。设置为 true 时,在输出表末尾增加 LONG 类型的 elapsedTime 列,记录插件接收到行情数据至准备写入输出表前的耗时,单位为纳秒。

返回值

返回创建的连接句柄。

start

语法

szse::start(conn)

详情

启动连接并开始接收行情数据,将数据写入创建连接时通过 outputTable 指定的输出表。

参数

conn szse::createSZSEConnection 返回的连接句柄。

stop

语法

szse::stop(conn)

详情

停止接收行情数据。停止后连接句柄仍然存在,可以再次调用 szse::start

参数

conn szse::createSZSEConnection 返回的连接句柄。

closeSZSEConnection

语法

szse::closeSZSEConnection(conn)

详情

关闭并删除指定连接句柄。若连接仍在运行,插件会先停止接收行情数据。关闭后不能继续使用该句柄。

参数

conn szse::createSZSEConnection 返回的连接句柄。

getStatus

语法

szse::getStatus(conn)

详情

获取指定连接的运行状态。

参数

conn szse::createSZSEConnection 返回的连接句柄。

返回值

返回一个表,包含以下字段:

列名 类型 含义
conn STRING 连接 ID。
startTime TIMESTAMP 本次启动连接的时间。
lastMsgTime TIMESTAMP 最后一条成功写入输出表的行情数据时间。
processedMsgCount LONG 已成功写入输出表的行情数据条数。
lastErrMsg STRING 最后一条错误信息。
failedMsgCount LONG 写入输出表失败的行情数据条数。
lastFailedTimestamp TIMESTAMP 最后一次发生错误的时间。
sdkStatus STRING 深交所 MDGW SDK 当前状态。

getSchema

语法

szse::getSchema(dataType, [option])

详情

获取指定行情类型的输出表结构。创建输出表时,应使用与 szse::createSZSEConnection 相同的 option

参数

dataType STRING 类型标量,表示行情类型,支持的取值见 outputTable 支持的 key

option(可选参数)STRING 到 BOOL 类型的字典,支持的 key 及含义与 szse::createSZSEConnectionoption 相同。

返回值

返回一个表,包含 nametypeString 两列,分别表示字段名称和字段数据类型。

getHandle

语法

szse::getHandle([id])

详情

获取当前已创建的连接句柄。

参数

id(可选参数)STRING 类型标量,表示调用 szse::createSZSEConnection 时指定的连接 ID。

返回值

  • 指定 id 时,返回对应的连接句柄。

  • 不指定 id 时,返回一个字典,其中包含当前全部连接 ID 及其句柄。

outputTable 支持的 key

key 消息代码 行情类型
VolumeStatisticsSnapshot 309111 成交量统计指标行情快照
IndexSnapshot 309011 深交所指数行情快照
AuctionSnapshot 300111 集中竞价交易业务行情快照

使用示例

以下示例创建三类行情的共享流表并连接深交所行情网关。请根据实际环境设置 HOSTPORTSENDER_COMP_IDTARGET_COMP_IDPASSWORD

// 加载插件
login("admin", "123456")
installPlugin("szse")
loadPlugin("szse")

// 输出接收时间和插件处理耗时
option = dict(["ReceivedTime", "OutputElapsed"], [true, true])

// 成交量统计指标行情快照
volumeSchema = szse::getSchema("VolumeStatisticsSnapshot", option)
volumeTable = streamTable(10000:0, volumeSchema.name, volumeSchema.typeString)
share volumeTable as szseVolumeStatistics

// 深交所指数行情快照
indexSchema = szse::getSchema("IndexSnapshot", option)
indexTable = streamTable(10000:0, indexSchema.name, indexSchema.typeString)
share indexTable as szseIndexSnapshot

// 集中竞价交易业务行情快照
auctionSchema = szse::getSchema("AuctionSnapshot", option)
auctionTable = streamTable(10000:0, auctionSchema.name, auctionSchema.typeString)
share auctionTable as szseAuctionSnapshot

outputTables = dict(STRING, ANY)
outputTables["VolumeStatisticsSnapshot"] = szseVolumeStatistics
outputTables["IndexSnapshot"] = szseIndexSnapshot
outputTables["AuctionSnapshot"] = szseAuctionSnapshot

conn = szse::createSZSEConnection(
    "szseConn",
    HOST,
    PORT,
    SENDER_COMP_ID,
    TARGET_COMP_ID,
    PASSWORD,
    outputTables,
    option
)

szse::start(conn)
szse::getStatus(conn)
szse::stop(conn)
szse::closeSZSEConnection(conn)

行情数据结构

成交量统计指标行情快照(309111)

outputTable key:VolumeStatisticsSnapshot

列名 类型 说明
OriginalTime TIMESTAMP 数据生成时间。
ChannelNumber INT 频道代码。
MDStreamID STRING 行情类别。
SecurityID STRING 证券代码。
SecurityIDSource STRING 证券代码源。
TradingPhaseCode STRING 产品所处的交易阶段代码。
PreviousClosePrice DOUBLE 昨收价,原始数据精度为 N13(4)。
NumberOfTrades LONG 成交笔数。
TotalVolumeTraded DOUBLE 成交总量,原始数据精度为 N15(2)。
TotalValueTraded DOUBLE 成交总金额,原始数据精度为 N18(4)。
SecurityCount LONG 统计量指标样本个数。

深交所指数行情快照(309011)

outputTable key:IndexSnapshot

列名 类型 说明
OriginalTime TIMESTAMP 数据生成时间。
ChannelNumber INT 频道代码。
MDStreamID STRING 行情类别。
SecurityID STRING 证券代码。
SecurityIDSource STRING 证券代码源。
TradingPhaseCode STRING 产品所处的交易阶段代码。
PreviousClosePrice DOUBLE 昨收价,原始数据精度为 N13(4)。
NumberOfTrades LONG 成交笔数。
TotalVolumeTraded DOUBLE 成交总量,原始数据精度为 N15(2)。
TotalValueTraded DOUBLE 成交总金额,原始数据精度为 N18(4)。
LatestIndex DOUBLE 当前指数,原始数据精度为 N18(6)。
PreviousCloseIndex DOUBLE 昨日收盘指数,原始数据精度为 N18(6)。
OpenIndex DOUBLE 开盘指数,原始数据精度为 N18(6)。
HighIndex DOUBLE 最高指数,原始数据精度为 N18(6)。
LowIndex DOUBLE 最低指数,原始数据精度为 N18(6)。
CloseIndex DOUBLE 收盘指数,原始数据精度为 N18(6)。

集中竞价交易业务行情快照(300111)

outputTable key:AuctionSnapshot

列名 类型 说明
OriginalTime TIMESTAMP 数据生成时间。
ChannelNumber INT 频道代码。
MDStreamID STRING 行情类别。
SecurityID STRING 证券代码。
SecurityIDSource STRING 证券代码源。
TradingPhaseCode STRING 产品所处的交易阶段代码。
PreviousClosePrice DOUBLE 昨收价,原始数据精度为 N13(4)。
NumberOfTrades LONG 成交笔数。
TotalVolumeTraded DOUBLE 成交总量,原始数据精度为 N15(2)。
TotalValueTraded DOUBLE 成交总金额,原始数据精度为 N18(4)。
BidPrice DOUBLE[] 买方档位价格,原始数据精度为 N18(6)。
BidQuantity DOUBLE[] 买方档位委托数量,原始数据精度为 N15(2)。
BidNumberOfOrders LONG[] 买方档位总委托笔数。
OfferPrice DOUBLE[] 卖方档位价格,原始数据精度为 N18(6)。
OfferQuantity DOUBLE[] 卖方档位委托数量,原始数据精度为 N15(2)。
OfferNumberOfOrders LONG[] 卖方档位总委托笔数。
LatestPrice DOUBLE 最近成交价,原始数据精度为 N18(6)。
OpenPrice DOUBLE 开盘成交价,原始数据精度为 N18(6)。
HighPrice DOUBLE 最高成交价,原始数据精度为 N18(6)。
LowPrice DOUBLE 最低成交价,原始数据精度为 N18(6)。
PriceChange1 DOUBLE 升跌一,即最近价减去昨收价,原始数据精度为 N18(6)。
PriceChange2 DOUBLE 升跌二,即最近价减去上一最近价,原始数据精度为 N18(6)。
WeightedAverageBidPrice DOUBLE 加权平均买价,原始数据精度为 N18(6)。
TotalBidQuantity DOUBLE 委托买总数量,原始数据精度为 N15(2)。
WeightedAverageOfferPrice DOUBLE 加权平均卖价,原始数据精度为 N18(6)。
TotalOfferQuantity DOUBLE 委托卖总数量,原始数据精度为 N15(2)。
PriceEarningsRatio1 DOUBLE 股票市盈率一,原始数据精度为 N18(6)。
PriceEarningsRatio2 DOUBLE 股票市盈率二,原始数据精度为 N18(6)。
FundNetValue DOUBLE 基金净值,原始数据精度为 N18(6)。
IOPV DOUBLE 基金实时参考净值,原始数据精度为 N18(6)。
UpperLimitPrice DOUBLE 涨停价,原始数据精度为 N18(6)。
LowerLimitPrice DOUBLE 跌停价,原始数据精度为 N18(6)。
ReferencePrice DOUBLE 期权集中竞价交易熔断参考价格,原始数据精度为 N18(6)。
OpenInterest DOUBLE 期权合约持仓量,原始数据精度为 N15(2)。
ETFSubscriptionQuantity DOUBLE 申购数量,原始数据精度为 N15(2)。
ETFSubscriptionNumber LONG 申购笔数。
ETFRedemptionQuantity DOUBLE 赎回数量,原始数据精度为 N15(2)。
ETFRedemptionNumber LONG 赎回笔数。