CN115578099A - 一种基于外汇牌价阻塞的预处理方法 - Google Patents

一种基于外汇牌价阻塞的预处理方法 Download PDF

Info

Publication number
CN115578099A
CN115578099A CN202211574458.9A CN202211574458A CN115578099A CN 115578099 A CN115578099 A CN 115578099A CN 202211574458 A CN202211574458 A CN 202211574458A CN 115578099 A CN115578099 A CN 115578099A
Authority
CN
China
Prior art keywords
data
lock
blocking
time
rate
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.)
Granted
Application number
CN202211574458.9A
Other languages
English (en)
Other versions
CN115578099B (zh
Inventor
黄焕磊
孙志旻
林建福
吴刚
胡晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Baorong Technology Co ltd
Original Assignee
Zhejiang Baorong Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Baorong Technology Co ltd filed Critical Zhejiang Baorong Technology Co ltd
Priority to CN202211574458.9A priority Critical patent/CN115578099B/zh
Publication of CN115578099A publication Critical patent/CN115578099A/zh
Application granted granted Critical
Publication of CN115578099B publication Critical patent/CN115578099B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/381Currency conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明设计开发了一种基于外汇牌价阻塞预处理牌价数据方法,通过对多线程处理后的阻塞待存储数据进行有序预处理。每个接收到的数据在预处理完之后立即进行一次判断,观察锁是否释放,如果前一个锁已经释放,立即进行抢占锁,当抢锁失败时该数据进入等待队列,等待锁释放再重复上述抢锁过程;进入等待队列的数据根据预处理结果以及等待队列的长度设计不同处理策略。该方法有效避免了阻塞等待存储情况下数据无序导致存储出错,或因无序而弃用关键数据的情况,提高了数据有效性和完整性,同时节约了处理有序问题的时间。此外对于抛弃的数据进行整合分析,优化后期的数据处理方案并提高数据的处理效率以减少此后的阻塞发生频率。

Description

一种基于外汇牌价阻塞的预处理方法
技术领域
本发明属于信息处理技术领域,尤其是一种基于外汇牌价阻塞的预处理方法。
背景技术
银行为了保证外汇牌价的可靠性和权威性,均投入了大量的财力来配置相应的设备。而许多金融企业或涉及海外业务的企业出于自身需求,尤其是为了关注本身的贸易业务,不想因为汇率波动带来的风险影响贸易,需要即时关注外汇牌价的变化。为此,银行推出衍生品交易帮助企业控制汇率风险,保证风险中性。然而汇率价格变化频繁,企业和银行的询价过程需要实时价格的支撑,才能做到选择合理价格成交交易。企业希望根据实时价格的变化和银行确认价格从而达成交易。但是企业无法购买和银行同等的硬件配置、软件资源导致无法像银行发送数据那么高性能的去接收数据。因此为了提高企业接收价格的有序性和高性能,如何在银行性能高于企业系统的情况下进一步提升企业性能处理的准确性是当前亟待解决的问题。
现有技术中也有多种优化外汇牌价的方法,其中大部分还是为银行服务,仅有小部分考虑到了用户端。例如专利申请号为CN202111286539.4的发明专利《牌价报文数据的处理方法及装置》中就公开了一种牌价报文数据的处理方法及装置,涉及金融技术领域,该方法包括:在接收到上游牌价发布系统发来的牌价更新报文时,发送确认收到牌价更新报文的响应报文至所述上游牌价发布系统;从所述牌价更新报文中获取牌价版本号和银行标识;根据获取的银行标识,从预先建立的银行标识与牌价版本号之间的关系中读取对应的牌价版本号;将从牌价更新报文中获取的牌价版本号与读取的牌价版本号进行比较;如果根据比较结果判断获取的牌价版本号为已经过期的版本号,不再进行后续牌价更新处理的操作。该发明确实可以实现在牌价高频推送场景下高效稳定地处理牌价报文数据。但是该发明采用的是最为简单的版本号对比的方式,一旦发生了长时间的阻塞,采用该技术方案将会抛弃掉大量的中间数据,导致企业无法准确把握外汇牌价动向。
此外,现有技术中还有使用多线程的技术,这些技术虽然提升了性能但是会打乱数据的有序性。同时银行的高性能设备配置价格高昂,并非企业能够承受的。这导致企业接收端数据一定会有所阻塞,如果不使用多线程并发处理阻塞现象会越来越严重,因此现有技术中高性能与有序两者无法兼顾,如何在阻塞的情况下有序且高性能地处理数据成为了一个难以解决的问题。
发明内容
为克服现有技术的不足及存在的问题,本发明设计开发了一种基于外汇牌价阻塞预处理牌价数据方法,对多线程处理后的阻塞待存储数据进行有序预处理。该方法有效避免了阻塞等待存储情况下数据无序导致存储出错,或因无序而弃用关键数据的情况,提高了数据有效性和完整性,同时节约了处理有序问题的时间。此外对于抛弃的数据进行整合分析,优化后期的数据处理方案并提高数据的处理效率以减少此后的阻塞发生频率。
对此,本发明提供一种基于外汇牌价阻塞的预处理方法,包括连接到银行的外汇牌价的展示系统,其特征在于,所述展示系统通过环形无锁并发框架接收数据并进行数据预处理,在预处理过程中将数据名称转换为展示系统内部标识id;预处理后的数据至少包括报价时间、数据抓取时间和数据失效时间。报价时间就是银行发出报价的时间。数据抓取时间是数据获取的时间,在忽略信道阻塞的情况下,数据抓取时间是等同于数据发出报价的时间的,但是正是有了信道的阻塞,采用数据抓取时间来对照数据发出报价的时间,可以判断出阻塞情况,从而给策略转换提供参考。数据失效时间是获取数据后其在系统中等待数列中存在的最长时间。这个时间随着系统内总体数据量随时进行调整。此外还需要将数据进行数据合规性校验、汇率精度格式化、内部数据设置默认值。
每个接收到的数据在预处理完之后立即进行一次判断,观察锁是否释放,如果前一个锁已经释放,立即进行抢占锁,抢锁成功时,比较数据序号大小,当序号大于展示系统中当前最新数据时则放入系统缓存中,并以异步或同步的方式放入展示系统最新表中;当序号小于展示系统中当前最新数据时则再判断采用的处理策略,使用处理策略则放入系统历史数据缓存中并以异步或同步的方式放入系统历史表中;否则直接丢弃。当抢锁失败时,当前数据进入等待队列,等待锁释放再重复上述抢锁过程;进入等待队列的数据根据预处理结果以及等待队列的长度设计不同处理策略,当等待队列的数据在成功抢占锁前被判定需要进行抛弃时,需要验证阈值,如果超过设定阈值则停止本次抛弃动作并将当前数据再次排到等待队列最前列;当等待队列中的数据存在时间超过数据失效时间后,自动进行抛弃,此时的抛弃无需验证阈值。在上述过程中所有被抛弃的数据均进入抛弃池。
优选的,所述预处理的具体方法还包括:展示系统在收到数据后,首先进行唯一校验,剔除其中错误信息后形成数据集合,并对其赋予数据唯一序号,校验渠道编码,然后获取所述数据的属性信息;最后标注所述数据集合的报价时间、获取时间以及失效时间。这样可以对较短一段时间内接收到的波动幅度较小的数据进行整合处理,减少了后期抢锁的频率。
优选的,所述处理策略包括:抛弃策略;优化抛弃策略和全量使用策略,其中采用抛弃策略时选用非公平锁;全量使用策略只有数据未发生阻塞时才能选择,当采用全量使用策略时选用公平锁,且不抛弃数据。具体对策略的选择是根据展示系统的数据承载量自行进行判断的。
优选的,在系统负载达到极限时,选择采用抛弃策略;即在预处理过的数据进入阻塞队列后,采用CAS方式比较展示系统中最新数据和当前进入的数据,最新数据的序号大则抛弃当前进入的数据,且不需要再抢锁。CAS是乐观锁的一种实现,CAS全称是比较和替换(Compare and Swap),它是一种无锁操作,不需要加锁,避免了线程切换的开销。此策略只会有一个数据在等待抢锁。并且可以把抢锁规则设置为非公平锁,进入逻辑处理,近似于现有技术中的技术。
优选的,在系统负载较大时,采用优化抛弃策略,优化抛弃策略为:当进入阻塞队列的经过预处理的数据序号大于当前最大序号,则作为最大值数据放入等待队列头部;如果小于则计算汇率波动率,如果计算所得波动率超过预设的阈值则将数据有序放入队列,波动率计算公式为:
Vo=(r2-r1)*100%/r1;
其中:Vo为计算的波动率,r2为当前汇率,r1为相连汇率或历史平均汇率。
预设的波动率阈值以历史波动率做参考,超过历史波动率则算波动较大:
Figure 346386DEST_PATH_IMAGE001
Figure 610664DEST_PATH_IMAGE002
这里,N是观察值的数量,σ代表对数收益的平均离差,即标准差。历史波动率是指投资回报率在过去一段时间内所表现出的波动率,它由标的资产市场价格过去一段时间的历史数据反映。这就是说,可以根据{St}的时间序列数据,计算出相应的波动率数据,然后运用统计推断方法估算回报率的标准差,从而得到历史波动率的估计值。若将日、周等标准差转化为年标准差,需要乘以以年为单位的频数长度的平方根。
优选的,历史波动率过程中采用百分比价格变动法获得汇率的百分比收益值:即价格的环比增长速度。
Figure 534276DEST_PATH_IMAGE003
式中,X i 是汇率的百分比收益,P i 是基期资产的价格,
Figure 18490DEST_PATH_IMAGE004
是报告期资产的价格, 基期通常为前一日日期;报告期通常为当日日期。
优选的,历史波动率过程中采用对数价格变动法获得汇率的百分比收益值:
Figure 180000DEST_PATH_IMAGE005
式中,X i 是资产的对数收益,P i 是基期资产的价格,
Figure 146337DEST_PATH_IMAGE004
是今天报告期资产的价 格;基期通常为前一日日期;报告期通常为当日日期。
优选的,阈值设置根据公司具体业务能接受的最大范围或最小范围来确定;或参考第三方阈值设置。第三方阈值设置可以来自历史数据的积累或其它系统中调教好的数据进行分享。在采用第三方阈值设置前需要进行数据比对校验,避免由于不同的配置导入不适合本地展示系统的第三方阈值。在符合要求的前提下,第三方数据更多,计算的波动率阈值更加准确。
进一步的,在处理过程中所有被抛弃的数据均进入抛弃池,所述抛弃池数据清理的方法为:获取抛弃池中每个数据在等待队列中的生存时间,根据在等待队列中的生存时间长短进行排序,生存时间长的数据放在前面,并标记其中存在时间超过数据失效时间的数据,获取这些数据的获取时间,找到获取时间相邻的多个数据,找到最大相邻数据个数,计算并保存其相对汇率波动率;当系统下一次采用抛弃策略时,在获取数据时对相邻获取时间的数据进行比较,两者之间的汇率波动率小于相对汇率波动率时 ,则直接抛弃后一个数据,采用该方法抛弃的数据数量不大于最大相邻数据个数。该过程中相对汇率波动率必然小于历史波动率。
和现有技术相比较可见:本发明并非和背景技术中记载的方案一样,需要先从牌价更新报文中获取牌价版本号和银行标识,再进行版本对比。且对于抛弃的数据并无整理和处理,导致当下次阻塞发生时,依然只能默默等待。对比文件中完全无差别抛弃数据会导致牌价参考价值降低无法体现临时突发情况。
本发明通过对阻塞数据预处理的方式进一步提升系统对牌价数据的处理性能。根据对抛弃池中的数据处理后,在下次进行阻塞时对符合条件的数据会强制保留,而对于部分数据会选择直接抛弃使用,从而减少阻塞的时间长度。并且本发明确保最终展示的数据对最后经济活动都是具有相对重要的参考价值,本发明可以提高数据有效性和完整性从而为交易提供更准确的报价参考。通过预留抛弃数据计算汇率波动率将波动较大的数据重新发回系统中也能够提升一定参考价值。
附图说明
图1是本发明基于外汇牌价阻塞的预处理方法的全业务流程示意图;
图2是本发明基于外汇牌价阻塞的预处理方法的优化抛弃策略流程示意图;
图3是本发明基于外汇牌价阻塞的预处理方法的抛弃策略流程示意图;
图4是本发明基于外汇牌价阻塞的全量使用策略流程示意图;
图5是本发明基于外汇牌价阻塞的预处理方法中采用的非公平锁逻辑图;
图6是本发明基于外汇牌价阻塞的预处理方法中采用的公平锁逻辑图;
图7是本发明基于外汇牌价阻塞的预处理方法中的基于锁的CAS原理示意图;
图8是本发明基于外汇牌价阻塞的预处理方法的实施例中采用本发明技术方案的外汇牌价展示示意图;
图9是本发明基于外汇牌价阻塞的预处理方法的实施例中数据预处理时模板示意图。
具体实施方式
为了便于本领域技术人员的理解,下面结合附图和具体实施例对本发明创造作进一步描述。
首先,申请人再次说明现有技术中企业端外汇牌价展示系统中典型的问题。其一是发生阻塞时将较早的数据完全抛弃,只保留最新的数据,这样在一些复盘或者关键性决策时会出现缺乏支撑数据,导致提供给客户的决策数据不准确的情况发生。其二是虽然外汇牌价一直在变化,但是真正企业用于决策的还是基于阈值的决策点,如果正好抛弃的是这些决策值时,将会对企业带来一定的损失,并且短时间内无法发现这个问题。其三时采用现有技术中的策略后,对后来可能发生的阻塞没有前瞻性的处理方案,今天勉强度过阻塞阶段,明天阻塞到来时依然没有任何起色,对于阻塞问题没有任何改良的可能。
主要场景有:在数据过多企业端系统无法及时处理造成阻塞的情况下,尽量只取最新数据用于系统;在数据过多阻塞的情况下,以接收的顺序重新设置报价时间的情况下,找出具有参考价值的数据并有序使用选择出来的数据。
以下将以具体实施例进行具体说明:
如图1所示,为刚构建好的连接到银行的外汇牌价的展示系统的业务全流程示意图,包括连接到银行的外汇牌价的展示系统,所述展示系统通过环形无锁并发框架接收数据并进行数据预处理。外部数据有序进入到展示系统中,展示系统采用disruptor框架进行接收。Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题。disruptor优势在于读写分离,支持多生产者多消费者模式。disruptor中在环形缓存区(ringbuffer)中存储数据,且它的环形队列长度2^n,通过位运算,加快定位的速度。在环形缓存区中需要索引(index)标记读写位置。并且由于索引(index)是long类型,即使100万QPS的处理速度,也需要30万年才能用完,完全不必担心索引溢出的问题,确保了接收数据的可靠性。同时在disruptor中采取加锁的方式,默认线程会冲突,访问数据时,先加上锁再访问,访问之后再解锁。通过锁界定一个临界区,同时只有一个线程进入。
如图9所示,进行数据预处理。为方便理解数据预处理过程,将数据预处理相关参数解释如下:
serial_id即内部标识ID,这是每个数据在系统中获取的唯一序号。序号共有19位,由包含年月日的日期+11位有序数字组成。例如2022年8月30日发出的第一个序号就标记为:2022083000000000001。相同数据该值不变,这样可以剔除由于阻塞而收到的重复数据。
channel_code为渠道编码,用于标记数据来源。一个渠道代表一个来源,通过渠道可以准确判断数据来自哪里。避免别有用心者利用阻塞的机会发送错误数据。
scale 为汇率单位,可以理解为汇率换算单位。通俗的说就是以什么单位来换算价格,和RMB中的元、角同理。例如基数为100,汇率200,货币对为美元对日元USD/JPY,金额100USD。 那么换算成JPY金额= 100(USD金额)*200(汇率)/100(基数)=200JPY
tenor 为期限。期限是间隔周期。报价日期+期限=到期日(当前报价的真实买卖日期)。用户希望哪天成交价格,银行就会以期限和交易日期来标记交割日期。所述期限为约定值,读取该数据时将会校验是否是约定值中的一种。
通常可以选择 spot(2天内)、1w(1周)、2w(2周)
对于远期交易,必须填写该值,而对于即期交易则默认填写spot。
bid_price为买入价,买入询价货币的汇率。
ask_price 卖出价 解释:卖出询价货币的汇率。
mid_price 中间价 解释:买入价+卖出价/2,一般用于统计。
以上所述买入价、卖出价以及中间价的实际数值都需要进行格式化:取币种对中的即期精度进行格式化。如USD/CNY 即期精度为6 说明该值取小数点后6位,则记为6.765693。
maturity_data 抓取时间即默认收到数据时间.
quote_data 报价时间即对应系统发出该数据的时间,通常就是指银行发出数据的时间。
expire_data 失效时间即此报价价格失效时间,获取数据后其在系统中等待数列中存在的最长时间。超过失效时间则此数据无效。
以上三个时间均格式化为:YYYY-MM-DD HH:MM:SS 。
在预处理过程中将数据名称转换为展示系统内部标识id;预处理后的数据至少包括报价时间、数据抓取时间和数据失效时间,此外还通过渠道编码以及期限格式进行数据合规性校验,对汇率进行精度格式化,配置内部设置等。 每个接收到的数据在预处理完之后立即进行一次判断,确定是否能进行抢占锁。如果前面锁正好释放,则进行抢占锁。抢锁成功时比较数据序号大小,序号大于展示系统中当前最新数据时则放入系统缓存中,并以异步或同步的方式放入展示系统最新表中;小于则再判断采用的处理策略;当抢锁失败时该数据进入等待队列,等待锁释放再重复上述抢锁过程;进入等待队列的数据根据预处理结果以及等待队列的长度设计不同处理策略。处理策略包括:抛弃策略;优化抛弃策略和全量使用策略。抛弃策略通常仅仅在系统满负荷作业达到极限时应用。此时的极限值是根据银行和本地的硬件配置对比所估算出来的。其中全量使用策略只有数据未发生阻塞时才能选择,当采用全量使用策略时将不抛弃数据。在等待队列的数据在成功抢占锁前被判定需要进行抛弃时,需要验证阈值,如果超过设定阈值则停止本次抛弃动作并将该数据再次排到等待队列最前列。等待队列中的数据存在时间超过数据失效时间后,自动进行抛弃,此时的抛弃无需验证阈值。
实施例1:本实施例中采用的是优化抛弃策略,如图2所示,所述优化抛弃策略为:当进入阻塞队列的经过预处理的数据序号大于当前最大序号,则作为最大值数据放入等待队列头部;如果小于则计算汇率波动率,如果计算所得波动率超过预设的阈值则将数据有序放入队列。
波动率计算公式为
Vo=(r2-r1)*100%/r1
公式说明:Vo:计算的波动率,r2:当前汇率,r1:相连汇率或历史平均汇率。
预设的波动率阈值以历史波动率做参考,超过历史波动率则算波动较大
Figure 613703DEST_PATH_IMAGE001
Figure 35107DEST_PATH_IMAGE006
这里,N是观察值的数量,σ代表对数收益的平均离差,即标准差。
历史波动率过程中采用百分比价格变动法获得汇率的百分比收益值:
Figure 824423DEST_PATH_IMAGE003
式中,X i 是汇率的百分比收益,P i 是基期资产的价格,
Figure 899346DEST_PATH_IMAGE004
是报告期资产的价格, 基期通常为前一日日期;报告期通常为当日日期。
历史波动率过程中采用对数价格变动法获得汇率的百分比收益值:
Figure 797550DEST_PATH_IMAGE005
式中,X i 是资产的对数收益,P i 是基期资产的价格,
Figure 881699DEST_PATH_IMAGE007
是今天报告期资产的价格; 基期通常为前一日日期;报告期通常为当日日期。这个过程中对于抛弃的数据在抛弃前需 要验证阈值,如果超过设定阈值则停止本次抛弃动作并将该数据再次排到等待队列最前 列。阈值设置根据公司根据具体业务能接受的最大范围或最小范围来确定;或参考第三方 阈值设置,例如从系统服务商提供的解决方案中或者相关企业的经验数据中获取。
如图8所示,为外汇牌价展示示意图,为了方便理解,图中的时间点为整点表示。在正常应用过程中时间点应当精确到秒。在该实施例中,原本2022年9月29日16:00中的数据为其它数据,而表格中的7.206的数值应当被抛弃。但是经过阈值的计算发现该值的波动率已经超过阈值,所以该数值被重新捡回,并且最终抢到锁予以展示。最终展示的外汇牌价形成表格,同时存在数据库和缓存中,并且支持外部服务订阅传输数据,从而可以配合其它金融软件使用。
通过优化抛弃策略,在现有常见的以及对比文件中所述抛弃策略下,数据是随机丢弃,但是汇率前后数据能够反应汇率的波动率,汇率价格影响外汇交易成交成本、从预测未来汇率的角度,丢弃波动较大的数据也会影响预测准确性及辅助决策,所以汇率前后波动较大的情况更有参考价值且能够让决策者及时分析市场和风险。因此该方式优化了抛弃策略不是随机抛弃而是选择性抛弃一定的无意义数据,既能体现汇率波动也能提升性能。
实施例2:如图3所示,在系统负荷达到极限时采用抛弃策略。在预处理过的数据进入阻塞队列后,采用CAS方式比较展示系统中最新数据和当前进入的数据,最新数据的序号大则抛弃当前进入的数据且不需要再抢锁。此策略只会有一个数据在等待抢锁。并且可以把抢锁规则设置为非公平锁。如图5所示CAS是一种基于锁的操作。整个过程包括抢占非公平锁,然后判断当前锁是否被当前线程占有,如果是的话说明抢锁成功,进行逻辑处理,即展示对应的外汇牌价,然后释放锁并进行通知;如果否则和等待队列的第一位同时抢锁抢到锁者进入逻辑处理,即展示对应的外汇牌价,否则进入等待队列。CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。若内存地址里面的值和A的值是一样的,就将内存里面的值更新成B。如图7所示,CAS是通过无限循环来获取数据的,一旦检测到冲突产生,就重试当前操作直到没有冲突。若在第一轮循环中,a线程获取地址里面的值被b线程修改了,那么a线程自旋,直到某一次循环时地址里的值没有被修改。CAS是乐观锁,且一直自旋等待锁,所以性能很高,优于现有技术,但是对应的完整性最差。同样的这个过程中对于抛弃的数据在抛弃前需要验证阈值,避免核心数据丢失。最终展示的外汇牌价形成表格,同时存在数据库和缓存中,并且支持外部服务订阅传输数据,从而可以配合其它金融软件使用。
实施例3:如图4所示,在等待队列为空时,可以执行全量使用策略
在全量使用策略下,经过预处理的数据之间采用CAS方式比较和排序,有序进入阻塞队列,然后按照队列中的顺序进行消费。具体来说,在全量使用策略下,采用的是公平锁,抢锁规则是有序的,根据阻塞队列的排序进行消费。如图6所示,在抢占公平锁后,判断当前锁是否占用了当前线程,并且等待队列中无数据;如果是,则说明抢占成功,将当前数据进行逻辑处理,即展示对应的外汇牌价,然后释放锁并进行通知;如果否则进入有序等待队列,在有序等待队列中的数据无需再次进行抢锁,第一位等待者直接拿到锁进行逻辑处理。这样的策略主要用于阻塞刚开始发生时,此时已经收到的数据大多处理完毕但是发生过多阻塞后的数据无法接收,需要以接收的顺序重新设置报价时间的情况。通过该策略可以有序地处理每一条数据。使用该策略的性能最差,但是数据完整性最好。最终展示的外汇牌价形成表格,同时存在数据库和缓存中,并且支持外部服务订阅传输数据,从而可以配合其它金融软件使用。
实施例4:
此外,为了在不升级硬件的条件下不断提高展示系统的处理能力,在处理过程中所有被抛弃的数据均进入抛弃池,所述抛弃池数据清理的方法为:获取抛弃池中每个数据在等待队列中的生存时间,根据在等待队列中生存时间进行排序,并标记其中存在时间超过数据失效时间的数据,获取这些数据的获取时间,找到获取时间相邻的多个数据,找到最大相邻数据个数,计算并保存其相对汇率波动率;当系统下一次采用抛弃策略时,在获取数据时对相邻获取时间的数据进行比较,两者之间的汇率波动率小于相对汇率波动率时直接抛弃后一个数据,采用该方法抛弃的数据数量不大于最大相邻数据个数。
根据对抛弃池中数据进行不断优化后训练出符合应用单位使用需求的模型后,则可以在预处理阶段对数据进行进一步优化。例如根据历史记录发现通常早上9:50-10:15这段时间内本地硬件配置使用开始近乎进入极限。那么在这段时间前就需要在接收数据时进行根据数据的抓取时间前端数据处理更新,在收到数据后进首先进行唯一校验,剔除其中错误信息,例如由于网络阻塞导致重复发出或者重复收取的数据。然后判断采用抛弃策略时,在获取数据时对相邻抓取时间的数据进行比较,两者之间的汇率波动率小于相对汇率波动率时直接抛弃后一个数据,采用该方法抛弃的数据数量不大于最大相邻数据个数。而如果采用的是优化抛弃策略时,对于抓取时间在一个阶段中,并且汇率波动率低于一定阈值的数据组成数据集合。例如抓取时间在1分钟内,汇率波动小于1%的数据,可以作为一个数据集合单元,单独进行处理。并对其赋予数据唯一序号,校验渠道编码然后对获取其属性信息;同样也需要标注该数据的报价时间、获取时间以及失效时间。这样即使数据集合单位无法第一时间内抢到锁,依然能有效减少等待队列中的数据数量,达到了减少负荷的效果。一旦该数据集合单位抢到锁,在展示系统中最终展示的是最接近数据集合单位中所有数据平均值的单个数据,并且对应展示的是基于该单个数据的相关进入时间等参数。但是在展示系统中进行操作,例如点击该数据后会展示整个数据集合单位中所有数据的信息。这样兼顾了数据的特殊性和完整性。最终展示的外汇牌价形成表格,同时存在数据库和缓存中,并且支持外部服务订阅传输数据,从而可以配合其它金融软件使用。
综上所述,本发明遵循的原则为:对于整个业务而言,获取数据后业务处理慢 ,但是排序处理快。本发明有别于现有技术中尝试的利用软硬件上的技术提升提高数据业务处理的思路,转为调整阻塞后数据排序的问题。本发明基于业务承担的负荷以及队列中数据余量,在不同时间节点自动调整不同的策略,对外汇牌价展示进行优化。除此以外还利用抛弃池中的数据,建立高负荷时的数据优化模型,从而减少阻塞的发生,同时也避免重要的数据丢失,为服务相应企业提供了相应的价值。
虽然本发明以较佳实施例揭露如上,但并非用以限定本发明实施的范围。任何本领域的普通技术人员,在不脱离本发明的发明范围内,当可作些许的改进,即凡是依照本发明所做的同等改进,应为本发明的范围所涵盖。在本说明书的描述中,参考术语“一个实施例/方式”、“一些实施例/方式”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例/方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例/方式或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例/方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例/方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例/方式或示例以及不同实施例/方式或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
本领域的技术人员应当理解,上述实施方式仅仅是为了清楚地说明本公开,而并非是对本公开的范围进行限定。对于所属领域的技术人员而言,在上述公开的基础上还可以做出其它变化或变型,并且这些变化或变型仍处于本公开的范围内。

Claims (10)

1.一种基于外汇牌价阻塞的预处理方法,包括连接到银行的外汇牌价的展示系统,其特征在于,所述展示系统通过环形无锁并发框架接收数据并进行数据预处理,在预处理过程中将数据名称转换为展示系统内部标识id;预处理后的数据至少包括报价时间、数据抓取时间和数据失效时间, 每个接收到的数据在预处理完之后立即进行一次判断,观察锁是否释放,如果前一个锁已经释放,立即进行抢占锁,抢锁成功时,比较数据序号大小,当序号大于展示系统中当前最新数据时则放入系统缓存中,并以异步或同步的方式放入展示系统最新表中;当序号小于展示系统中当前最新数据时则再判断采用的处理策略;当抢锁失败时,当前数据进入等待队列,等待锁释放再重复上述抢锁过程;进入等待队列的数据根据预处理结果以及等待队列的长度设计不同处理策略,当等待队列的数据在成功抢占锁前被判定需要进行抛弃时,需要验证阈值,如果超过设定阈值则停止本次抛弃动作并将当前数据再次排到等待队列最前列;当等待队列中的数据存在时间超过数据失效时间后,自动进行抛弃,此时的抛弃无需验证阈值。
2.根据权利要求1所述的一种基于外汇牌价阻塞的预处理方法,其特征在于,所述预处理的具体方法还包括:展示系统在收到数据后,首先进行唯一校验,剔除其中错误信息后形成数据集合,并对其赋予数据唯一序号,校验渠道编码,然后获取所述数据的属性信息;最后标注所述数据集合的报价时间、获取时间以及失效时间。
3.根据权利要求1所述的一种基于外汇牌价阻塞的预处理方法,其特征在于,所述处理策略包括:抛弃策略、优化抛弃策略和全量使用策略,其中采用抛弃策略时选用非公平锁;全量使用策略只有数据未发生阻塞时才能选择,当采用全量使用策略时选用公平锁,且不抛弃数据。
4.根据权利要求3所述的一种基于外汇牌价阻塞的预处理方法,其特征在于,采用抛弃策略时,在预处理过的数据进入阻塞队列后,采用CAS方式比较展示系统中最新数据和当前进入的数据,最新数据的序号大则抛弃当前进入的数据且不需要再抢锁。
5.根据权利要求3所述的一种基于外汇牌价阻塞的预处理方法,其特征在于,所述优化抛弃策略为:当进入阻塞队列的经过预处理的数据序号大于当前最大序号,则作为最大值数据放入等待队列头部;如果小于则计算汇率波动率,如果计算所得波动率超过预设的阈值则将数据有序放入队列,波动率计算公式为:
Vo=(r2-r1)*100%/r1
公式说明:Vo:计算的波动率,r2:当前汇率,r1相连汇率或历史平均汇率。
6.根据权利要求5所述的一种基于外汇牌价阻塞的预处理方法,其特征在于,预设的波动率阈值以历史波动率做参考,超过历史波动率则算波动较大
Figure 732610DEST_PATH_IMAGE001
Figure 596661DEST_PATH_IMAGE002
这里,N是观察值的数量,σ代表对数收益的平均离差,即标准差。
7.根据权利要求5所述的一种基于外汇牌价阻塞的预处理方法,其特征在于,历史波动率过程中采用百分比价格变动法获得汇率的百分比收益值:
Figure 614295DEST_PATH_IMAGE003
式中,X i是汇率的百分比收益,P i是基期资产的价格,
Figure 702337DEST_PATH_IMAGE005
是报告期资产的价格,基期通常为前一日日期;报告期通常为当日日期。
8.根据权利要求5所述的一种基于外汇牌价阻塞的预处理方法,其特征在于,历史波动率过程中采用对数价格变动法获得汇率的百分比收益值:
Figure DEST_PATH_IMAGE006
式中,X i是资产的对数收益,P i是基期资产的价格,
Figure 641474DEST_PATH_IMAGE005
是今天报告期资产的价格;基期通常为前一日日期;报告期通常为当日日期。
9.根据权利要求1所述的一种基于外汇牌价阻塞的预处理方法,其特征在于,阈值设置根据公司具体业务能接受的最大范围或最小范围来确定;或参考第三方阈值设置。
10.根据权利要求1所述的一种基于外汇牌价阻塞的预处理方法,其特征在于,在处理过程中所有被抛弃的数据均进入抛弃池,所述抛弃池数据清理的方法为:获取抛弃池中每个数据在等待队列中的生存时间,根据在等待队列中的生存时间长短进行排序,生存时间长的数据放在前面,并标记其中存在时间,获取这些数据的获取时间,找到获取时间相邻的多个数据,找到最大相邻数据个数,计算并保存其相对汇率波动率;当系统下一次采用抛弃策略时,在获取数据时对相邻获取时间的数据进行比较,两者之间的汇率波动率小于相对汇率波动率时 ,则直接抛弃后一个数据,采用该方法抛弃的数据数量不大于最大相邻数据个数。
CN202211574458.9A 2022-12-09 2022-12-09 一种基于外汇牌价阻塞的预处理方法 Active CN115578099B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211574458.9A CN115578099B (zh) 2022-12-09 2022-12-09 一种基于外汇牌价阻塞的预处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211574458.9A CN115578099B (zh) 2022-12-09 2022-12-09 一种基于外汇牌价阻塞的预处理方法

Publications (2)

Publication Number Publication Date
CN115578099A true CN115578099A (zh) 2023-01-06
CN115578099B CN115578099B (zh) 2023-04-18

Family

ID=84590098

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211574458.9A Active CN115578099B (zh) 2022-12-09 2022-12-09 一种基于外汇牌价阻塞的预处理方法

Country Status (1)

Country Link
CN (1) CN115578099B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010056398A1 (en) * 2000-04-14 2001-12-27 E-Vantage International, Inc. Method and system for delivering foreign exchange risk management advisory solutions to a designated market
CN101310298A (zh) * 2005-04-01 2008-11-19 利菲行政管理公司 电子期货交易所的交易和结算增强
US20140180893A1 (en) * 2012-12-21 2014-06-26 Curex Innovations Llc Methods and Systems For Generating A Mid-Point Periodic Mark Pool Tradeable Index
CN103970597A (zh) * 2014-04-24 2014-08-06 烽火通信科技股份有限公司 读写均衡的阻塞队列实现方法及装置
CN104915886A (zh) * 2015-01-04 2015-09-16 杭州时代银通软件有限公司 一种外汇牌价处理系统及方法
US20190005582A1 (en) * 2017-06-29 2019-01-03 Chicago Mercantile Exchange Inc. Optimization processor for electronic data multiple transaction request messages
WO2019147295A1 (en) * 2018-01-29 2019-08-01 Ubiquicorp Limited Proof of majority block consensus method for generating and uploading a block to a blockchain
CN112667409A (zh) * 2020-11-25 2021-04-16 紫光云技术有限公司 一种可重入的分布式排它锁实现方法
CN114461308A (zh) * 2022-01-12 2022-05-10 广东泓胜科技股份有限公司 一种减少网络api重复请求并发的方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010056398A1 (en) * 2000-04-14 2001-12-27 E-Vantage International, Inc. Method and system for delivering foreign exchange risk management advisory solutions to a designated market
CN101310298A (zh) * 2005-04-01 2008-11-19 利菲行政管理公司 电子期货交易所的交易和结算增强
US20140180893A1 (en) * 2012-12-21 2014-06-26 Curex Innovations Llc Methods and Systems For Generating A Mid-Point Periodic Mark Pool Tradeable Index
CN103970597A (zh) * 2014-04-24 2014-08-06 烽火通信科技股份有限公司 读写均衡的阻塞队列实现方法及装置
CN104915886A (zh) * 2015-01-04 2015-09-16 杭州时代银通软件有限公司 一种外汇牌价处理系统及方法
US20190005582A1 (en) * 2017-06-29 2019-01-03 Chicago Mercantile Exchange Inc. Optimization processor for electronic data multiple transaction request messages
WO2019147295A1 (en) * 2018-01-29 2019-08-01 Ubiquicorp Limited Proof of majority block consensus method for generating and uploading a block to a blockchain
CN112667409A (zh) * 2020-11-25 2021-04-16 紫光云技术有限公司 一种可重入的分布式排它锁实现方法
CN114461308A (zh) * 2022-01-12 2022-05-10 广东泓胜科技股份有限公司 一种减少网络api重复请求并发的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄庐进等: "人民币汇率中间价长期记忆性研究", 《科学技术与工程》 *

Also Published As

Publication number Publication date
CN115578099B (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
US11012396B2 (en) Mitigation of latency disparity in a data transaction processing system
US20220284513A1 (en) Optimization processor for electronic data multiple transaction request messages
US20240013299A1 (en) Event triggered trading
US8595096B2 (en) Prioritizing checks for electronic check processing
US11995718B2 (en) Multi-path routing system including an integrity mechanism
US11601386B2 (en) Streaming platform reader
US11258682B2 (en) Compressed message tracing and parsing
US11126480B2 (en) Conservation of electronic communications resources and computing resources via selective processing of substantially continuously updated data
US11695854B2 (en) Optimization of encoding cycles for object recovery feed
US20220207013A1 (en) Optimized data structure
US11675639B2 (en) Distributed threaded streaming platform reader
US11556988B2 (en) Secure deterministic tokens for electronic messages
US20220261901A1 (en) Methods and Systems for Bettering Market Making at Low Latency
CN115578099B (zh) 一种基于外汇牌价阻塞的预处理方法
US11140094B2 (en) Resource stabilization in a distributed network
US8606687B2 (en) Modification of multi-laterally traded contracts based on currency unavailability condition
US20180322573A1 (en) Systems and methods for implemeting a meta-queue for transactions

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