一种面向证券行情终端的多源行情数据处理方法及装置与流程

摘要: 本发明涉及证券行情数据处理与终端显示控制,特别是涉及一种面向证券行情终端的多源行情数据处理方法及装置。背景技术:1、随着证券交易业务的电子化、移动化发展,证券行...
一种面向证券行情终端的多源行情数据处理方法及装置与流程

本发明涉及证券行情数据处理与终端显示控制,特别是涉及一种面向证券行情终端的多源行情数据处理方法及装置。

背景技术:

1、随着证券交易业务的电子化、移动化发展,证券行情终端已成为投资者查看行情、分析走势和进行交易决策的重要工具。证券行情终端通常包括证券交易app、证券行情分析客户端、金融资讯终端、股票交易软件等,其需要在终端界面中实时展示多个证券标的的行情数据。

2、在现有技术中,证券行情终端通常从行情服务器、交易服务器、资讯服务器或其他金融数据服务中获取多源行情数据,并展示在对应的行情页面中。所述多源行情数据通常包括基础行情数据、盘口交易数据、分时图数据、k线图数据、逐笔成交数据、技术指标数据、资金流数据、资讯公告数据以及风险事件数据等。

3、以证券交易app的个股行情页面为例,页面通常由多个行情模块组成。页面顶部展示证券名称、证券代码、最新价、涨跌幅、成交量等基础行情信息;页面中部展示分时图或k线图;页面下方展示盘口数据、逐笔成交、资金流向、资讯公告、财务数据、技术指标等模块。不同模块的数据可以由不同接口或服务提供,终端接收到数据后,按照预设页面结构将其渲染到对应的界面区域。

4、现有证券行情终端通常以接口数据或页面模块作为基本处理单位。当某一接口返回新的行情数据后,终端对该接口对应的数据进行解析,并更新相应页面模块。当多个模块同时接收到更新数据时,终端可能在短时间内对多个页面区域进行连续刷新。

5、由于移动终端屏幕尺寸有限,证券行情页面通常为长页面或多标签页面。用户同一时刻通常只能看到部分页面区域,例如价格区、分时图区、k线图区或盘口区,而其他模块可能位于当前屏幕之外,或需要切换标签后才能看到。

6、证券行情数据具有高频变化、多源异构和实时性要求较高等特点。不同类型的数据在刷新频率、数据体量、计算复杂度、传输成本和显示优先级方面存在差异。例如,最新价、涨跌幅、盘口、逐笔成交等数据变化频率较高;k线图、技术指标、资金流统计等数据涉及时间序列处理或指标计算;涨跌停、停牌、异常波动、重大公告、风险警示等数据属于事件触发型数据。

7、现有证券行情终端已经能够实现多类行情数据的请求、解析和页面展示,但其技术实现通常以接口或页面模块为基本处理单位,缺少针对多源行情数据的统一分层描述、增量更新、缓存控制和渲染调度机制。

8、由此可知,现有证券行情终端在进行多源行情数据处理和页面展示时,至少存在如下问题:

9、多源行情数据缺少统一的分层处理机制。

10、现有证券行情终端通常按照页面模块或接口类型请求和处理行情数据。基础行情、盘口、逐笔成交、分时图、k线图、技术指标、资金流和风险事件等数据虽然同属行情页面数据,但其刷新频率、实时性要求、计算复杂度和显示优先级不同。若不进行统一分层处理,容易导致高实时性数据、高计算量数据和低频缓存数据混合处理,增加终端解析和刷新压力。如果终端仅按照接口或页面模块进行处理,而不对不同类型的行情数据进行统一分层描述和优先级区分,就难以根据数据特征采用差异化处理策略。这样容易导致高实时性数据、高计算量数据和低频缓存数据被混合处理,增加终端数据解析和页面刷新压力。

11、行情数据容易发生重复传输和重复解析。

12、证券行情数据变化频率较高,但相邻时间片内并非所有字段都会变化。例如可能只有最新价、某一盘口档位或分时图末端数据点发生变化。现有方案若按接口或模块整体返回和解析数据,会导致未变化字段被重复传输和重复处理,增加网络传输量、cpu(central processing unit,中央处理器)占用、内存占用和解析耗时。

13、页面刷新容易以模块整体刷新为主,导致无效渲染较多。

14、现有行情页面通常由价格区、盘口区、分时图区、k 线图区、逐笔成交区等多个模块组成。当某一模块中的部分字段发生变化时,终端可能触发整个模块甚至多个区域刷新。若缺少字段级、区域级或数据点级的局部刷新机制,容易产生大量无效渲染,增加gpu(graphics processing unit,图形处理器)绘制压力,并导致页面卡顿、掉帧或滑动不流畅。

15、未充分结合终端页面可视区域进行数据处理和渲染调度。

16、移动端行情页面受屏幕尺寸限制,同一时刻通常只显示部分区域。现有方案若对不可见模块仍持续解析和渲染,会造成资源浪费。同时,在弱网、低电量、cpu/gpu负载较高或页面快速滚动等场景下,如果仍按固定刷新策略处理全部数据,容易导致行情延迟、图表卡顿和页面显示不稳定。

