证券行情时延测量系统和方法与流程

文档序号:32305675发布日期:2022-11-23 09:54阅读:69来源:国知局
证券行情时延测量系统和方法与流程

1.本发明涉及计算机技术领域,具体地,涉及一种证券行情时延测量系统和方法。


背景技术:

2.现有行情系统的多路择优方案都是基于逐笔数据中的序号进行判断并择优,对于没有序号的快照数据并没有择优,并且快照数据和逐笔数据合并处理,一旦数据发生堵塞,堵塞情况可能发生在发送端,也可能发生在接收端,影响另一类数据的发送或接收。另外,客户端也无法选择性地接收快照或者逐笔数据。现有的行情系统缺少配套的时延统计系统,或时延统计功能存在以下不足:第一,行情系统的开发商和券商通常在测试环境上使用模拟行情发送软件来测试,但模拟行情发送软件与交易所行情网关的工作机制不同,导致测量数据并不正确;第二,在记录时间点时,如采用软件来打时间戳,虽然成本较低,并且开发简单,但测量精度不高,误差较大;第三,如采用一层交换机或分光器镜像的组网方式测量时延,虽然测量精度高,但需要购买昂贵的镜像设备并且需要对组网进行调整,对生产网络具有一定的侵入性,降低了生产环境的可靠性;如使用生产网现有交换机的镜像功能,则不仅会影响交换机的性能,还可能因无法设置过滤器而使得流量过大进而出现丢包等问题。


技术实现要素:

