SipUI2
DolphinDB SipUI2 插件通过使用中畅原生 API(SipUI2)来订阅实时行情,包括沪深市场的股票、基金、债券的快照和沪深市场的逐笔行情,并将数据存入 DolphinDB 的数据表。
安装插件
版本要求
DolphinDB Server:2.00.14/2.00.15/3.00.2 及更高版本,支持 Linux x86-64。
安装步骤
-
在 DolphinDB 客户端中使用
listRemotePlugins
命令查看插件仓库中的插件信息。注意:仅展示当前操作系统和 server 版本支持的插件。若无预期插件,可自行编译(请自行选择对应分支下的插件)或在 DolphinDB 用户社区进行反馈。
login("admin", "123456") listRemotePlugins()
-
使用
installPlugin
命令完成插件安装。installPlugin("SipUI2")
-
使用
loadPlugin
命令加载插件。loadPlugin("SipUI2")
接口说明
connect
语法
SipUI2::connect(id, username, password, hosts, ports, [option])
详情
连接中畅行情服务器。如果连接成功则返回一个句柄。如果发生断线重连,则依次尝试由 hosts/ports 指定的各个服务器地址。
参数
id STRING 类型标量,表示连接的唯一标识。要求全局唯一,且不能为空字符串。
username STRING 类型标量,表示行情服务器的用户名。
password STRING 类型标量,表示行情服务器的密码。
hosts STRING 类型向量,表示服务器 IP 列表,需要和端口列表数量相同。
ports 整型向量,表示服务器端口列表。
option 可选参数,字典类型,表示扩展参数。其键支持 "receiveTime","OutputElapsed"。其中:
- “receiveTime” 布尔值,表示是否获取插件收到行情数据的时间戳。
- “OutputElapsed” 布尔值,表示是否获取插件从收到行情到准备插入流表的时延,单位是纳秒。
subscribe
语法
SipUI2::subscribe(handle, codeList, outputTable)
详情
订阅实时行情,目前支持沪深市场的股票、基金、债券的快照和沪深市场的逐笔行情。
注意:subscribe
是异步接口,服务器端的错误(如非法订阅)不会直接体现在函数返回值中。如需获取相关错误信息,请调用
getStatus
查看服务器状态。
参数
handle
connect
接口返回的句柄。
codeList STRING 类型向量,表示合约数组。
outputTable 一个字典,用来指定输出表。其 key 类型是 STRING,value 必须是共享表。目前仅支持如下 key:
- “FundSnapshot”:表示基金快照(证券代码前缀为 5、15、16、18)
- “StockSnapshot”:表示股票快照(证券代码前缀为 6、00、30)
- “BondSnapshot”:表示债券快照(指除基金和股票快照以外的所有快照)
- “SHZS”:上海证券市场逐笔合并行情
- “SZZS”:深圳证券市场逐笔合并行情
unsubscribe
语法
SipUI2::unsubscribe(handle, [codeList])
详情
取消对行情数据的订阅。
参数
handle
connect
接口返回的句柄。
codeList 可选参数,STRING 类型向量,表示需要取消订阅的合约数组。不填该参数表示取消所有订阅。
close
语法
SipUI2::close(handle)
详情
关闭当前连接。
参数
handle
connect
接口返回的句柄。
getSchema
语法
SipUI2::getSchema(dataType, [option])
详情
获取行情数据的表结构。返回一个表,包含三列:name,type 和 typeInt,分别表示该行情表中字段的名字,字段类型的名称和类型的枚举值。
参数
dataType STRING 类型标量,表示行情数据的类型。可取值与 subscribe
接口中
outputTable 字典的 key 一致。
option 可选参数,字典类型,表示扩展参数。含义同 connect
接口中的
option。
getStatus
语法
SipUI2::getStatus(handle)
详情
获取订阅数据的状态。返回一个表格:
列名 |
含义 |
---|---|
startTime | 订阅开始的时间 |
endTime | 订阅结束的时间 |
firstMsgTime | 第一条消息收到的时间 |
lastMsgTime | 最后一条消息收到的时间 |
processedMsgCount | 已经处理的消息数 |
lastErrMsg | 最后一条错误信息 |
failedMsgCount | 处理失败的消息数 |
lastFailedTimestamp | 最后一条错误消息发生的时间 |
参数
handle
connect
接口返回的句柄。
getHandle
语法
SipUI2::getHandle([id])
详情
获取当前已建立的连接句柄。若指定 id,则返回对应的句柄,否则返回一个包含所有当前句柄的字典。
参数
id 字符串标量,可选参数,表示连接的唯一标识。
使用示例
optionDic = dict(STRING, ANY);
optionDic["receiveTime"] = true
optionDic["OutputElapsed"] = true
handle = SipUI2::connect("con1", "user1", "password", ["192.168.57.103"], [10000], optionDic)
handle=SipUI2::getHandle(`con1)
SipUI2::getStatus(handle)
FundSchema = SipUI2::getSchema("FundSnapshot", optionDic)
StockSchema = SipUI2::getSchema("StockSnapshot", optionDic)
BondSchema = SipUI2::getSchema("BondSnapshot", optionDic)
SHZSSchema = SipUI2::getSchema("SHZS", optionDic)
SZZSSchema = SipUI2::getSchema("SZZS", optionDic)
share streamTable(1:0, FundSchema.name, FundSchema.typeInt) as FundTable
share streamTable(1:0, StockSchema.name, StockSchema.typeInt) as StockTable
share streamTable(1:0, BondSchema.name, BondSchema.typeInt) as BondTable
share streamTable(1:0, SHZSSchema.name, SHZSSchema.typeInt) as SHZSTable
share streamTable(1:0, SZZSSchema.name, SZZSSchema.typeInt) as SZZSTable
tableDic = dict(STRING, ANY);
tableDic["FundSnapshot"] = FundTable
tableDic["StockSnapshot"] = StockTable
tableDic["BondSnapshot"] = BondTable
tableDic["SHZS"] = SHZSTable
tableDic["SZZS"] = SZZSTable
enableTablePersistence(table=FundTable, cacheSize=100000, retentionMinutes=30)
enableTablePersistence(table=StockTable, cacheSize=100000, retentionMinutes=30)
enableTablePersistence(table=BondTable, cacheSize=100000, retentionMinutes=30)
enableTablePersistence(table=SHZSTable, cacheSize=100000, retentionMinutes=30)
enableTablePersistence(table=SZZSTable, cacheSize=100000, retentionMinutes=30)
SipUI2::subscribe(handle, ["SH.*.L2", "SZ.*.L2", "SH.*.ZS", "SZ.*.ZS"], tableDic)
SipUI2::unsubscribe(handle)
SipUI2::close(handle)