17、ui(user interface,用户界面)页面模块与底层数据处理之间缺少明确的映射调度关系。

18、现有行情页面通常从产品界面角度划分为价格区、分时图区、k 线图区、盘口区、成交明细区、资讯公告区等模块,但底层数据处理往往仍以接口返回数据为主,缺少数据字段、数据层级与具体渲染区域之间的统一映射关系。因此,当某一数据字段变化时,终端难以直接确定最小刷新区域,也难以进行精细化渲染调度。

技术实现思路

1、本发明的目的是为了克服上述背景技术的不足,提供一种面向证券行情终端的多源行情数据处理方法及装置,使其解决现有证券行情页面在多类行情数据高频刷新时,容易出现重复传输、重复解析、无效渲染、终端资源占用较高以及关键行情数据刷新不及时的问题。

2、本发明提供的一种面向证券行情终端的多源行情数据处理方法,包括如下步骤:s1、获取证券标的的多源行情数据;s2、根据数据的实时性、变化频率、计算复杂度、事件属性和页面显示区域,对多源行情数据进行分层识别;s3、根据数据分层结果,生成行情数据分层描述结构,所述行情数据分层描述结构至少包括证券标的标识、数据层级标识、数据字段标识、变化标识、数据时间戳、优先级标识、缓存策略标识和渲染区域标识;s4、将当前时间片行情数据与上一时间片行情数据进行比对,仅对发生变化的数据字段生成增量更新数据包;s5、证券行情终端接收增量更新数据包并根据数据层级、刷新优先级和缓存策略进行解析还原与缓存;s6、证券行情终端根据渲染区域标识,将变化数据映射到行情页面对应区域,并对对应区域进行局部刷新;s7、证券行情终端根据网络状态、终端性能、页面可视区域和用户当前操作状态,对不同数据层的解析顺序、刷新频率和渲染任务进行动态调度。

3、在上述技术方案中,所述s2步骤中,对多源行情数据的分层识别分别划分为基础行情层、盘口交易层、图表分析层、风险事件层和历史缓存层的数据层。

4、在上述技术方案中,所述s3步骤中,所述行情数据分层描述结构还包括用于标识当前增量更新数据包的总长度的数据包长度、以及用于存储实际需要更新的行情数据字段值的数据体。

5、在上述技术方案中,所述s3步骤中,生成行情数据分层描述结构采用可变长度二进制协议进行编码。

6、在上述技术方案中,所述s4步骤的具体过程如下:s41、获取当前时间片的多源行情数据;s42、读取上一时间片已发送、已缓存或已渲染的行情数据,作为当前时间片数据的比对对象;s43、根据证券标的标识、数据层级标识和数据字段标识,对当前时间片行情数据与上一时间片行情数据进行字段级比对,判断各行情字段的变化情况;s44、对于发生变化的行情数据的字段,通过字段变化位图、变化字段集合或字段编号加长度值的组合结构标识对应变化字段,并将时间戳、刷新优先级、渲染区域标识以及字段值写入增量更新数据包;s45、当系统检测到风险事件时,生成风险事件层增量更新数据包,并设置较高刷新优先级,使终端能够优先解析和渲染该类事件数据;s46、按照行情数据分层描述结构,将发生变化的字段及其对应数据体组合为增量更新数据包并发送至证券行情终端,基于该增量更新数据包的数据层级标识、变化标识和渲染区域标识进行解析、缓存和局部刷新。

7、在上述技术方案中,所述s5步骤的具体过程如下:s51、接收到增量更新数据包后,解析数据包中的包总长度、协议版本号、证券标的标识、数据层级标识、字段字典版本号、字段变化位图、数据时间戳、刷新优先级标识、缓存策略标识、渲染区域标识和数据体长度信息;s52、根据证券标的标识,在本地缓存中查找对应证券标的的行情数据记录,若本地已有对应缓存,则将增量数据写入对应缓存位置;若本地不存在对应缓存,则根据当前数据包新建该证券标的的数据缓存记录;s53、根据数据层级标识和刷新优先级标识确定解析顺序,优先解析基础行情层、盘口交易层中的关键字段以及风险事件层数据;对于图表分析层和历史缓存层数据,根据页面可视状态、终端性能和缓存策略进行延迟解析或按需解析;s54、仅更新发生变化的数据字段,对于未变化字段,保留本地缓存中的原有数据,不重复解析和覆盖,对于时间序列数据,根据数据时间戳将新增数据点或新增记录写入对应时间序列缓存;s55、终端根据缓存策略标识判断当前数据是否可缓存、缓存有效时间以及是否需要失效更新;s56、根据渲染区域标识生成待渲染数据集合,并发送至变化数据页面区域映射及局部刷新模块;所述变化数据页面区域映射及局部刷新模块生成对应的待渲染任务,并由渲染任务动态调度模块进行调度。