3.本发明的目的是提供一种证券行情时延测量系统和方法,提高行情速度测量的准确性和可测性。
4.为了实现上述目的,第一方面,本发明提供一种证券行情时延测量系统,所述系统包括行情时延测量模块、监控展示模块、至少一个行情解码转发模块、至少一个行情接收sdk;
5.所述行情解码转发模块,与所述行情接收sdk和至少一个行情网关连接,用于接收所述行情网关输出的快照数据和逐笔数据,并对所述快照数据和所述逐笔数据进行解码处理和择优处理,将解码处理和择优处理后的快照数据和逐笔数据通过组播分发给所述行情接收sdk;
6.所述行情接收sdk,用于接收解码处理后的快照数据和逐笔数据,并提交给用户自定义的行情处理模块进行分析处理;
7.所述行情时延测量模块,与所述行情解码转发模块、所述监控展示模块、至少一个行情网关连接,用于测量所述行情网关和所述行情解码转发模块的时延,得到行情穿透时延,并将时延数据发送给所述监控展示模块;
8.所述监控展示模块,用于展示行情系统的运行数据和时延数据。
9.可选地,所述逐笔数据包括逐笔委托数据和逐笔成交数据,所述行情解码转发模块用于通过如下方式对所述快照数据和所述逐笔数据进行择优处理:
10.若所述行情解码转发模块连接的行情网关均为level-2行情网关,则对于代码相
同的快照数据,择优选择时间戳最新的快照数据,对于代码相同的逐笔委托数据,择优选择序号最新的逐笔委托数据,对于代码相同的逐笔成交数据,择优选择序号最新的逐笔成交数据;
11.若所述行情解码转发模块同时连接了level-1和level-2行情网关,则所述行情解码转发模块对数据进行同时解码同时下发,供接收sdk择优。
12.可选地,所述行情解码转发模块用于通过如下方式之一将解码处理和择优处理后的快照数据和逐笔数据分发给所述行情接收sdk:
13.将解码处理和择优处理后的快照数据和逐笔数据合在一个线程中、通过一个组播地址发送给所述行情接收sdk;
14.将解码处理和择优处理后的快照数据和逐笔数据分别分到两个不同的线程中、通过不同的组播地址发送给所述行情接收sdk。
15.可选地,所述行情时延测量模块用于通过如下方式得到所述行情穿透时延:
16.t2-t1=t2-t1'+(t1'-t1)=t2'-t1”+(t1'-t1)
17.其中,t2为行情数据经过行情网关和行情解码转发模块处理后、再由交换机发送出去的时间,t1为交换机接收到原始行情数据的时间,t1'为交换机发送原始行情数据的时间,t2'是时延测量模块所在服务器的网卡接收到解码后行情数据的时间,t1”为行情时延测量模块所在服务器的网卡接收到原始行情数据的时间,且对于局域网环境,t2-t1'=t2'-t1”,其中,t2、t1、t1'、t2'、t1”均为硬件时间戳,精度为纳秒级。
18.可选地,其中,(t1'-t1)为交换机的穿透时延,(t1'-t1)通过如下方式确定:
19.(t1'-t1)=((t4'-t3')-(t4-t3))/2
20.其中,t3为测速程序1直接发送数据给测速程序2的时间,测速程序2接收到数据后直接向测速程序1返回数据,t4为测速程序1接收测速程序2直接返回的数据的时间,测速程序1和测速程序2分别被部署在两台服务器上,t3'为测速程序1通过交换器转发的情况下发送数据给测速程序2的时间,测速程序2接收到数据后通过交换机向测速程序1返回数据,t4'为测速程序1接收到测速程序2通过交换机返回的数据的时间,其中,t3、t4、t3'、t4'均为硬件时间戳,精度为纳秒级。
21.可选地,所述监控展示模块用于每隔预设时长对行情系统的运行数据和时延数据进行汇总统计,所述监控展示模块提供web接口供用户查询行情系统的运行数据和时延数据,且所述监控展示模块用于在行情监控值大于预设指定阈值的情况下向用户输出告警信息。
22.第二方面,本发明提供一种证券行情时延测量方法,所述方法包括以下步骤:
23.s1、行情解码转发模块接收行情网关输出的快照数据和逐笔数据,并对所述快照数据和所述逐笔数据进行解码处理和择优处理,将解码处理和择优处理后的快照数据和逐笔数据通过组播分发给行情接收sdk,其中,所述行情解码转发模块与所述行情接收sdk和至少一个行情网关连接;
24.s2、所述行情接收sdk接收解码处理后的快照数据和逐笔数据,并提交给用户自定义的行情处理模块进行分析处理;
25.s3、所述行情时延测量模块测量所述行情网关和所述行情解码转发模块的时延,得到行情穿透时延,并将时延数据发送给监控展示模块,其中,所述行情时延测量模块与所
述行情解码转发模块、所述监控展示模块、至少一个行情网关连接;
26.s4、所述监控展示模块展示行情系统的运行数据和时延数据。
27.可选地,所述逐笔数据包括逐笔委托数据和逐笔成交数据,步骤s1中,若所述行情解码转发模块连接的行情网关均为level-2行情网关,则对于代码相同的快照数据,择优选择时间戳最新的快照数据,对于代码相同的逐笔委托数据,择优选择序号最新的逐笔委托数据,对于代码相同的逐笔成交数据,择优选择序号最新的逐笔成交数据,若所述行情解码转发模块同时连接了level-1和level-2行情网关,则所述行情解码转发模块对数据进行同时解码同时下发,供接收sdk择优。
28.可选地,步骤s1中,
29.所述行情解码转发模块将解码处理和择优处理后的快照数据和逐笔数据合在一个线程中、通过一个组播地址发送给所述行情接收sdk;或者,
30.所述行情解码转发模块将解码处理和择优处理后的快照数据和逐笔数据分别分到两个不同的线程中、通过不同的组播地址发送给所述行情接收sdk。
31.可选地,步骤s3中,行情时延测量模块通过如下方式得到所述行情穿透时延:
32.t2-t1=t2-t1'+(t1'-t1)=t2'-t1”+(t1'-t1)
33.其中,t2为行情数据经过行情网关和行情解码转发模块处理后、再由交换机发送出去的时间,t1为交换机接收到原始行情数据的时间,t1'为交换机发送原始行情数据的时间,t2'是时延测量模块所在服务器的网卡接收到解码后行情数据的时间,t1”为行情时延测量模块所在服务器的网卡接收到原始行情数据的时间,且对于局域网环境,t2-t1'=t2'-t1”,其中,t2、t1、t1'、t2'、t1”均为硬件时间戳,精度为纳秒级。
34.通过上述技术方案,证券行情时延测量系统包括行情时延测量模块、监控展示模块、至少一个行情解码转发模块、至少一个行情接收sdk,本方案无需增加额外的网络设备,对现有的组网也没有侵入性,只需将行情时延测量模块接入生产环境的网络中,即可测量真实的行情穿透时延。本技术方案可分别对行情网关、行情解码转发模块,或两者的组合进行测量,以进行针对性的优化,度量时,可细分到每路行情每个代码的每一种行情数据,测量得到的数据会实时写入数据库,以便于统计和展示,另外,能够更精细地监控证券行情系统的运行情况,保证系统稳定高效地运行,提高证券行情在局域网内和广域网上的传输速度,提高行情速度测量的准确性和可测性,平衡测量精度和测量成本之间的关系。
附图说明
35.图1是证券行情时延测量系统的示意图。
36.图2是行情解码转发模块示意图。
37.图3是行情时延测量模块进行时延测量涉及的网络拓扑图。
38.图4是交换机时延测量网络拓扑图。
具体实施方式
39.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
40.图1是证券行情时延测量系统的示意图,如图1所示,系统包括行情时延测量模块、监控展示模块、至少一个行情解码转发模块、至少一个行情接收sdk;
41.所述行情解码转发模块,与所述行情接收sdk和至少一个行情网关连接,用于接收所述行情网关输出的快照数据和逐笔数据,并对所述快照数据和所述逐笔数据进行解码处理和择优处理,将解码处理和择优处理后的快照数据和逐笔数据通过组播分发给所述行情接收sdk;
42.所述行情接收sdk,用于接收解码处理后的快照数据和逐笔数据,并提交给用户自定义的行情处理模块进行分析处理;
43.所述行情时延测量模块,与所述行情解码转发模块、所述监控展示模块、至少一个行情网关连接,用于测量所述行情网关和所述行情解码转发模块的时延,得到行情穿透时延,并将时延数据发送给所述监控展示模块;
44.所述监控展示模块,用于展示行情系统的运行数据和时延数据。
45.通过上述技术方案,证券行情时延测量系统包括行情时延测量模块、监控展示模块、至少一个行情解码转发模块、至少一个行情接收sdk,本方案无需增加额外的网络设备,对现有的组网也没有侵入性,只需将行情时延测量模块接入生产环境的网络中,即可测量真实的行情穿透时延。本技术方案可分别对行情网关、行情解码转发模块,或两者的组合进行测量,以进行针对性的优化,度量时,可细分到每路行情每个代码的每一种行情数据,测量得到的数据会实时写入数据库,以便于统计和展示,另外,能够更精细地监控证券行情系统的运行情况,保证系统稳定高效地运行,提高证券行情在局域网内和广域网上的传输速度,提高行情速度测量的准确性和可测性,平衡测量精度和测量成本之间的关系。
46.图2是行情解码转发模块示意图,如图2所示,每一行情解码转发模块均支持对接多个行情网关,这一方面实现了输入数据的备份,另一方面可对多路输入数据进行择优。
47.其中,所述逐笔数据包括逐笔委托数据和逐笔成交数据,所述行情解码转发模块用于通过如下方式对所述快照数据和所述逐笔数据进行择优处理:
48.若所述行情解码转发模块连接的行情网关均为level-2行情网关,则对于代码相同的快照数据,择优选择时间戳最新的快照数据,对于代码相同的逐笔委托数据,择优选择序号最新的逐笔委托数据,对于代码相同的逐笔成交数据,择优选择序号最新的逐笔成交数据;
49.若所述行情解码转发模块同时连接了level-1和level-2行情网关,则所述行情解码转发模块对数据进行同时解码同时下发,供接收sdk择优。
50.行情解码转发模块如果同时接入了level-1和level-2行情网关,则同时解码同时下发,供接收sdk择优。
51.行情解码转发模块可将优选的数据按照类别标上类别(快照、逐笔委托或逐笔成交数据)和序号,发送给行情接收sdk。
52.本发明中,行情解码转发模块用于通过如下方式之一将解码处理和择优处理后的快照数据和逐笔数据分发给所述行情接收sdk:
53.将解码处理和择优处理后的快照数据和逐笔数据合在一个线程中、通过一个组播地址发送给所述行情接收sdk;
54.将解码处理和择优处理后的快照数据和逐笔数据分别分到两个不同的线程中、通
过不同的组播地址发送给所述行情接收sdk。
55.即,解码转发模块支持将快照和逐笔两类数据合在一个线程中处理,从一个组播地址发送出去,也支持分到两个线程处理,分两个组播地址发送。
56.行情接收sdk支持对接多个行情解码转发模块,从多个组播地址接收同一类行情数据。这一方面实现了输入数据的热备,另一方面可进一步对多路输入数据进行择优:解码转发模块会对同一个代码的同一类数据进行独立编号,而sdk会优选序号更新的数据;如果上游下发的数据中包含了level-1数据,并且sdk配置了允许优选level-1快照,则会对level-1和level-2的快照进行择优。
57.行情接收sdk可分别从两个组播地址接收快照和逐笔行情(针对解码转发模块将快照和逐笔分两个组播地址发送),也可以选择只接收快照或者逐笔行情。
58.图3是行情时延测量模块进行时延测量涉及的网络拓扑图,其中,行情时延测量模块支持对流经该设备所在网卡的所有数据报文打上高精度的硬件时间戳,该硬件时钟的误差为零,二十四小时的漂移小于百万分之一。mdgw组播是交易所发送的原始行情数据,私有协议组播是经过行情网关和行情解码转发模块处理后的行情数据,简称:解码后的行情数据。
59.行情时延测量模块用于通过如下方式得到所述行情穿透时延:
60.t2-t1=t2-t1'+(t1'-t1)=t2'-t1”+(t1'-t1)
61.t2为行情数据经过行情网关和行情解码转发模块处理后、再由交换机发送出去的时间;
62.t1为交换机接收到原始行情数据的时间;
63.t1'为交换机发送原始行情数据的时间;
64.t2'是时延测量模块所在服务器的网卡接收到解码后行情数据的时间;
65.t1”为行情时延测量模块所在服务器的网卡接收到原始行情数据的时间,且对于局域网环境,t2-t1'=t2'-t1”,其中,t2、t1、t1'、t2'、t1”均为硬件时间戳,精度为纳秒级。
66.行情时延测量模块支持对深交所、上交所的level-1和level-2行情网关前、后的数据进行解码、也支持对本行情系统输出的行情数据(即图中的私有协议)进行解码。经实测结果可知,t2-t1时延在百微秒数量级,而上述测量引入的误差小于1微秒,误差率小于1%,满足测量的要求。
67.图4是交换机时延测量网络拓扑图,图3和图4均以交换机为三层交换机为例,其中,(t1'-t1)为交换机的穿透时延,(t1'-t1)通过如下方式确定:
68.(t1'-t1)=((t4'-t3')-(t4-t3))/2
69.其中,t3为测速程序1直接发送数据给测速程序2的时间,测速程序2接收到数据后直接向测速程序1返回数据,t4为测速程序1接收测速程序2直接返回的数据的时间,测速程序1和测速程序2分别被部署在两台服务器上,t3'为测速程序1通过交换器转发的情况下发送数据给测速程序2的时间,测速程序2接收到数据后通过交换机向测速程序1返回数据,t4'为测速程序1接收到测速程序2通过交换机返回的数据的时间,其中,t3、t4、t3'、t4'均为硬件时间戳,精度为纳秒级。
70.以交换机为三层交换机为例,(t1'-t1)是交换机的穿透时延,对于金融行业常用的某型号低时延交换机来说,约为200多纳秒。
71.本发明中,所述监控展示模块用于每隔预设时长对行情系统的运行数据和时延数据进行汇总统计,所述监控展示模块提供web接口供用户查询行情系统的运行数据和时延数据,且所述监控展示模块用于在行情监控值大于预设指定阈值的情况下向用户输出告警信息。其中,监控展示模块每隔一定的时间对数据库中的明细数据按时间进行汇总统计,汇总出按n秒、n分钟、n小时、n天等时间单位的平均值、中位数、最小值、最大值、标准差等数据,其中,n大于等于1。上述的预设时长、预设指定阈值均可预先设置,对其取值不做限制。
72.基于同一发明构思,本发明提供一种证券行情时延测量方法,所述方法包括以下步骤:
73.s1、行情解码转发模块接收行情网关输出的快照数据和逐笔数据,并对所述快照数据和所述逐笔数据进行解码处理和择优处理,将解码处理和择优处理后的快照数据和逐笔数据通过组播分发给行情接收sdk,其中,所述行情解码转发模块与所述行情接收sdk和至少一个行情网关连接;
74.s2、所述行情接收sdk接收解码处理后的快照数据和逐笔数据,并提交给用户自定义的行情处理模块进行分析处理;
75.s3、所述行情时延测量模块测量所述行情网关和所述行情解码转发模块的时延,得到行情穿透时延,并将时延数据发送给监控展示模块,其中,所述行情时延测量模块与所述行情解码转发模块、所述监控展示模块、至少一个行情网关连接;
76.s4、所述监控展示模块展示行情系统的运行数据和时延数据。
77.可选地,所述逐笔数据包括逐笔委托数据和逐笔成交数据,步骤s1中,若所述行情解码转发模块连接的行情网关均为level-2行情网关,则对于代码相同的快照数据,择优选择时间戳最新的快照数据,对于代码相同的逐笔委托数据,择优选择序号最新的逐笔委托数据,对于代码相同的逐笔成交数据,择优选择序号最新的逐笔成交数据,若所述行情解码转发模块同时连接了level-1和level-2行情网关,则所述行情解码转发模块对数据进行同时解码同时下发,供接收sdk择优。
78.可选地,步骤s1中,
79.所述行情解码转发模块将解码处理和择优处理后的快照数据和逐笔数据合在一个线程中、通过一个组播地址发送给所述行情接收sdk;或者,
80.所述行情解码转发模块将解码处理和择优处理后的快照数据和逐笔数据分别分到两个不同的线程中、通过不同的组播地址发送给所述行情接收sdk。
81.可选地,步骤s3中,行情时延测量模块通过如下方式得到所述行情穿透时延:
82.t2-t1=t2-t1'+(t1'-t1)=t2'-t1”+(t1'-t1)
83.其中,t2为行情数据经过行情网关和行情解码转发模块处理后、再由交换机发送出去的时间,t1为交换机接收到原始行情数据的时间,t1'为交换机发送原始行情数据的时间,t2'是时延测量模块所在服务器的网卡接收到解码后行情数据的时间,t1”为行情时延测量模块所在服务器的网卡接收到原始行情数据的时间,且对于局域网环境,t2-t1'=t2'-t1”,其中,t2、t1、t1'、t2'、t1”均为硬件时间戳,精度为纳秒级。
84.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围
为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1