为对接华泰 INSIGHT 行情服务软件,DolphinDB 开发了 INSIGHT 插件。通过该插件获取交易所的行情。注意,。
INSIGHT 插件目前支持版本:release200, release130。您当前查看的插件版本为 release200,请使用 DolphinDB 2.00.X 版本 server。若使用其它版本 server,请切换至相应插件分支。
注意:INSIGHT 插件仅支持 Linux 系统,该版本对应的 Insight SDK 为 TCP 版本 SDK
注意: 编译之前请确保 libDolphinDB.so 在 gcc 可搜索的路径中。可使用 LD_LIBRARY_PATH 指定其路径,或者直接将其拷贝到 build 或 lib 目录下。
cd /path/to/PluginInsight
mkdir build && cd build
cmake ..
make
编译完成后,build 目录下将生成加载插件所需要的 libPluginInsight.so 文件。
加载插件前,需要将 cert 文件夹放到 dolphindb 可执行文件同目录下,执行以下命令:
cp -r /path_to_insight/include/cert /path_to_server/
export LD_LIBRARY_PATH=/path_to_insight/lib:$LD_LIBRARY_PATH
insight::connect(handles, ip, port, user, password, [workPoolThreadCount=5], [options], [ignoreApplSeq=false])
handles
:类型为 Dictionary,Dictionary 的键为 StockTick
, IndexTick
, FuturesTick
, OrderTransaction
, Transaction
或 Order
,值为共享流表 或者 一个 Dictionary。
六种数据分别接入股票的快照、指数的快照、期货的快照、逐笔合成类型、逐笔成交类型、逐笔委托类型。
当值为 Dictionary 时,key 为整型,代表 channel 号。value 为一个共享流表,即对应 channel 数据需要接入的数据表。
ip
:服务器地址,类型为字符串标量。
port
:服务器端口,类型为整型标量。
user
:用户名,类型为字符串标量。
password
:密码,类型为字符串标量。
workPoolThreadCount
:可选,处理线程池的线程数,类型为整型标量,默认为 5。大小需要在 1-32767 之间
options
:可选,是字典类型,表示扩展参数,key 为 string 类型,value 为 boolean 类型。当前支持 ReceivedTime
, OutputElapsed
。
ReceivedTime 表示是否获取插件收到行情数据的时间戳,默认为 true。其指定为 dict(["ReceivedTime"], [true]) 时,插件处理输出的数据将包含行情数据的时间戳列。
OutputElapsed 表示是否获取 Insight 插件 接收数据处理的时延,默认为 false。其指定为 dict(["OutputElapsed"], [true]) 时,插件处理输出的数据将包含行情数据的时延列。时延的定义:'insight 回调函数返回数据' 到 '准备开始 transform' 处理,或准备 append 到共享流表前’ 这段时间。该列的单位为纳秒。
ignoreApplSeq
:可选,类型为布尔标量,默认为 false。在 OrderTransaction
合并类型订阅中生效。如果为 false 则当 OrderTransaction
数据中出现数据丢失时停止接收数据,如果为 true 则忽略数据丢失问题,继续接收数据。
注册消息接收接口并连接 Insight 服务器,返回 Insight tcpClient 连接的句柄。
insight::subscribe(tcpClient, marketDataTypes, securityIDSource, securityType)
tcpClient
:connect 的返回值。
marketDataTypes
:字符串向量,表示行情数据类型,支持以下值:MD_TICK
, MD_ORDER
, MD_TRANSACTION
和 MD_ORDER_TRANSACTION
。MD_ORDER_TRANSACTION
为特殊的订阅类型,指的是逐笔合成类型,其他类型均与 insight 规定的 EMarketDataType
枚举类型含义相同。
securityIDSource
:字符串标量,表示交易所类型,支持以下值:XSHE
, XSHG
CCFX
, CSI
。类型含义与 insight 规定的 ESecurityIDSource
枚举类型含义相同。
securityType
:字符串标量,表示产品类型,支持以下值:StockType
, FundType
, BondType
, IndexType
, FuturesType
。类型含义与 insight 规定的 ESecurityType
枚举类型含义相同。
订阅数据,并将所订阅的数据保存在由 connect 的 handles 参数指定的表中。
insight::close(tcpClient)
tcpClient
:connect 的返回值。
关闭连接。
insight::close(tcpClient)
insight::getSchema(type, [options])
dataType
:为字符串标量,指需要获取 schema 的类型 OrderTransaction
, StockTick
, IndexTick
, FuturesTick
, Transaction
, Order
或 OrderTransaction
。
options
:可选,是字典类型,表示扩展参数,key 为 string 类型,value 为 boolean 类型。当前支持 ReceivedTime
, OutputElapsed
。
ReceivedTime 表示是否获取插件收到行情数据的时间戳,默认为 true。其指定为 dict(["ReceivedTime"], [true]) 时,getSchema 获取的表结构中将包含插件收到行情数据的时间戳列。
OutputElapsed 表示是否获取 Insight 插件 接收数据处理的时延,默认为 false。其指定为 dict(["OutputElapsed"], [true]) 时,getSchema 获取的表结构中将包含插件收到行情数据的时延列。时延的定义:'insight 回调函数返回数据' 到 '准备开始 transform' 处理,或准备 append 到共享流表前’ 这段时间。该列的单位为纳秒。
获取对应表结构。返回一个表,包含 name 和 type 两列。
handle = insight::getHandle()
无
返回已有的 insight 连接句柄,如果插件没有被连接过,会抛出异常。
insight::getStatus(tcpClient)
tcpClient
:insight 连接句柄,即 connect 函数的返回值。
返回一个表格,包含各种已订阅数据的状态信息,包含数据类型 OrderTransaction
, StockTick
, IndexTick
, FuturesTick
, Transaction
和 Order
列名 | 含义 | 类型 |
---|---|---|
topicType | 订阅的名称 | STRING |
channelNo | OrderTransaction 分 channel 订阅时的 channel号 | INT |
startTime | 订阅开始的时间 | NANOTIMESTAMP |
endTime | 订阅结束的时间 | NANOTIMESTAMP |
firstMsgTime | 第一条消息收到的时间 | NANOTIMESTAMP |
lastMsgTime | 最后一条消息收到的时间 | NANOTIMESTAMP |
processedMsgCount | 已经处理的消息数 | LONG |
lastErrMsg | 最后一条错误信息 | STRING |
failedMsgCount | 处理失败的消息数 | LONG |
lastFailedTimestamp | 最后一条错误消息发生的时间 | NANOTIMESTAMP |
subscribeInfo | 该订阅涉及的市场和投资品类型 | STRING |
insight::unsubscribe(tcpClient)
tcpClient
:insight 连接句柄,即 connect 函数的返回值。
取消当前所有订阅。
pluginFile = “path_to_insight/PluginInsight.txt”;
loadPlugin(pluginFile);
stockTickSchema = insight::getSchema(`StockTick);
share streamTable(10000:0, stockTickSchema[`name], stockTickSchema[`type]) as stockTickTable;
ip = "168.61.69.192";
port = 10317;
user = "mdc-flow-client-25-36";
password = "mdc-vss-shlv1";
handles = dict([`StockTick], [stockTickTable]);
tcpClient = insight::connect(handles, ip, port, user, password);
insight::subscribe(tcpClient, `MD_TICK`MD_ORDER`MD_TRANSACTION, `XSHG, `StockType);
insight::unsubscribe(tcpClient);
insight::close(tcpClient);
insight::getHandle
接口,用于获取已有连接句柄。insight::connect
接口新增参数 options,表示扩展参数。insight::connect
接口新增参数 ignoreApplSeq,用于决定当 OrderTransaction
数据中出现数据丢失时是否停止接收数据。insight::connect
options)此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。