szse
为接收深圳证券交易所实时行情数据,DolphinDB 开发了 szse 插件。该插件通过深圳证券交易所行情网关(MDGW)接收 Binary 行情数据,并将行情写入 DolphinDB 共享内存表或共享流表。
安装插件
版本要求
DolphinDB Server:3.00.6。支持 Linux ABI。
安装步骤
-
在 DolphinDB 客户端中使用 listRemotePlugins 函数查看可供安装的插件。
login("admin", "123456") listRemotePlugins()仅展示当前操作系统和 Server 版本支持的插件。若未找到 szse 插件,请联系 DolphinDB 技术支持。
-
使用 installPlugin 函数安装插件。
installPlugin("szse") -
使用 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::createSZSEConnection 的 option 相同。
返回值
返回一个表,包含 name 和 typeString
两列,分别表示字段名称和字段数据类型。
getHandle
语法
szse::getHandle([id])
详情
获取当前已创建的连接句柄。
参数
id(可选参数)STRING 类型标量,表示调用 szse::createSZSEConnection
时指定的连接 ID。
返回值
-
指定 id 时,返回对应的连接句柄。
-
不指定 id 时,返回一个字典,其中包含当前全部连接 ID 及其句柄。
outputTable 支持的 key
| key | 消息代码 | 行情类型 |
|---|---|---|
| VolumeStatisticsSnapshot | 309111 | 成交量统计指标行情快照 |
| IndexSnapshot | 309011 | 深交所指数行情快照 |
| AuctionSnapshot | 300111 | 集中竞价交易业务行情快照 |
使用示例
以下示例创建三类行情的共享流表并连接深交所行情网关。请根据实际环境设置
HOST、PORT、SENDER_COMP_ID、TARGET_COMP_ID
和 PASSWORD。
// 加载插件
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 | 赎回笔数。 |
