1.本技术属于市场交易仿真模拟技术领域,尤其涉及一种自动模拟撮合交易 系统的配置化方法及装置。
背景技术:2.随着经济全球化的不断深入,对交易服务的稳定性和实时性要求越来越高, 也需要撮合交易平台来提供更强大的业务服务。目前,通过交易所提供的模拟 交易系统有很多的局限性,针对不同的业务,需要对模拟交易系统进行进一步 的开发测试,使得业务测试的沟通成本不断上升、交易时间也容易受到限制, 无法满足市场交易机构的需求。现有的模拟交易系统可拓展性较差,难以适应 种类繁多的交易业务。
技术实现要素:3.本技术实施例提供了一种自动模拟撮合交易系统的配置化方法及装置,可 以用于解决现有的模拟交易系统可拓展性差,开发难度大的问题。
4.第一方面,本技术实施例提供了一种自动模拟撮合交易系统的配置化方法, 包括:一种自动模拟撮合交易系统的配置化方法,其特征在于,所述方法包括 以下步骤:
5.接收输入消息;
6.根据所述输入消息确定模拟撮合交易的业务场景,并从业务配置文件组中 读取所述业务场景对应的业务配置文件;
7.根据所述业务配置文件生成消息流程;
8.执行所述消息流程,使所述输入消息根据所述业务场景对应的输出消息实 例化模板生成输出消息。
9.进一步的,所述业务配置文件组包括单个消息配置文件、消息匹配规则配 置文件、业务场景消息流程配置文件、业务场景匹配规则配置文件、业务场景 输出消息实例化配置文件,其中,
10.所述单个消息配置文件用于预定义消息格式;
11.所述消息匹配规则配置文件用于预先确定输入消息的接口规范;
12.所述业务场景消息流程配置文件用于预配置业务场景的整个消息流程;
13.所述业务场景匹配规则配置文件用于预先确定输入消息所属场景;
14.所述业务场景输出消息实例化配置文件用于预先生成业务场景输出消息的 数据实例化模板。
15.进一步的,所述单个消息配置文件按照交易所接口文档定义消息格式。
16.进一步的,所述消息匹配规则配置文件通过msgtype和applid确定请求 消息。
17.进一步的,所述业务场景消息流程配置文件配置的场景中包含一个输入消 息和若干输出消息。
18.进一步的,所述业务场景输出消息实例化配置文件的每个实例化模板对应 一个
场景。
19.进一步的,所述方法还包括以下步骤:
20.在接收所述输入消息之前,通过报盘模块生成输入消息;
21.进一步的,在从业务配置文件组中读取所述业务场景对应的业务配置文件 之前,所述方法还包括以下步骤:
22.根据交易业务类型,生成业务配置文件;
23.将所述业务配置文件添加至所述业务配置文件组中。
24.进一步的,在生成所述输出消息之后,所述方法还包括以下步骤:
25.根据所述输出消息,对模拟的撮合交易业务进行结算。
26.在第一方面的一种可能的实现方式中,可以支持包括交易所行情模拟撮合 服务、中登模拟撮合服务、银行模拟撮合服务在内的多种模拟撮合服务,通过 db、dbf、fix、xml、binary数据协议,与其对应的报盘系统进行数据交 互,接收输入信息。
27.应理解,本技术的第一方面的有益之处在于:系统提供多业务的配置化消 息撮合交易,可以动态的加载配置来实现全业务的消息处理和消息应答,新增 业务只需要增加相应的业务信息配置即可实现新业务的消息流程处理。极大降 低了平台和业务的耦合性,新增业务无需进行二次开发,只需增加相关业务的 配置文件即可实现新业务交易,大大的提高了开发测试效率、人工操作效率, 降低了业务开发成本。
28.第二方面,本技术实施例提供了一种自动模拟撮合交易系统的配置化装置, 包括:
29.接收单元,用于接收输入消息;
30.读取单元,根据所述输入消息确定所需模拟撮合交易的业务场景,并读取 对应的业务配置文件;
31.流程生成单元,根据所述业务配置文件生成消息流程;
32.消息输出模块,用于执行所述消息流程,使所述输出消息根据所述业务场 景对应的输出消息实例化模板生成输出消息。
33.进一步的,所述一种自动模拟撮合交易系统的配置化装置,还包括预配置 单元,所述预配置单元用于:
34.预定义消息格式;
35.预先确定输入消息的接口规范;
36.预配置业务场景的整个消息流程;
37.预先确定输入消息所属场景;
38.预先生成业务场景输出消息的数据实例化模板。
39.进一步的,所述配置化装置分别与报盘模块和结算模块连接,所述报盘模 块用于向所述配置化装置发送输入消息;所述结算模块用于根据所述配置化装 置生成的输出消息结算模拟的撮合交易业务。
40.第三方面,本技术实施例提供了一种计算机设备,包括存储器、处理器及 存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器 执行所述计算机程序时实现上述第一方面中任一项所述的任一所述方法。
41.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可 读存储
介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一 方面中任一项所述的任一所述方法。
42.可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方 面中的相关描述,在此不再赘述。
附图说明
43.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技 术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅 仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳 动的前提下,还可以根据这些附图获得其他的附图。
44.图1是本技术一实施例提供的一种自动模拟撮合交易系统的配置化方法流 程示意图;
45.图2是本技术一实施例提供的一种自动模拟撮合交易系统的配置化方法对 交易消息配置化处理的流程示意图;
46.图3是本技术一实施例提供的一种自动模拟撮合交易系统的配置化方法的 所适用的自动模拟撮合交易系统软件架构示意图;
47.图4是本技术一实施例提供的自动模拟撮合交易系统的行情模拟交易撮合 处理流程示意图;
48.图5是本技术一实施例提供的自动模拟撮合交易系统进行撮合交易的流程 示意图;
49.图6是上交所市价委托规则示意图;
50.图7是深交所市价委托规则示意图。
具体实施方式
51.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术 之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当 清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中, 省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节 妨碍本技术的描述。
52.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括
”ꢀ
指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个 或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
53.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是 指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这 些组合。
54.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着 在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特 点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一 些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必 然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除 非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的 变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
55.在常见的股市交易中,撮合交易是最为常见的一种交易方式,其中深交所 和上交所的撮合交易遵循以下规则,如图6和图7所示。
56.实施例1
57.图1示出的是与本技术实施例提供的一种自动模拟撮合交易系统的配置化 方法的流程示意图。参考图1,本技术所提供的方法包括以下步骤:
58.s1、接收输入消息。
59.应当理解的是,输入消息的来源可以是多个业务平台,针对不同业务平台 的输入消息,首先对输入消息进行预处理,使其转化为预设的可读格式。可读 格式应当严格按照交易所接口文档为准,以上海大宗交易为例,一个输入消息 中会存在多个相同数据字段,需要对其做区分,区分原则为字段name=基础名 称+数字,基础名称定义在配置文件中。
60.s2、根据输入消息确定模拟撮合交易的业务场景,并从业务配置文件组中 读取业务场景对应的业务配置文件。
61.可选地,业务配置文件组可以包括单个消息配置文件、消息匹配规则配置 文件、业务场景消息流程配置文件、业务场景匹配规则配置文件、业务场景输 出消息实例化配置文件。这里为示例性地列举,可以理解,在实际实现时,业 务配置文件还可以是其他满足实际使用需求的文件,本技术实施例对此不作限 定。
62.其中,上述单个消息配置文件用于预定义消息格式,将上述步骤s1中的输 入消息格式化,这样对于不同业务平台发送的输入消息都能够更好的识别。
63.上述消息匹配规则配置文件用于预先确定输入消息的接口规范;通过 msgtype和applid来确定输入消息的类型。
64.上述业务场景消息流程配置文件用于预配置业务场景的整个消息流程;每 一个业务都会对应一个业务场景,通过对业务场景消息流程的预配置,可以在 确定输入消息所执行的业务时,直接按照消息流程进行执行,以便获取输出消 息。
65.上述业务场景匹配规则配置文件用于预先确定输入消息所属场景,根据输 入消息的类型,与对应的业务场景进行匹配,识别输入消息所需执行的业务。
66.上述业务场景输出消息实例化配置文件用于预先生成业务场景输出消息的 数据实例化模板;将输出消息按照所对应的业务输出消息模板进行输出。
67.s3、根据业务配置文件生成消息流程。
68.s4、执行消息流程,使输入消息根据业务场景对应的输出消息实例化模 板生成输出消息。
69.示例地,在本实施例中,上述配置文件可以分为5组(其中xxx代表可变 字段),每个业务都可以通过配置化来实现,新增业务时只需要增加对应业务的 配置文件即可实现业务的交互,无需再进行二次开发,配置文件具体设置如下:
70.1.interface_xxx.xml:定义消息格式,必须严格按照交易所接口文档为准。
71.2.shoot_interface.xml:确定请求消息的接口规范,统一通过msgtype和 applid来确定请求消息。
72.3.scene.xml:所有场景配置,一个场景包含一个输入消息和n个输出消息,n 可为0~max。
73.4.rule.xml:所有场景匹配规则配置,用来确定请求输入消息所属场景。
74.5.build_scene_xxx.xml:场景输出消息的数据实例化模板,生成输出消息, 一个场景对应一个实例化配置。
75.实施例2
76.下面结合图2和具体实施例,对本技术所提供的一种自动模拟撮合交易系 统的配置化方法进行具体的介绍:
77.在国内市场中,包括深市和沪市,常见的自动模拟撮合交易系统需要能够 同时满足这两个市场的交易业务。
78.如图2的左侧,当自动模拟撮合交易系统的深市报盘模块生成输入消息时, 通过网络通信的形式发送输入消息,自动模拟撮合交易系统通过单个消息配置 文件中的protocolprase::sz process()函数调用输入消息。接着,进入通用处理流 程。
79.如图2的右侧,由于沪市报盘模块的区别,对于沪市的输入消息,其生成 方法如下:
80.将报盘委托写入委托表,其中现货交易以ordwth表示,大宗交易以 reqresp表示;
81.定时扫描委托表的委托数据,单个消息配置文件对现货交易增加appid字 段,按对应接口格式组装数据流,对于大宗交易则根据reqid找到对应的 msgtype,并在其前面增加msgtype和applid字段组成fast流,之后再通过 protocolprase::shoiw()函数调用现货交易输入消息, protocolprase::shezstepprocess()函数调用大宗交易输入消息。之后进入通用 处理流程。
82.通用处理流程包括:
83.消息匹配规则配置文件通过输入消息的msgtype和applid确定入参接口, 并解包入参接口的inpack,映射接口的所有field字段。消息匹配规则配置文件 根据入参接口和field字段,对业务场景进行匹配,找到输入消息的对应的业务 场景和业务接口,业务场景消息流程配置文件根据对应的业务场景和业务接口, 生成对应的业务流程返回包。
84.实施例3
85.参阅图3至图5,图3是本技术实施例提供的一种自动模拟撮合系统的软 件架构图。该系统由不同功能的多个模块构成,每个模块既能独立工作也能交 互工作,并且支持功能模块的快速扩展,各模块间耦合性低,易于拆分与整合, 系统的可靠性与拓展性高。
86.自动模拟撮合系统的软件架构包括报盘层和模拟撮合服务层,报盘层包括 多个单独封装的报盘数据包,每个报盘数据包对应不同的报盘服务平台生成输 入消息,并封装有通信协议并设置对应的接口调用函数;模拟撮合服务层包括 仿真网关服务层,通过与报盘层的报盘数据包对应的通信协议接收输入消息。 输入消息被接收后,进入任务队列等待模拟撮合,模拟撮合服务根据服务平台 的不同,包括交易所行情模拟撮合服务、中登行情模拟撮合服务和银行行情模 拟撮合服务,在进行模拟撮合服务时,输入消息通过单个消息配置文件调用后, 再经过消息匹配规则配置文件通过输入消息的msgtype和applid确定入参接 口,消息匹配规则配置文件根据入参接口,对业务场景进行匹配,找到输入消 息的对应的业务场景和业务接口,业务场景消息流程配置文件根据对应的业务 场景和业务接口,生成对应的业务流程返回包。业务流程返回包先放置在缓存 层内,等待对应的服务平台的结算模块进行结算,随后将结算结果发送至结算 系统进行总结算。
87.参见图4和图5,对自动模拟撮合系统的自动模拟撮合服务做进一步说明。
88.其中,图4是通过报盘服务,对沪市和深市行情进行模拟撮合服务。
89.图5则是通过直接下单的方式,请求对沪市和深市行情进行模拟撮合服务。
90.用户无论是通过报盘系统还是直接下单都会生成具体的委托单,经过对委 托单上数据的校验,判断委托单是否有效,将校验通过的委托单放入委托消息 列表中,并接受行情数据进行模拟撮合,在撮合完成后进行结算。
91.示例性的,如图4所示,在接收行情数据进行模拟撮合之前,需要对行情 数据进行校验,同时推送收盘后的行情模拟数据,以便对撮合交易提供进一步 的行情参照
92.示例性的,如图5所示,在对委托单进行校验后,无效的委托单可以退回 重新下单,有效的委托单一方面存入数据中心,另一方面将其放入待处理委托 列表中,按列表顺序次序触发撮合机制,具体的撮合流程保存在业务场景消息 流程配置文件中,在进行模拟撮合的过程中,需要接收实时行情或收盘行情进 行参考。
93.在完成模拟撮合服务后,需要根据撮合规则以及档位数据,验证撮合交易 是否成交,无论是成交、撤单还是废单都需要删除委托数据,并将结果存入数 据中心。
94.针对沪市和深市的撮合交易方法不同,其撮合机制也不同,在市价委托中, 如图6和图7所示,上述委托需要遵循以下方式进行。
95.上交所市价委托方式:
96.1、五档即时成交剩余撤销:即该申报在对手方实时最优五个价位内以对手 方价格为成交价逐次成交,剩余未成交部分自动撤销。
97.2、五档即时成交剩余转限:即该申报在对手方实时五个最优价位内以对手 方价格为成交价逐次成交,剩余未成交部分按本方申报最新成交价转为限价申 报;:如果当时集中申报簿中对手方队列没有有效对手盘(涨停或跌停),那么 交易主机直接对其作撤单处理。
98.深交所市价委托方式:
99.1、对手方最优价格:以申报进入交易主机时集中申报簿中对手方队列的最 优价格作为其申报价格。
100.剩余未成交部分将以限价形式保存在交易主机的本方队列中,其指定价格 为委托已成交部分的成交价,也就是委托申报进入交易主机当时对手方队列的 最优价格。(不会自动撤单,可主动撤单)
101.如果当时对手方队列没有有效对手盘(跌停或涨停),那么交易主机直接 作撤单处理。(自动撤单)
102.2、本方最优价格:以申报进入交易主机时集中申报簿中本方队列的最优价 格作为其申报价格。
103.如果当时集中申报簿本方队列中没有有效申报(涨停或跌停),那么交易 主机对其委托作撤销处理。
104.3、即时成交剩余撤销:以对手方价格作为成交价格,与申报进入交易主机 时集中申报簿中对手方所有申报队列依次成交,未成交部分自动撤销。
105.逐笔配对;
106.此报价方式可以与不同价格的对手方委托撮合成交,直至没有有效对手盘 (即在涨跌幅范围内或在最后一笔成交价为基础的有效竞价范围内交易主机中 的对手方队列中
无委托);
107.若成交后有剩余的委托(包括部分成交、未有成交的情形),那么交易主 机立即对剩余部分作撤单处理。
108.4、五档即时成交剩余撤销:以对手方价格作为成交价格,与申报进入交易 主机时集中申报簿中对手方最优五个价位的申报队列依次成交,未成交部分自 动撤销。
109.5、全额成交或撤销委托:以对手方价格作为成交价格,如与申报进入交易 主机时集中申报簿中对手方所有申报队列依次成交能够使其完全成交的,则依 次成交,否则申报全部自动撤销。
110.无需指定价格,直至“全额成交或撤销委托”全部成交完毕为止;可以与 数笔不同价格的对手方委托撮合,如果其无法一次性全部成交,交易主机对其 作撤单处理。
111.上述自动模拟撮合交易系统支持交易所行情模拟撮合服务、中登模拟撮合 服务、银行模拟撮合服务,支持db、dbf、fix、xml、binary等多种数据 协议交互;并且能够支持配置化的行情撮合服务,根据交易所价格优先、时间 优先的撮合原则进行模拟交易;实现了消息数据的实时落地和动态加载的数据 管理,更安全更高效的管理数据,防止数据丢失及其数据追踪。并可以根据落 地的数据进行模拟结算。
112.以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照 前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其 依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特 征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申 请各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。