8、在上述技术方案中,所述s5步骤按照二进制编码协议对数据包进行解析还原,其具体步骤如下:s51’、读取数据包总长度和数据体长度,判断当前数据包是否完整;若数据包长度不满足包头字段或数据体长度要求,则丢弃该数据包或等待后续数据补齐;读取协议版本号和字段字典版本号,确定当前数据包适用的字段字典、数据层级定义和渲染区域定义;若终端不支持对应协议版本,则按兼容策略降级处理或丢弃不可识别字段;s52’、解析证券标的标识,并在证券行情终端本地缓存中定位对应证券标的的数据缓存对象;若本地不存在对应缓存对象,则根据当前证券标的标识和数据层级新建缓存对象;s53’、解析数据层级标识、刷新优先级标识和缓存策略标识,确定当前数据包的解析队列、缓存写入方式和后续渲染调度策略;s54’、解析字段变化位图,对于字段变化位图中取值为0的字段,终端保留原缓存值,不从数据体中读取字段值;按照字段变化位图中取值为1的字段顺序,从数据体中依次读取字段值;直接读取定长字段预设长度,读取变长字段时依次读取字段长度和字段内容;对于时间序列数据,根据数据时间戳确定新增点、替换点或丢弃点;s55’、对于短时覆盖缓存,终端以当前字段值覆盖上一缓存值;对于按时间序列追加缓存,终端将新增分时点、k 线点或逐笔成交记录插入对应序列位置;对于长期缓存,终端根据版本号、时间戳或失效条件判断是否替换原数据;s56’、根据渲染区域标识和字段集合生成待渲染任务,至少包括证券标的标识、目标渲染区域、变化字段集合、刷新优先级和数据时间戳;在多个增量更新数据包连续到达时,根据刷新优先级和渲染区域对待渲染任务进行合并。

9、在上述技术方案中,所述s6步骤的具体过程如下:s61、根据渲染区域标识确定变化数据对应的页面区域;s62、根据页面滚动位置、标签页状态和模块展开状态,判断目标页面区域是否处于当前可视范围:若处于可视范围,则将该区域加入待渲染队列;若不处于可视范围,则仅更新缓存;s63、终端根据刷新优先级确定渲染顺序,优先渲染基础行情层、盘口交易层中的关键字段以及风险事件层数据,延迟渲染或合并渲染实时性要求较低或计算量较高的数据。

10、在上述技术方案中,所述s7步骤的具体过程如下:s71、根据当前网络状态、cpu负载、gpu负载、内存占用、电量状态和用户操作状态,调整各种数据层的渲染策略;s72、仅对发生变化的数据对应的页面区域进行局部刷新;s73、对于未发生变化的页面区域,终端保持原显示状态。

11、本发明还提供了一种面向证券行情终端的多源行情数据处理装置,具有计算机程序,该计算机程序能够执行面向证券行情终端的多源行情数据处理方法。

12、本发明面向证券行情终端的多源行情数据处理方法及装置,具有以下有益效果:

13、减少行情数据的重复传输和重复解析,提高数据处理效率。通过将当前时间片行情数据与上一时间片行情数据进行比对,仅对发生变化的行情字段或新增记录生成增量更新数据包。对于未发生变化的数据字段,不再重复传输和重复解析。由此可以减少高频行情刷新过程中的冗余数据传输,降低终端对无效数据的解析压力,提高证券行情数据在终端侧的处理效率。

14、减少页面无效渲染,提高行情页面刷新效率。通过渲染区域标识,将变化数据映射到证券行情页面中的具体显示区域,例如价格区域、盘口区域、分时图区域、k线图区域、逐笔成交区域和风险提示区域等。终端在接收到增量更新数据后,仅对发生变化的数据对应的页面区域进行局部刷新,而不对整个页面或未变化模块进行重复渲染。由此可以减少无效重绘,降低gpu绘制压力,提高行情页面在高频刷新场景下的显示流畅性。

15、提高关键行情数据的显示及时性和页面稳定性。通过数据层级标识和刷新优先级标识,对基础行情数据、盘口关键字段和风险事件数据进行优先处理。对于最新价、涨跌幅、买一卖一、涨跌停、停牌、异常波动、风险警示等实时性要求较高的数据,终端可以优先解析、缓存和渲染。尤其在多个数据模块同时更新时,可以避免高计算量图表数据或低频历史数据占用过多处理资源,从而提高关键行情数据的显示及时性。

16、降低终端资源消耗,并提高弱网或低性能设备下的适应能力。结合终端网络状态、cpu/gpu负载、内存占用、电量状态、页面可视区域和用户操作状态,对不同数据层的解析和渲染任务进行动态调度。在网络较差、终端资源紧张、页面快速滚动或目标模块不可见时,可以降低低优先级数据的刷新频率,延迟或合并部分渲染任务,优先保障基础行情和风险事件数据展示。由此可以减少网络、cpu、gpu、内存和电量消耗,提高证券行情终端在不同设备和网络环境下的显示稳定性。

17、提高后续业务扩展和页面模块扩展能力。通过行情数据分层描述结构,对证券标的、数据层级、数据字段、变化状态、缓存策略和渲染区域进行统一描述。当后续新增行情字段、数据类型、页面模块或展示区域时,可以基于现有分层描述结构进行扩展,而不必完全改变原有数据处理和渲染调度流程,从而降低后续系统改造复杂度。