CN116962513B - 一种金融行情合约数据接收方法及装置 - Google Patents
一种金融行情合约数据接收方法及装置 Download PDFInfo
- Publication number
- CN116962513B CN116962513B CN202310920061.9A CN202310920061A CN116962513B CN 116962513 B CN116962513 B CN 116962513B CN 202310920061 A CN202310920061 A CN 202310920061A CN 116962513 B CN116962513 B CN 116962513B
- Authority
- CN
- China
- Prior art keywords
- contract
- financial quotation
- time stamp
- financial
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000008569 process Effects 0.000 claims abstract description 28
- 230000001502 supplementing effect Effects 0.000 claims description 14
- 238000012508 change request Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 15
- 230000007246 mechanism Effects 0.000 abstract description 4
- 230000000295 complement effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005429 filling process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1804—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for stock exchange and similar applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1881—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种金融行情合约数据接收方法及装置,针对现实交易的不确定性,通过在接收金融行情合约的过程中,设置和执行完整的合约补齐方案,利用插补数据的形式保证接收到的金融行情合约在次序和设定条数上的完整性,使得后续决策过程能够始终按照统一的数据设定条数并行处理,保证了急速交易的实现。同时,在对金融行情合约进行派发时,基于订阅机制按照用户的需求筛选数据,减少后续应用过程中对数据的无效处理,提升了处理速度和执行效率。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种金融行情合约数据接收方法及装置。
背景技术
金融行情合约(Financial Market Contract)是金融市场中的一种金融工具,用于在特定时间和条件下进行金融资产的买卖、交易或结算。在交易时间段内,每隔一段时间(如200ms),交易所会将这段时间内的证券、期货的交易信息以组播的形式发送出来,也即按照设定次序和条数进行发送。如果这段时间某些期货合约在现实中未发生交易,则不会发送该合约的交易信息。在极速交易场景下,受现实中交易情况的影响,交易所发送的合约信息及数量是不确定的,因此对于交易策略模块的并行化处理带来了挑战。同时用户在接收过程中,大量的组播数据包含了用户不需要的合约内容,在接收和处理的过程中,会拖慢交易的速度。
发明内容
鉴于此,本发明实施例提供了一种金融行情合约数据接收方法及装置,以消除或改善现有技术中存在的一个或更多个缺陷,解决现有技术在金融行情合约数据传输过程中无法满足急速交易和并行化处理需求的问题。
一方面,本发明提供一种金融行情合约数据接收方法,所述方法用于用户端的解析模块上执行,该方法包括以下步骤:
基于时间先后顺序接收金融行情合约,所述金融行情合约至少包括时间戳、合约ID以及合约数据;其中,在金融机构生成所述金融行情合约的过程中,每个时间戳所对应批次的所述金融行情合约是根据业务需求按照预设次序和设定条数生成的;
对于接收到的所述金融行情合约,核查每个时间戳对应批次的合约ID,按照所述预设次序和设定条数对比查找每个时间戳对应批次中缺失的金融行情合约,并采用指定数据补齐所述缺失的金融行情合约,以并行处理执行决策;
以及,根据预设的金融行情合约订阅模式,将补齐后的金融行情合约按照用户的订阅需求发送至用户。
在一些实施例中,核查每个时间戳对应批次的合约ID,按照所述预设次序和设定条数对比查找每个时间戳对应批次中缺失的金融行情合约,并采用指定数据补齐所述缺失的金融行情合约,包括:
初始化缓存合约时间戳为0,初始化缓存合约ID为0;
接收当前所述金融行情合约并按照用户的订阅需求发送至用户;
当接收到的当前所述金融行情合约的时间戳晚于所述缓存合约时间戳时,核查所述缓存合约时间戳对应批次的所述金融行情合约是否达到所述设定条数,未达到设定条数时,按照所述预设次序和所述设定条数,对所述缓存合约时间戳对应批次中的第一类缺失金融行情合约进行补齐并按照用户的订阅需求发送至用户,所述第一类缺失金融行情合约的合约数据标记为0值;并将缓存合约ID重新置为0;
当接收到的当前所述金融行情合约的时间戳等于所述缓存合约时间戳时,且当前所述金融行情合约的合约ID大于所述缓存合约ID时,判断当前所述金融行情合约的合约ID与所述缓存合约ID是否连续,连续时,更新所述缓存合约ID为当前所述金融行情合约的合约ID;不连续时,补齐所述缓存合约ID至当前所述金融行情合约的合约ID之间的第二类缺失金融行情合约,所述第二类缺失金融行情合约的合约数据标记为0值,并将补齐的所述第二类缺失金融行情合约按照用户的订阅需求发送至用户。
在一些实施例中,核查每个时间戳对应批次的合约ID,按照所述预设次序和设定条数对比查找每个时间戳对应批次中缺失的金融行情合约,并采用指定数据补齐所述缺失的金融行情合约,包括:
判断是否接收到新的所述金融行情合约,当接收到当前所述金融行情合约时,初始化缓存合约时间戳为0,初始化缓存合约ID为0;
当接收到的当前所述金融行情合约的时间戳晚于所述缓存合约时间戳时,将所述缓存合约时间戳更新为当前所述金融行情合约的时间戳,将初始化缓存合约ID重新置为0;判断当前所述金融行情合约的合约ID是否大于缓存合约ID,若是则补齐所述缓存合约ID至当前所述金融行情合约的合约ID之间的第三缺失金融行情合约并按照用户的订阅需求发送至用户,所述第三缺失金融行情合约的合约数据标记为0值,若否则将当前所述金融行情合约按照用户的订阅需求发送至用户;
当接收到的当前所述金融行情合约的时间戳等于所述缓存合约时间戳时,判断当前所述金融行情合约的合约ID是否大于缓存合约ID,若是则补齐所述缓存合约ID至当前所述金融行情合约的合约ID之间的第四缺失金融行情合约并按照用户的订阅需求发送至用户,所述第四缺失金融行情合约的合约数据标记为0值,若否则将当前所述金融行情合约按照用户的订阅需求发送至用户。
在一些实施例中,所述方法在初始化缓存合约时间戳以及初始化缓存合约ID之前,还包括:
判断是否接收到新的所述金融行情合约,当未接收到新的所述金融行情合约时,保持空载待命状态,所述空载待命状态包括:
判断所述缓存合约时间戳是否初始化,若已完成初始化则获取当前硬件时间戳,在所述当前硬件时间戳大于缓存硬件时间戳设定时长,且缓存的合约列表中合约ID未达到所述设定条数时,补齐所述缓存硬件时间戳剩余未输出的空载合约,所述空载合约的合约数据标记为0值,更新缓存硬件时间戳为当前硬件时间戳。
在一些实施例中,所述方法还包括:
判断所述缓存合约时间戳是否初始化后,若未完成初始化,则重新判断是否接收到新的所述金融行情合约;
以及,在所述当前硬件时间戳小于等于缓存硬件时间戳,或缓存的合约列表中合约ID达到所述设定条数时,重新判断是否接收到新的所述金融行情合约。
在一些实施例中,根据预设的金融行情合约订阅模式,将补齐后的金融行情合约按照用户的订阅需求发送至用户,包括:
获取所述金融行情合约解析后的待派发合约ID;
根据用户预设的订阅列表过滤所述待派发合约ID,将处于所述订阅列表中的待派发合约ID对应的金融行情合约输出,其余舍弃。
在一些实施例中,所述方法还包括:接收用户发送的订阅变更请求,根据所述订阅变更请求更新所述订阅列表。
另一方面,本发明还提供一种金融行情合约数据接收装置,包括:
接收模块,用于接收数据源发布的金融行情合约数据包;
解析模块,用于执行上述的金融行情合约数据接收方法;
输出模块,用于将所述解析模块补齐后的金融行情合约通过PCIe协议发送至所述用户的处理器端。
在一些实施例中,所述解析模块采用现场可编程门阵列设备。
另一方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述方法的步骤。
本发明的有益效果至少是:
本发明所述金融行情合约数据接收方法及装置,针对现实交易的不确定性,通过在接收金融行情合约的过程中,设置和执行完整的合约补齐方案,利用插补数据的形式保证接收到的金融行情合约在次序和设定条数上的完整性,使得后续决策过程能够始终按照统一的数据设定条数并行处理,保证了急速交易的实现。同时,在对金融行情合约进行派发时,基于订阅机制按照用户的需求筛选数据,减少后续应用过程中对数据的无效处理,提升了处理速度和执行效率。
本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在说明书以及附图中具体指出的结构实现到并获得。
本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1为本发明一实施例所述金融行情合约数据接收方法的流程示意图。
图2为本发明一实施例所述金融行情合约数据接收方法中补齐流程示意图。
图3为本发明另一实施例所述金融行情合约数据接收方法中补齐流程示意图。
图4为本发明一实施例所述金融行情合约数据接收方法中订阅流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
在此,还需要说明的是,如果没有特殊说明,术语“连接”在本文不仅可以指直接连接,也可以表示存在中间物的间接连接。
在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
金融行情合约在传输和应用过程中,主要包括两个部分,一个是基于决策模块对大批量实时发布的数据进行处理以整体决策,另一个是由用户根据其关注的金融行情合约进行交易判断。在极速交易场景下,受现实中交易情况的影响,交易所发送的合约信息及数量是不确定的,因此对于交易策略模块无法并行化的处理这些合约,导致影响交易速度。同时,由于交易所数据源所发布的金融行情合约中存在大量用户不关心的交易,这会导致用户在进行交易判断过程中耗费大量经历查找筛选数据。因此需要在行情解析模块中增加行情数据补齐功能,保证策略模块接收到的合约ID顺序及数量符合预期,同时配置一种订阅机制向用户投喂其关注的金融行情合约。
因此本发明提供一种金融行情合约数据接收方法,所述方法用于用户端的解析模块上执行,如图1所示,该方法包括以下步骤S101~S103:
步骤S101:基于时间先后顺序接收金融行情合约,金融行情合约至少包括时间戳、合约ID以及合约数据;其中,在金融机构生成金融行情合约的过程中,每个时间戳所对应批次的金融行情合约是根据业务需求按照预设次序和设定条数生成的。
步骤S102:对于接收到的金融行情合约,核查每个时间戳对应批次的合约ID,按照预设次序和设定条数对比查找每个时间戳对应批次中缺失的金融行情合约,并采用指定数据补齐所述缺失的金融行情合约,以并行处理执行决策。
步骤S103:根据预设的金融行情合约订阅模式,将补齐后的金融行情合约按照用户的订阅需求发送至用户。
在步骤S101中,金融行情合约是金融市场中的一种金融衍生品,它是在特定的合约规定下,对某种金融资产(如股票、债券、商品、货币等)在未来特定时间内的价格或指数进行交易的合约。金融行情合约通常是由交易所或金融机构发行和管理。在交易所进行的交易会产生实时的买卖订单和成交数据,这些数据反映了市场参与者对金融资产的需求和供应情况。实时市场数据在交易过程中会不断更新,投资者可以根据这些数据进行交易决策。
金融行情合约一般是按照特定的交易规则产生的,所以其通常是按照设定次序和设定条数成批发布的。但是实际的交易过程中,有时候会发生部分交易缺失的情况。本申请基于金融行情合约产生过程的规范性,对接收到的数据进行补齐,以保证金融行情合约在接收端依旧呈现完整,在后续决策过程中能够对数据实施并行处理,保证交易决策的速度。
在步骤S102中,规范中按照预设次序和设定条数生成的金融行情合约,在实际交易过程中,可能由于交易问题或接收问题导致缺失,因此,本申请根据金融行情合约的生成规范,对其进行补齐。在实施过程中,每条金融行情合约在生成过程中都添加有时间戳和用于标识的合约ID,作为其唯一标识。其中,时间戳用于标记批次,合约ID用于标记次序。每个批次的金融行情合约在次序和设定条数上是相同的,例如对于某一特定的金融交易,其用于结算的合约按照规范包括了合约ID为0、1、2、3和4的五条数据,则在接收过程中,通过合约ID核查缺失的对象,并补齐相应的数据条,相应合约的合约数据采用指定数据的形式补齐。采用指定数据进行补齐的目的在于使补齐的数据区别于真实数据,实际应用过程中,可以采用置0或置1的形式进行补齐。
在一些实施例中,核查每个时间戳对应批次的合约ID,按照预设次序和设定条数对比查找每个时间戳对应批次中缺失的金融行情合约,并采用指定数据补齐所述缺失的金融行情合约,如图2所示,包括步骤S201~S204:
步骤S201:初始化缓存合约时间戳为0,初始化缓存合约ID为0。
步骤S202:接收当前金融行情合约并按照用户的订阅需求发送至用户。
步骤S203:当接收到的当前金融行情合约的时间戳晚于缓存合约时间戳时,核查缓存合约时间戳对应批次的金融行情合约是否达到设定条数,未达到设定条数时,按照预设次序和设定条数,对缓存合约时间戳对应批次中的第一类缺失金融行情合约进行补齐并按照用户的订阅需求发送至用户,第一类缺失金融行情合约的合约数据标记为0值;并将缓存合约ID重新置为0。
步骤S204:当接收到的当前金融行情合约的时间戳等于缓存合约时间戳时,且当前金融行情合约的合约ID大于缓存合约ID时,判断当前金融行情合约的合约ID与缓存合约ID是否连续,连续时,更新缓存合约ID为当前金融行情合约的合约ID;不连续时,补齐缓存合约ID至当前金融行情合约的合约ID之间的第二类缺失金融行情合约,第二类缺失金融行情合约的合约数据标记为0值,并将补齐的所述第二类缺失金融行情合约按照用户的订阅需求发送至用户。
需要说明的是,步骤S201~S204的补齐过程是优先保证当前数据及时输出的形式,原则就是每接收到一条数据时优先输出,当前合约优先,然后判断是否需要做补齐。
示例性的,假设合约ID为0、1、2、3、4,缓存合约时间戳初始化为0,缓存合约ID初始化为0。
假设实际交易所发出的合约顺序为:合约1:时间戳500,合约ID为0;合约2:时间戳500,合约ID为2;合约3:时间戳500,合约ID为3;合约4:时间戳1000,合约ID为2。
按照当前合约优先的原则,接收到合约后及时输出后,判断是否缺失和补齐合约的步骤为:
1)收到合约1,缓存时间戳为0,其小于当前时间戳500,更新缓存时间戳为当前时间戳为500,正常输出合约1,因为ID为0,即第一个合约,不触发补齐操作。
2)收到合约2,正常输出合约2,因为时间戳相同,ID为2,ID与上一条不连续(上一条为0)则需要补齐一条时间戳500,ID为1的补齐数据。
3)收到合约3,正常输出合约3,因为时间戳相同,ID为3,ID与上一条连续,不触发补齐操作。
4)收到合约4,正常输出合约4,因为时间戳发生变化,首先补齐上一个时间戳的未输出的合约,即时间戳500,ID为4的补齐数据。
5)之后更新缓存时间戳为当前时间戳(1000);判断当前合约ID为2,非起始合约ID0,因此需要补齐2条当前时间戳的合约数据,即:时间戳1000,ID为0的补齐数据;以及时间戳1000,ID为1的补齐数据。
在一些实施例中,核查每个时间戳对应批次的合约ID,按照所述预设次序和设定条数对比查找每个时间戳对应批次中缺失的金融行情合约,并采用指定数据补齐所述缺失的金融行情合约,参照图3,包括步骤S301~S303:
步骤S301:判断是否接收到新的金融行情合约,当接收到当前金融行情合约时,初始化缓存合约时间戳为0,初始化缓存合约ID为0。
步骤S302:当接收到的当前金融行情合约的时间戳晚于缓存合约时间戳时,将缓存合约时间戳更新为当前金融行情合约的时间戳,将初始化缓存合约ID重新置为0;判断当前金融行情合约的合约ID是否大于缓存合约ID,若是则补齐缓存合约ID至当前金融行情合约的合约ID之间的第三缺失金融行情合约并按照用户的订阅需求发送至用户,第三缺失金融行情合约的合约数据标记为0值,若否则将当前金融行情合约按照用户的订阅需求发送至用户。
步骤S303:当接收到的当前金融行情合约的时间戳等于缓存合约时间戳时,判断当前金融行情合约的合约ID是否大于缓存合约ID,若是则补齐缓存合约ID至当前金融行情合约的合约ID之间的第四缺失金融行情合约并按照用户的订阅需求发送至用户,第四缺失金融行情合约的合约数据标记为0值,若否则将当前金融行情合约按照用户的订阅需求发送至用户。
需要说明的是,步骤S301~S303的补齐过程是严格保证数据输出次序的形式,原则就是每接收到一条数据时,优先判断是否需要对数据进行补齐,然后在输出接收到的数据。
示例性的,假设合约ID为0、1、2、3、4;缓存合约时间戳初始化为0,缓存合约ID初始化为0。
假设实际交易所发出的合约顺序为:合约1:时间戳500,合约ID为0;合约2:时间戳500,合约ID为2;合约3:时间戳500,合约ID为3;合约4:时间戳1000,合约ID为2。
其中,合约1、2和3为同一时间发送,合约4在合约1、2和3之后500ms发送。
则补齐后输出的合约为:
A)收到合约1,缓存时间戳为0,小于当前时间戳500,更新缓存时间戳为当前时间戳为500;因为ID为0,即第一个合约,正常输出合约1,不触发补齐操作。
B)收到合约2,因为时间戳相同,ID为2,ID与上一条不连续(上一条为0)则需要补齐一条时间戳为500,ID为1的补齐数据,之后正常输出合约2。
C)收到合约3,因为时间戳相同,ID为3,ID与上一条连续,不触发补齐操作,正常输出合约3;
D)收到合约3后经过一定时间,如10ms,没有再收到新的合约,触发补齐操作,补齐当前时间戳的剩余合约,即:间戳500,ID为4的补齐数据。
E)收到合约4,时间戳发生变化,更新缓存时间戳为当前时间戳为1000;且当前合约ID为2,非起始合约ID为0,因此需要补齐2条当前时间戳的合约数据,即:时间戳1000,ID为0的补齐数据;时间戳1000,ID为1的补齐数据。补齐完成后正常输出合约4。
在一些实施例中,所述方法在初始化缓存合约时间戳以及初始化缓存合约ID之前,参照图3,还包括步骤S304:判断是否接收到新的金融行情合约,当未接收到新的金融行情合约时,保持空载待命状态,空载待命状态包括:判断缓存合约时间戳是否初始化,若已完成初始化则获取当前硬件时间戳,在当前硬件时间戳大于缓存硬件时间戳设定时长,且缓存的合约列表中合约ID未达到设定条数时,补齐缓存硬件时间戳剩余未输出的空载合约,空载合约的合约数据标记为0值,更新缓存硬件时间戳为当前硬件时间戳。
步骤S304设置空载待命状态,利用较少的资源保持运行状态,是为了保证随时能够接收处理金融行情合约,及时响应,实现急速处理。
在一些实施例中,所述方法还包括步骤S305和S306:
步骤S305:判断缓存合约时间戳是否初始化后,若未完成初始化,则重新判断是否接收到新的金融行情合约。
步骤S306:在当前硬件时间戳小于等于缓存硬件时间戳,或缓存的合约列表中合约ID达到设定条数时,重新判断是否接收到新的金融行情合约。
在一些实施例中,步骤S103中,根据预设的金融行情合约订阅模式,将补齐后的金融行情合约按照用户的订阅需求发送至用户,包括步骤S401~S402:
步骤S401:获取金融行情合约解析后的待派发合约ID。
步骤S402:根据用户预设的订阅列表过滤待派发合约ID,将处于订阅列表中的待派发合约ID对应的金融行情合约输出,其余舍弃。
本实施例,通过设置FPGA加速卡,在FPGA卡上接收了行情数据后,以流水线的方式,经过对网络部分的处理后,将payload数据根据合约ID进行过滤,只将用户订阅的合约数据经过解析后上报给CPU端。
合约订阅的整体流程分为初始化及解析模块启动两部分。其中初始化模块负责将订阅合约列表下发到FPGA芯片中的存储模块中,之后启动FPGA解析模块。
解析的流水线分为三大模块:接收模块、解析模块、输出模块。其中接收模块负责接收网络数据包,并将payload数据传输给解析模块。解析模块的处理流程如图4所示,在模块初始化时由CPU端将订阅的合约列表通过Pcie传输给FPGA加速卡的解析模块;启动解析模块后,根据解析出来的合约ID与合约列表进行匹配,匹配成功则将该合约数据传输给输出模块;否则将该数据舍弃。输出模块将接收到的数据通过Pcie回传到CPU端,完成合约订阅流程。
在一些实施例中,还可以利用WebSocket协议实施订阅,步骤包括:
1.1建立WebSocket连接:用户端应用程序使用WebSocket API与数据源服务器建立WebSocket连接。这可以通过在客户端发起WebSocket握手请求来实现。握手请求包括指定WebSocket协议和版本的HTTP头,以及其他必要的信息。
1.2进行订阅请求:一旦WebSocket连接建立成功,用户端可以发送订阅请求给服务器。这可以是特定于应用程序的协议或消息格式,用于指定要订阅的内容或主题。
1.3服务器确认订阅:数据源服务器接收到订阅请求后,会验证请求并确认订阅。数据源服务器可以发送确认消息给用户端,表示订阅成功。
1.4推送数据:一旦用户端成功订阅,数据源服务器可以开始向用户端推送相关数据。这些数据可以是实时更新的信息、事件或其他内容,取决于应用程序的需求。
1.5处理推送数据:用户端应用程序接收到数据源服务器推送的数据后,可以根据需要进行处理和显示。这可以涉及更新用户界面、执行特定操作或将数据用于其他用途。
1.6维持连接和处理错误:WebSocket连接通常保持活动状态,以便数据源服务器可以继续向用户端推送数据。用户端和数据源服务器应该处理连接断开、错误和重新连接等情况,并采取适当的措施以确保可靠的订阅。
在一些实施例中,所述方法还包括:接收用户发送的订阅变更请求,根据订阅变更请求更新所述订阅列表。
另一方面,本发明还提供一种金融行情合约数据接收装置,包括:
接收模块,用于接收数据源发布的金融行情合约数据包;
解析模块,用于执行上述的金融行情合约数据接收方法;
输出模块,用于将所述解析模块补齐后的金融行情合约通过PCIe协议发送至所述用户的处理器端。
在一些实施例中,解析模块采用现场可编程门阵列设备(FPGA)。
另一方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述方法的步骤。
综上所述,本发明所述金融行情合约数据接收方法及装置,针对现实交易的不确定性,通过在接收金融行情合约的过程中,设置和执行完整的合约补齐方案,利用插补数据的形式保证接收到的金融行情合约在次序和设定条数上的完整性,使得后续决策过程能够始终按照统一的数据设定条数并行处理,保证了急速交易的实现。同时,在对金融行情合约进行派发时,基于订阅机制按照用户的需求筛选数据,减少后续应用过程中对数据的无效处理,提升了处理速度和执行效率。
与上述方法相应地,本发明还提供了一种装置/系统,该装置/系统包括计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该装置/系统实现如前所述方法的步骤。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现前述边缘计算服务器部署方法的步骤。该计算机可读存储介质可以是有形存储介质,诸如随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、软盘、硬盘、可移动存储盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种金融行情合约数据接收方法,其特征在于,所述方法用于在用户端的解析模块上执行,该方法包括以下步骤:
基于时间先后顺序接收金融行情合约,所述金融行情合约至少包括合约批次对应的时间戳、合约ID以及合约数据;其中,在金融机构生成所述金融行情合约的过程中,每个时间戳所对应批次的所述金融行情合约是根据业务需求按照预设次序和设定条数生成的;
对于接收到的所述金融行情合约,核查每个时间戳对应批次的合约ID,按照所述预设次序和设定条数对比查找每个时间戳对应批次中缺失的金融行情合约,并采用指定数据补齐所述缺失的金融行情合约,以并行处理执行决策;
以及,根据预设的金融行情合约订阅模式,将补齐后的金融行情合约按照用户的订阅需求发送至用户;
其中,核查每个时间戳对应批次的合约ID,按照所述预设次序和设定条数对比查找每个时间戳对应批次中缺失的金融行情合约,并采用指定数据补齐所述缺失的金融行情合约,包括:
初始化缓存合约时间戳为0,初始化缓存合约ID为0;
接收当前所述金融行情合约并按照用户的订阅需求发送至用户;
当接收到的当前所述金融行情合约的时间戳晚于所述缓存合约时间戳时,核查所述缓存合约时间戳对应批次的所述金融行情合约是否达到所述设定条数,未达到设定条数时,按照所述预设次序和所述设定条数,对所述缓存合约时间戳对应批次中的第一类缺失金融行情合约进行补齐并按照用户的订阅需求发送至用户,所述第一类缺失金融行情合约的合约数据标记为0值;并将缓存合约ID重新置为0;
当接收到的当前所述金融行情合约的时间戳等于所述缓存合约时间戳时,且当前所述金融行情合约的合约ID大于所述缓存合约ID时,判断当前所述金融行情合约的合约ID与所述缓存合约ID是否连续,连续时,更新所述缓存合约ID为当前所述金融行情合约的合约ID;不连续时,补齐所述缓存合约ID至当前所述金融行情合约的合约ID之间的第二类缺失金融行情合约,所述第二类缺失金融行情合约的合约数据标记为0值,并将补齐的所述第二类缺失金融行情合约按照用户的订阅需求发送至用户。
2.根据权利要求1所述的金融行情合约数据接收方法,其特征在于,核查每个时间戳对应批次的合约ID,按照所述预设次序和设定条数对比查找每个时间戳对应批次中缺失的金融行情合约,并采用指定数据补齐所述缺失的金融行情合约,包括:
判断是否接收到新的所述金融行情合约,当接收到当前所述金融行情合约时,初始化缓存合约时间戳为0,初始化缓存合约ID为0;
当接收到的当前所述金融行情合约的时间戳晚于所述缓存合约时间戳时,将所述缓存合约时间戳更新为当前所述金融行情合约的时间戳,将初始化缓存合约ID重新置为0;判断当前所述金融行情合约的合约ID是否大于缓存合约ID,若是则补齐所述缓存合约ID至当前所述金融行情合约的合约ID之间的第三缺失金融行情合约并按照用户的订阅需求发送至用户,所述第三缺失金融行情合约的合约数据标记为0值,若否则将当前所述金融行情合约按照用户的订阅需求发送至用户;
当接收到的当前所述金融行情合约的时间戳等于所述缓存合约时间戳时,判断当前所述金融行情合约的合约ID是否大于缓存合约ID,若是则补齐所述缓存合约ID至当前所述金融行情合约的合约ID之间的第四缺失金融行情合约并按照用户的订阅需求发送至用户,所述第四缺失金融行情合约的合约数据标记为0值,若否则将当前所述金融行情合约按照用户的订阅需求发送至用户。
3.根据权利要求2所述的金融行情合约数据接收方法,其特征在于,所述方法在初始化缓存合约时间戳以及初始化缓存合约ID之前,还包括:
判断是否接收到新的所述金融行情合约,当未接收到新的所述金融行情合约时,保持空载待命状态,所述空载待命状态包括:
判断所述缓存合约时间戳是否初始化,若已完成初始化则获取当前硬件时间戳,在所述当前硬件时间戳大于缓存硬件时间戳设定时长,且缓存的合约列表中合约ID未达到所述设定条数时,补齐所述缓存硬件时间戳剩余未输出的空载合约,所述空载合约的合约数据标记为0值,更新缓存硬件时间戳为当前硬件时间戳。
4.根据权利要求3所述的金融行情合约数据接收方法,其特征在于,所述方法还包括:
判断所述缓存合约时间戳是否初始化后,若未完成初始化,则重新判断是否接收到新的所述金融行情合约;
以及,在所述当前硬件时间戳小于等于缓存硬件时间戳,或缓存的合约列表中合约ID达到所述设定条数时,重新判断是否接收到新的所述金融行情合约。
5.根据权利要求1所述的金融行情合约数据接收方法,其特征在于,根据预设的金融行情合约订阅模式,将补齐后的金融行情合约按照用户的订阅需求发送至用户,包括:
获取所述金融行情合约解析后的待派发合约ID;
根据用户预设的订阅列表过滤所述待派发合约ID,将处于所述订阅列表中的待派发合约ID对应的金融行情合约输出,其余舍弃。
6.根据权利要求5所述的金融行情合约数据接收方法,其特征在于,所述方法还包括:
接收用户发送的订阅变更请求,根据所述订阅变更请求更新所述订阅列表。
7.一种金融行情合约数据接收装置,其特征在于,包括:
接收模块,用于接收数据源发布的金融行情合约数据包;
解析模块,用于执行如权利要求1至6任意一项所述的金融行情合约数据接收方法;
输出模块,用于将所述解析模块补齐后的金融行情合约通过PCIe协议发送至所述用户的处理器端。
8.根据权利要求7所述的金融行情合约数据接收装置,其特征在于,所述解析模块采用现场可编程门阵列设备。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310920061.9A CN116962513B (zh) | 2023-07-25 | 2023-07-25 | 一种金融行情合约数据接收方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310920061.9A CN116962513B (zh) | 2023-07-25 | 2023-07-25 | 一种金融行情合约数据接收方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116962513A CN116962513A (zh) | 2023-10-27 |
CN116962513B true CN116962513B (zh) | 2024-04-19 |
Family
ID=88461485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310920061.9A Active CN116962513B (zh) | 2023-07-25 | 2023-07-25 | 一种金融行情合约数据接收方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116962513B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065958A (zh) * | 2021-02-20 | 2021-07-02 | 上海金融期货信息技术有限公司 | 一种主题行情业务数据流式系统 |
CN115357629A (zh) * | 2022-10-20 | 2022-11-18 | 成都宽邦科技有限公司 | 用于金融数据流的处理方法、系统、电子装置及存储介质 |
CN115456781A (zh) * | 2022-09-16 | 2022-12-09 | 中国建设银行股份有限公司 | 行情数据处理方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018195364A1 (en) * | 2017-04-19 | 2018-10-25 | Baton Systems, Inc. | Time stamping systems and methods |
-
2023
- 2023-07-25 CN CN202310920061.9A patent/CN116962513B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065958A (zh) * | 2021-02-20 | 2021-07-02 | 上海金融期货信息技术有限公司 | 一种主题行情业务数据流式系统 |
CN115456781A (zh) * | 2022-09-16 | 2022-12-09 | 中国建设银行股份有限公司 | 行情数据处理方法、装置、电子设备及存储介质 |
CN115357629A (zh) * | 2022-10-20 | 2022-11-18 | 成都宽邦科技有限公司 | 用于金融数据流的处理方法、系统、电子装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116962513A (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6757781B2 (ja) | 通信レイテンシー平準化装置、方法、およびシステム | |
US7047243B2 (en) | Coordinating transactional web services | |
US10621666B2 (en) | System and method for facilitation cross orders | |
US20160078538A1 (en) | System and method for a semi-lit market | |
US20140164208A1 (en) | Systems and Methods for Testing a Financial Trading System | |
CN102246194A (zh) | 改进的自动交易系统 | |
WO2023207146A1 (zh) | Esop系统的服务模拟方法、装置、设备及存储介质 | |
CN108230149B (zh) | 基于soc fpga的加速金融交易系统及方法 | |
US20090313160A1 (en) | Hardware accelerated exchange order routing appliance | |
US20240242279A1 (en) | Dynamic format electronic confirmations | |
CN107800667B (zh) | 一种信息处理方法及接入处理装置 | |
CN113312649A (zh) | 报文处理方法、装置、设备、系统及存储介质 | |
CN104599185A (zh) | 交易方法、终端及系统 | |
CN112991023B (zh) | 订单数据处理方法、装置、计算机设备和存储介质 | |
CN116962513B (zh) | 一种金融行情合约数据接收方法及装置 | |
CN115280740B (zh) | 利用分布式消息队列系统提供流数据弹性的技术 | |
CN113590243A (zh) | 能源企业项目创建方法、装置、计算机设备及介质 | |
US20160267590A1 (en) | Methods and systems of performing risk management of transactions | |
AU2014337424B2 (en) | Customizable macro-based order entry protocol and system | |
CA2894797C (en) | Trading opportunities based on public ticker data | |
CN113989046A (zh) | 交易处理方法、装置、电子设备、存储介质和程序产品 | |
CN114238209A (zh) | 快照行情数据的测试方法、装置、电子设备及存储介质 | |
US20240046343A1 (en) | Method, apparatus and system for auction of assets | |
CN111144977A (zh) | 一种股票订单处理方法、装置 | |
US20240303126A1 (en) | Systems and Methods for Increasing Request Processing Performance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |