外汇做市商报价引擎
文献发布时间:2023-06-19 11:49:09
技术领域
本发明涉及金融信息技术,尤其是涉及一种外汇做市商报价引擎。
背景技术
外汇交易平台分主要分为两种:有处理平台模式(Dealing Desk,简称DD)和无处理平台模式(No Dealing Desk,简称NDD)。有处理平台模式(DD)的外汇交易平台又叫做市商(Market Maker,简称MM)。
做市商,顾名思义,就是为客户“做市”,“制造市场”。在一定条件下,交易者想买进的时候,做市商卖出给该交易者,当交易者想卖出的时候,做市商将其买入,也就是说,在需要的时候,做市商会始终处在交易者反方的位置,与交易者的头寸相反,通过这种方式来“做市”。做市商一般通过点差来盈利,并在需要的时候与客户持相反的方向交易。
在做市商的交易平台中,报价引擎(或报价引擎系统)是其中的核心。客户通过业务子系统或第三方银行间交易平台向报价引擎系统发起报价请求,报价引擎系统从国际市场实时接入一家或多家报价源(支持手工和系统两种方式),然后利用系统自身的处理机制或报价策略来处理牌价,再把综合报价发布给客户,客户依此价格进行交易。
然而,报价引擎通常需要从多个不同数据平台接入市场数据,这些市场数据又有不同的分类方法,例如:中国外汇交易中心CMDS存在三种市场类型:匿名、双边和撮合,三种行情类型:最优报价、成交价以及档位行情;路透数据源则可按市场类型区分,例如路透报价和上海货币报价;而每个单一银行平台则只有一类数据,不需细分。因此,无法预期、列举出所有市场数据源的可能分类方法,以提前设计系统。一旦系统支持的现有数据平台增加新的分类,或增加新的数据源,所有涉及数据源使用的地方,均需要根据数据源特性修改及测试验证。
此外,不同做市商的计算方法、采用的数据源、发布到的目标市场等场景各异,必须严格按照用户的业务场景进行设计和实现,导致系统灵活度很低,需求调整经常意味着代码修改及软件版本升级。随着支持的客户数量越来越多,为满足不同客户需求,代码逻辑的分支及开关越来越复杂。
因此,希望设计一种能够实现报价引擎系统的高度可配置化及横向扩展性的新的报价引擎系统架构。
发明内容
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步的描述一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明旨在解决现有技术中报价引擎架构灵活度低、开发难度大等问题,提供一种新的高可配置化和扩展性的报价引擎系统架构。
根据本发明的一个反面,提供了一种外汇做市商报价引擎系统,其中系统包括:
数据源接口,用于接收来自一个或多个外汇市场数据源的报价信息,并将所述报价信息转换成统一的数据格式;
业务工具层,所述业务工具层包括一个或多个业务工具模块,其中每一个业务工具模块被配置用于实现一种特定的外汇业务;以及
渠道接口层,所述渠道接口层包括一个或多个渠道接口,其中每一个渠道接口用于与一个相关联的报价渠道对接。
根据本发明的进一步实施例,将所述报价信息转换成统一的数据格式进一步包括:
使用数据源ID来唯一地标识报价信息的数据源及行情类型的组合。
根据本发明的进一步实施例,所述数据源接口包括配置文件,所述配置文件中包括维护所述数据源ID与所述数据源及行情类型的组合的对应关系的列表。
根据本发明的进一步实施例,业务工具模块被配置用于实现一种特定的外汇业务进一步包括所述业务工具模块被配置成:
分析由数据源接口提供的经统一转换格式的报价信息,根据所述业务工具模块的业务处理逻辑,生成一套或多套报价;以及
将生成的报价发送给相关联的一个或多个渠道接口。
根据本发明的进一步实施例,所述业务工具模块能够通过配置文件来配置,所述配置文件中包括指定所述业务工具模块生成的报价要发布到的渠道的列表。
根据本发明的进一步实施例,所述系统进一步包括:
行内系统接口,用于与所述外汇做市商的内部系统对接,并被配置用于:
将来自所述内部系统的信息提供给所述一个或多个业务工具模块;
将所述一个或多个业务工具模块生成的数据提供给所述内部系统;以及
与所述内部系统联合完成交互流程。
根据本发明的进一步实施例,所述系统进一步包括:
外部数据策略系统接口,用于与外部数据策略系统对接,并将来自所述外部数据策略系统的数据或策略提供给所述一个或多个业务工具模块。
根据本发明的进一步实施例,所述外部数据策略系统是大数据/量化系统。
根据本发明的另一方面,提供了一种用于外汇做市商报价引擎系统的数据转换方法,方法包括:
从一个或多个外汇市场数据源接收报价信息;
识别所接收的报价信息的行情类型;
基于所述报价信息的数据源以及行情类型的组合确定对应的数据源ID;以及
将所确定的数据源ID与所述报价信息绑定来唯一地标识所述报价信息。
根据本发明的进一步实施例,所述方法进一步包括:
修改维护所述数据源ID与所述数据源及行情类型的组合的对应关系的列表来支持新增的数据源或行情类型。
与现有技术中的方案相比,本发明所提供的报价引擎至少具有以下优点:
1、数据结构设计合理,能够通过统一的ID来标识各种数据源/平台的不同行情类型数据;
2、架构设计合理,物理进程与业务功能紧密结合;以及
3、数据源接口模块、业务工具模块、渠道接口都支持灵活配置及扩展。
通过阅读下面的详细描述并参考相关联的附图,这些及其他特点和优点将变得显而易见。应该理解,前面的概括说明和下面的详细描述只是说明性的,不会对所要求保护的各方面形成限制。
附图说明
为了能详细地理解本发明的上述特征所用的方式,可以参照各实施例来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中示出。然而应该注意,附图仅示出了本发明的某些典型方面,故不应被认为限定其范围,因为该描述可以允许有其它等同有效的方面。
图1是根据本发明的一个实施例的做市商报价引擎的示例架构图。
图2a-2c描绘了三种可能的报价方案的示例。
图3是根据本发明的一个实施例的用于外汇做市商报价引擎系统的数据转换方法的示例流程图。
具体实施方式
下面结合附图详细描述本发明,本发明的特点将在以下的具体描述中得到进一步的显现。
针对做市商开发的报价引擎需要满足各做市商自身的计算方法、采用的数据源、发布到的目标市场等场景实现要求,又要兼容不同市场数据源的不同分类方法,此外还需要允许对将来新增的数据源或其他需求调整进行灵活调整和扩展。为此,本发明提供了一种高度可配置化及横向可扩展性的报价引擎。
图1是根据本发明的一个实施例的做市商报价引擎的示例架构图。如图1中所示,报价引擎100包括客户端接入前置102、数据源接口104、业务工具层106、以及渠道接口层108。作为一个非限制性示例,报价引擎100可以是申请人“上海中汇亿达金融信息技术有限公司”的“ComStar外汇报价引擎”。
客户端接入前置102用于连接提供给用户(即做市商)的客户端,将客户端发送的消息经过处理后发送给业务工具层,并将业务工具层返回的消息发送回客户端。
数据源接口104(例如第三方平台API网关)用于连接到外部的各数据源以及平台以接收这些数据源和平台的报价。为便于描述,以下将数据源和平台统称为“数据源”。如之前提到的,不同数据源有不同的数据类型,以下给出其中的一些示例:
(1)中国外汇交易中心CMDS数据源
(2)路透数据源
(3)单银行平台数据源
针对这数据源多类型的数据,数据源接口104对接入的市场数据源标准化处理,其中使用“数据源ID”作为系统引用数据源的唯一ID,并忽略掉与价格计算等无关的信息。此后,报价引擎系统中的所有模块使用该数据源ID来唯一地识别数据源及数据源的特性,换言之,统一数据源的不同行情类型可被赋予不同的数据源ID以示区分。作为一个非限制性示例,前述数据源经标准化后可被转换为:
数据源接口104在接收了来自各数据源的报价后,针对每一条报价的来源及类型选择相应的数据源ID,将该数据源ID与报价绑定后发送给业务工具层106,后者在接收到报价数据后,通过数据源ID就可以立即知晓该报价的数据源以及类型。
数据源接口104能够通过配置文件来配置,该配置文件中包含维护数据源ID与数据源及行情类型的组合的对应关系的列表。当数据源或行情类型发生变化,例如出现新的数据源或者新的行情类型时,可通过编辑该配置文件来方便地修改数据源接口104以支持新的数据源或行情类型。
业务工具层106可包括一个或多个业务工具模块,每一个业务工具模块可用于执行一项特定的业务。例如,如图1中例示的,业务工具模块可包括CSWAP业务工具、FXO业务工具、FXLC业务工具、FXLP业务工具等等。CSWAP业务工具用于实现中国外汇交易中心CFETS的CSWAP业务(外汇撮合掉期业务),因此该CSWAP业务工具在分析和处理了从数据源接口104接收到的市场报价数据后,给出针对CSWAP业务的报价,并发布到CFETS的CSWAP业务渠道。类似地,FXO业务工具可用于实现CFETS的FXO(外汇期权)业务,FXLC业务工具和FXLP业务工具则可用于实现外汇的LC(流动性消费)和LP(流动性提供)业务,其中FXLC业务工具的功能是收外部报价,允许交易员对外下订单,FXLP业务工具的功能是向外部发报价,并接收外面的交易请求,方向与LC刚好相反。在一个示例中,每一个业务工具模块可通过相应的配置文件来进行配置和扩展,例如配置文件中可包括指定所述业务工具模块生成的报价要发布到的渠道的列表,当需要修改一个业务工具模块对应的渠道和新增一个业务工具模块时,都可以通过该列表来灵活地定制或扩展相关的渠道。
更具体地,配置或定制业务工具,指的是按照业务的特性及用户的管理维度,封装出通过配置支持重复使用、横向扩展的业务模块,实现业务的灵活配置。在配置时,可从用户或者管理员使用的角度,定义以下内容:
·需要使用的业务工具是什么类型的业务工具,需要有几个业务工具;配置每个业务工具涵盖的交易标的(比如货币对)有哪些,及每个交易标的的业务参数,如使用到的数据源,报价计算的算法等;
·每个业务工具生成的价格,也发布数据源允许给另外的业务工具调用;
·用户在管理报价时,通过识别业务工具的名称,可以知道在管理哪套报价,采取不同的报价策略;
·在系统部署实施时,将业务工具名称配置到物理进程的配置文件中,实现不同进程负责哪些业务工具的处理。
渠道接口层108可包括一个或多个渠道接口(也称“网关”),用于分别与一个特定渠道进行对接。例如,渠道接口层108可包括CEFTS CSWAP网关,用于连接到CFETS的CSWAP交易平台/服务器。类似地,渠道接口层108还可包括CFETS FXO网关、CFETS LC网关、CFETS LP网关、CFETS CMDS(CFETS市场数据服务)网关、CFETS CSTP(CFETS Straight ThroughProcess)网关等等。通过每一个渠道接口,可将各业务工具模块生成的消息发送给各个渠道,同时从各个渠道接收返回的消息,随即再转发回相应的业务工具模块。例如,CFETSCMDS网关可用于获取外部市场行情,CFETS CSTP网关可用于获取外部成交数据。
图2a-2c描绘了三种可能的报价方案的示例。在图2a-2c中,假设共有3个不同的数据源(数据源A、数据源B以及数据源C),同时还有5个不同的渠道,其中有三个渠道是ESP(Executive Streaming Price,可执行持续报价)类型的,有一个渠道是RFS(Request forStream,流动性询价)类型的,另一个渠道是Indicative(综合报价)类型的。
在图2a的示例中,该做市商的报价方案是针对三个同样是ESP类型的渠道,提供同样的ESP类型报价,并且针对RFS和Indicative类型的渠道,提供同样的报价。因此,可设置一个针对ESP业务的业务工具模块A(FXESP)。业务工具模块A可同时接收来自数据源A-C的数据,通过分析和处理,生成统一的用于ESP业务的报价,并分别经由各自的渠道接口发送给三个ESP渠道。同时,可设置业务工具模块B(FXIND),接收和分析处理来自数据源A-C的数据,生成报价,并分别发布到RFS和Indicative渠道。
在图2b的示例中,该做市商的报价方案是将针对ESP渠道的报价发送给ESP渠道,同时将这一报价经过处理后再发布到RFS渠道和Indicative渠道。因此,对应于这一报价方案,可设置一个针对ESP业务的业务工具模块A(FXESP)。业务工具模块A可同时接收来自数据源A-C的数据,通过分析和处理,生成统一的用于ESP业务的报价,并分别经由各自的渠道接口发送给三个ESP渠道。同时,可设置针对RFS和Indicative渠道的业务工具模块B(FXIND)。与图2a中不同的是,图2b中的业务工具模块B不直接从数据源获取数据,而仅仅从业务工具模块A获取用于ESP业务的报价,经过处理以后生成针对RFS和Indicative渠道的报价并发布到相应渠道。
在图2c的示例中,该做市商的报价方案十分简单,针对各个渠道直接使用统一的报价。因此,在该架构中,仅设置了一个业务工具模块A(FXALL),其同时接收来自数据源A-C的数据,通过分析和处理,生成统一的报价,并分别经由各自的渠道接口发送给所有的五个渠道。
回到图1中,在图1的示例架构中也部分体现了业务工具模块针对不同渠道的可定制和扩展性。例如,在其中,FXLC业务工具模块可分别经由CFETS LC网关与CFETS FX2017平台对接,以及经由CFETS CSTP网关与CFETS CSTP平台对接。此外,针对CFETS FX2017平台和CFETS CMDS平台这两个不同渠道,虽然都涉及流动性提供LP,但由于两者涉及的业务模式存在差异,因此分别设计了两个独立的FXLP业务工具模块与其对接。
与业务工具类似,渠道接口也可通过配置文件来配置。具体来说,配置渠道接口指的是将报价引擎对外发布报价的渠道标准化处理,只保留使用业务工具生成的报价必须的功能,并将渠道个性化的要求在接口网关中完成。配置渠道接口的设计要点主要包括:
·渠道的技术属性,包括接口连接类型、行情及订单的连接目标地址;
·渠道的业务属性,开闭市时间、支持的交易标的(货币对)、订阅价格类型(初始档位清单、TOP价格、RFQ价格等)、期限、最小交易金额等。
可选地,报价引擎100还可包括行内系统接口110,或行内系统API网关。目前中国经认证的外汇做市商通常为银行,每家银行有各自的银行内部管理系统,这些内部系统需要与报价引擎进行对接。例如,行内系统可包括资金的中台/后台汇总、风控管理等子系统/模块。来自行内系统的数据、指令、策略等各种信息通过行内系统接口110转发给各个业务工具模块,同时各业务工具模块生成的数据通过行内系统接口110提供给所述内部系统。此外,行内系统接口110还可被配置用于与所述内部系统联合完成诸如授信检查之类的交互流程。
可选地,报价引擎100还可包括外部数据策略接口112。作为一个非限制性示例,外部数据策略接口112可以是量化系统接口,用于连接外部的大数据/量化系统,例如申请人“上海中汇亿达金融信息技术有限公司”的“ComStar大数据/量化系统”。来自大数据/量化系统的数据或策略可通过量化系统接口112转发给相关的业务工具模块,同时也可通过量化系统接口112接收来自数据源的数据。
本领域技术人员应当理解,以上具体列举和描述的具体的业务工具模块、渠道接口以及对应的渠道都仅仅是示例,本发明的报价引擎架构可以适用于各种报价方案,并且通过这种架构可以容易地根据各报价方案中涉及的具体的实现过程来进行定制,或者根据数据源的变化、业务类型的变化、或具体业务实施方案的调整来进行修改,因而本发明的报价引擎架构具有高度的灵活性和可扩展性。
图3是根据本发明的一个实施例的用于外汇做市商报价引擎系统的数据转换方法300的示例流程图。如图3中所示,方法300开始于步骤302,从一个或多个外汇市场数据源接收报价信息。如之前所描述的,外汇市场数据源可包括诸如CMDS数据源、路透数据源、单一银行数据源等各类外汇行情数据源。
在步骤304,识别所接收的报价信息的行情类型。每一个数据源提供的报价信息中一般带有指示该报价的行情类型的元数据,通过读取元数据可以识别出接收到的报价信息的行情类型。
在步骤306,基于报价信息的数据源以及行情类型的组合确定对应的数据源ID。如之前所描述的,可使用“数据源ID”作为系统引用数据源的唯一ID,该数据源ID可唯一地标识数据源及数据源的特性(即行情类型),从而将不同来源、不同类型的行情数据予以统一转换。数据源ID和数据源和行情类型的组合的对应关系的列表可被存储在配置文件中,通过查询该列表可确定相应的数据源ID。此外,通过修改该列表,也可以容易地扩展支持的数据源或行情类型。
最后,在步骤308,将所确定的数据源ID与所述报价信息绑定来唯一地标识所述报价信息。绑定后的报价信息可被提供给报价引擎中的各个业务工具模块,并始终被用于唯一地标识该报价信息。
以上所已经描述的内容包括所要求保护主题的各方面的示例。当然,出于描绘所要求保护主题的目的而描述每一个可以想到的组件或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,所要求保护主题的许多进一步的组合和排列都是可能的。从而,所公开的主题旨在涵盖落入所附权利要求书的精神和范围内的所有这样的变更、修改和变化。
- 外汇做市商报价引擎
- 做市商成交模式的交易系统及方法