会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 做市商 / 一种做市商交易回测系统

一种做市商交易回测系统

申请号 CN202210115711.8 申请日 2022-02-07 公开(公告)号 CN114445227A 公开(公告)日 2022-05-06
申请人 上海金融期货信息技术有限公司; 发明人 战俊豪; 张勇; 李思昌; 王天一; 张海荣; 沈俊华; 王康贵;
摘要 本发明公开了做市商交易回测系统,能够为下游交易策略提供尽量贴近于生产环境的回测服务。其技术方案为:系统包括:接收分发模块,接收包括策略报单及实时行情在内的信息,并将信息转发到撮合模块且分发撮合回报和行情生成结果在内的信息给下游模块;行情速率控制模,对历史行情进行发送速率控制;撮合模块,根据策略报单中的报撤单请求和原始行情维护本方订单簿和市场分价表,对市场行情和订单进行撮合,撮合完成后将撮合回报传递给接收分发模块;联动行情生成模块,在撮合后将成交的订单反映到市场上,为下游模块提供一个接近真实市场的行情服务。
权利要求

1.一种做市商交易回测系统,其特征在于,做市商交易回测系统通过接收行情流中的原始行情以生成市场分价表,接收交易流中的策略报撤以生成本方订单簿,做市商交易回测系统包括接收分发模块、行情速率控制模块、撮合模块和联动行情生成模块,四个模块之间通过内存流进行关联,其中:

接收分发模块,接收包括策略报单及实时行情在内的信息,并将信息转发到撮合模块,其中策略报单包括报撤单请求,且分发撮合回报和行情生成结果在内的信息,将撮合回报和行情生成结果分发给下游模块;

行情速率控制模块,对历史行情进行发送速率控制;

撮合模块,根据策略报单中的报撤单请求和原始行情维护本方订单簿和市场分价表,对市场行情和订单进行撮合,撮合完成后将撮合回报传递给接收分发模块;

联动行情生成模块,在撮合后将成交的订单反映到市场上,包括对市场上成交订单所对应的档位的信息进行更改,并将撮合后的本方订单簿和市场分价表进行合并,生成新的联动行情传递给接收分发模块,为下游模块提供一个接近真实市场的行情服务。

2.根据权利要求1所述的做市商交易回测系统,其特征在于,接收分发模块还配置为在做市商交易回测系统启动时根据配置文件选择是否接收实时行情。

3.根据权利要求1所述的做市商交易回测系统,其特征在于,在行情速率控制模块中,历史行情发送速率被控制在历史行情能够原速传递至撮合模块。

4.根据权利要求1所述的做市商交易回测系统,其特征在于,行情速率控制模块针对本地时间戳的顺序和间隔这两个参数进行优化,其中历史行情的文件中包含合约状态、询价以及行情信息,每条行情信息都有一个本地时间戳,按照本地时间戳顺序排列历史行情;以及历史行情具有分批的特点,同一时刻的不同合约为一批,体现在文件中是本地时间戳的间隔短,且市场一天中有休市阶段,体现在文件中则为本地时间戳的间隔长。

5.根据权利要求4所述的做市商交易回测系统,其特征在于,行情速率控制模块进一步配置为:读取相邻两条数据,计算相邻两条数据之间的本地时间戳的间隔,若间隔小于一设定值则判断为同一时刻的不同合约快照数据并直接发送,若间隔大于另一设定值则认为是休市阶段,直接休眠设定时间后跳过。

6.根据权利要求1所述的做市商交易回测系统,其特征在于,撮合模块进一步配置为:撮合模块中的撮合方案是基于五档行情,按照价格优先、时间优先的原则在行情更新和插入订单时进行撮合,并保存行情和返回对应回报,其中撮合的成交价采用对手价,成交量为本方挂单和市场行情挂单量的较小值,撮合模块所维护的本方订单簿包括本方的买订单簿和本方的卖订单簿,其中每个档位的价格插入到订单的顺序是按照时间顺序来排列。

7.根据权利要求6所述的做市商交易回测系统,其特征在于,在行情更新触发撮合时,撮合模块判定当前本方订单簿中是否有订单能够成交,遍历五档市场行情,针对每一档市场价格依次遍历本方订单簿中的订单,并按订单到达时间遍历本方订单簿中的每笔订单,判定成交,维护本方订单簿,并返回对应的撮合结果到接收分发模块。

8.根据权利要求6所述的做市商交易回测系统,其特征在于,在插入订单触发撮合时,撮合模块依次遍历五档行情,根据订单价格和可成交手数,判定订单是否成交,并将未成交订单加入本方订单簿。

9.根据权利要求1所述的做市商交易回测系统,其特征在于,联动行情生成模块通过配置文件配置是否启动生成联动行情。

说明书全文

一种做市商交易回测系统

技术领域

[0001] 本发明涉及金融交易软件,具体涉及一种做市商交易回测系统。

背景技术

[0002] 在金融衍生品的交易中,做市商有时候会采用程序化交易,程序化交易是指投资者将运用数学建模等方法构建交易策略,并利用计算机执行策略,其严格执行固化的策略
来指导投资,以追求高于市场平均收益的超额回报。
[0003] 做市商是指在金融市场上具备一定实力和信誉的证券经营法人,做市商需按照交易所要求,履行做市义务,在合理价格区间进行不断报价,为市场提供流动性,促进市场平
稳运行。
[0004] 回测系统是指通过历史数据或接入实时行情对策略进行仿真,从而达到验证策略执行逻辑正确性以及评价策略运行结果等目的。目前做市商采用程序化交易的市场上,同
类软件都缺少回测系统,在生产并行验证程序化交易系统时,无法接入交易,很难完成系统
的全链路验证。此外,做市商在开发新策略时,需要对策略逻辑进行验证和结果分析,直接
进行实盘,成本过高。

发明内容

[0005] 以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非
试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一
些概念以为稍后给出的更加详细的描述之序。
[0006] 本发明的目的在于解决上述问题,提供了一种做市商交易回测系统,能够为下游交易策略提供尽量贴近于生产环境的回测服务。
[0007] 本发明的技术方案为:本发明揭示了一种做市商交易回测系统,做市商交易回测系统通过接收行情流中的原始行情以生成市场分价表,接收交易流中的策略报撤以生成本
方订单簿,做市商交易回测系统包括接收分发模块、行情速率控制模块、撮合模块和联动行
情生成模块,四个模块之间通过内存流进行关联,其中:
[0008] 接收分发模块,接收包括策略报单及实时行情在内的信息,并将信息转发到撮合模块,其中策略报单包括报撤单请求,且分发撮合回报和行情生成结果在内的信息,将撮合
回报和行情生成结果分发给下游模块;
[0009] 行情速率控制模块,对历史行情进行发送速率控制;
[0010] 撮合模块,根据策略报单中的报撤单请求和原始行情维护本方订单簿和市场分价表,对市场行情和订单进行撮合,撮合完成后将撮合回报传递给接收分发模块;
[0011] 联动行情生成模块,在撮合后将成交的订单反映到市场上,包括对市场上成交订单所对应的档位的信息进行更改,并将撮合后的本方订单簿和市场分价表进行合并,生成
新的联动行情传递给接收分发模块,为下游模块提供一个接近真实市场的行情服务。
[0012] 根据本发明的做市商交易回测系统的一实施例,接收分发模块还配置为在做市商交易回测系统启动时根据配置文件选择是否接收实时行情。
[0013] 根据本发明的做市商交易回测系统的一实施例,在行情速率控制模块中,历史行情发送速率被控制在历史行情能够原速传递至撮合模块。
[0014] 根据本发明的做市商交易回测系统的一实施例,行情速率控制模块针对本地时间戳的顺序和间隔这两个参数进行优化,其中历史行情的文件中包含合约状态、询价以及行
情信息,每条行情信息都有一个本地时间戳,按照本地时间戳顺序排列历史行情;以及历史
行情具有分批的特点,同一时刻的不同合约为一批,体现在文件中是本地时间戳的间隔短,
且市场一天中有休市阶段,体现在文件中则为本地时间戳的间隔长。
[0015] 根据本发明的做市商交易回测系统的一实施例,行情速率控制模块进一步配置为:读取相邻两条数据,计算相邻两条数据之间的本地时间戳的间隔,若间隔小于一设定值
则判断为同一时刻的不同合约快照数据并直接发送,若间隔大于另一设定值则认为是休市
阶段,直接休眠设定时间后跳过。
[0016] 根据本发明的做市商交易回测系统的一实施例,撮合模块进一步配置为:
[0017] 撮合模块中的撮合方案是基于五档行情,按照价格优先、时间优先的原则在行情更新和插入订单时进行撮合,并保存行情和返回对应回报,其中撮合的成交价采用对手价,
成交量为本方挂单和市场行情挂单量的较小值,撮合模块所维护的本方订单簿包括本方的
买订单簿和本方的卖订单簿,其中每个档位的价格插入到订单的顺序是按照时间顺序来排
列。
[0018] 根据本发明的做市商交易回测系统的一实施例,在行情更新触发撮合时,撮合模块判定当前本方订单簿中是否有订单能够成交,遍历五档市场行情,针对每一档市场价格
依次遍历本方订单簿中的订单,并按订单到达时间遍历本方订单簿中的每笔订单,判定成
交,维护本方订单簿,并返回对应的撮合结果到接收分发模块。
[0019] 根据本发明的做市商交易回测系统的一实施例,在插入订单触发撮合时,撮合模块依次遍历五档行情,根据订单价格和可成交手数,判定订单是否成交,并将未成交订单加
入本方订单簿。
[0020] 根据本发明的做市商交易回测系统的一实施例,联动行情生成模块通过配置文件配置是否启动生成联动行情。
[0021] 本发明对比现有技术有如下的有益效果:本发明的系统基于快照行情和策略交易请求进行实时模拟撮合,并支持将撮合结果实时反馈到回放的行情中。
[0022] 具体而言,系统包含以下几个特点:
[0023] 1.本发明的回测系统的灵活性及可扩展性高,行情接入可通过配置文件配置,提供历史行情和实时行情两种接入方式。
[0024] 2.针对做市商频繁报撤场景进行优化,支持将撮合结果实时反馈到市场行情,为下游模块(定价、策略等)提供更接近真实生产的服务。
[0025] 3.针对使用历史数据回放做出优化,自动跳过休市阶段并保证相邻同批行情按顺序发送。
[0026] 4.本发明的回测系统实现了无感知接入,无需对系统原有模块和策略进行修改,克服了使用成本高、难度大的问题。

附图说明

[0027] 在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征
的组件可能具有相同或相近的附图标记。
[0028] 图1示出了本发明的做市商交易回测系统的应用场景的整体示意图。
[0029] 图2示出了本发明的做市商交易回测系统的一实施例的原理图。
[0030] 图3示出了图2所示的系统实施例中的行情速率控制模块的运行流程的示意图。
[0031] 图4示出了图2所示的系统实施例中的撮合模块中的本方订单簿的一个示例的示意图。
[0032] 图5示出了图2所示的系统实施例中的撮合模块中的撮合时机的一个示例的示意图。
[0033] 图6示出了图2所示的系统实施例中的撮合模块由行情更新触发撮合的一个示例的示意图。
[0034] 图7示出了图2所示的系统实施例中的撮合模块由插入订单触发撮合的一个示例的示意图。
[0035] 图8示出了图2所示的系统实施例中的联动行情生成模块的运行流程的一个示例的示意图。

具体实施方式

[0036] 以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。
[0037] 做市商交易系统通常包括:行情接收模块、交易模块、策略模块、定价模块。
[0038] 行情接收模块用于接收行情,并将接收到的行情信息转发到策略模块和定价模块。
[0039] 交易模块用于接收策略模块的发起的订单请求,通过柜台发起订单对应的报单请求,并接收柜台对请求进行处理后的订单状态变化等信息。
[0040] 定价模块通过接收行情接收模块发来的行情信息,计算期货、期权等衍生品价值,为策略模块的下单价格提供参考。
[0041] 策略模块接收来自行情接收模块的行情信息、来自交易模块的订单状态变化等信息,驱动交易策略的执行,并向交易模块发起订单请求。
[0042] 在上述的做市商交易系统的基础上增加本发明的做市商交易回测系统,做市商交易回测系统通过接收上述的行情接收模块和上述的策略模块的订单请求,通过既定规则判
断所请求的订单能否成交,并返回订单成交的结果。
[0043] 具体而言,如图1所示,做市商交易回测系统通过接收行情流中的原始行情以生成市场分价表,接收交易流中的策略报撤以生成本方订单簿。其中行情流支持实时行情和历
史行情,历史行情需要对历史文件按照一定格式进行归档,并通过行情速率控制模块控制
回放速度,实时行情为通过柜台等途径接收到的行情数据。
[0044] 再由行情和订单触发市场分价表和本方订单簿的撮合,产生撮合回报,并将撮合汇报的结果实时反馈到市场行情中,其中撮合是指按照预设的规则判定订单能否发生成
交。其中,市场分价表为根据市场五档行情生成价格和数量的对应关系表,本方订单簿为根
据本方报撤单生成,包含价格、价格对应的订单等信息。
[0045] 撮合输出的行情支持原始行情和联动行情,联动行情为本方订单簿和市场分价表之和,用于反映本方订单对市场的影响。
[0046] 如图2所示,本实施例的做市商交易回测系统包括:接收分发模块、行情速率控制模块、撮合模块和联动行情生成模块,上述四个模块之间通过内存流进行关联。
[0047] 历史数据通过行情速率控制模块写入内存流中,策略报单信息和实时行情信息通过接收分发模块写入内存流中,撮合模块从内存流中获取到实时行情信息和策略报单信
息,进行撮合并返回撮合结果,联动行情生成模块从内存流中获取撮合结果和实时行情信
息并生成新的联动行情。
[0048] 具体而言,上述四个模块实现的功能详述如下。
[0049] 接收分发模块用于接收包括策略报单(包括报撤单请求)及实时行情在内的信息,并将信息转发到撮合模块。在做市商交易回测系统启动时,接收分发模块根据配置文件选
择是否接收实时行情。
[0050] 此外,接收分发模块还包括分发撮合回报和行情生成结果在内的信息,将撮合回报和行情生成结果分发给下游模块(比如策略模块或者定价模块等)。
[0051] 如图3所示,行情速率控制模块配置为:对历史行情进行发送速率控制,使得历史行情能够原速传递到撮合模块。历史行情的文件中包含合约状态、询价以及行情信息,其中
每条行情信息都有一个本地时间戳,按照本地时间戳顺序排列历史行情。此外,由于历史行
情具有分批的特点,同一时刻的不同合约为一批,体现在文件中是本地时间戳的间隔较短,
且市场一天中有休市阶段,体现在文件中则为本地时间戳的间隔较长,行情速率控制模块
针对此两点进行优化。
[0052] 具体的行情速率控制的流程如下:读取相邻两条数据,计算相邻两条数据之间的本地时间戳的间隔,若间隔小于设定值(例如10ms)则判断为同一时刻的不同合约快照数据
并直接发送,若间隔大于设定值(例如1min)则认为是休市阶段,直接休眠1min后跳过。在本
实施例中,快照行情为每隔固定时间将当前市场实时行情进行快照,快照行情是一个时间
戳面上的统计数据。
[0053] 撮合模块用于根据策略报单中的报撤单请求和原始行情维护本方订单簿和市场分价表,对市场行情和订单进行撮合,撮合完成后将撮合回报传递给接收分发模块。
[0054] 撮合模块所维护的本方订单簿包括本方的买订单簿和本方的卖订单簿,其中每个档位的价格插入到订单的顺序是按照时间顺序来排列,如图4所示,订单(order)1、订单2等
的数字代表插入订单的先后顺序,插入订单的价格(price)1、价格2、价格3按照从大到小顺
序排列。
[0055] 撮合模块中的撮合方案是基于五档行情,按照价格优先、时间优先的原则在行情更新和插入订单时进行撮合,并保存行情和返回对应回报。撮合的成交价采用对手价,成交
量为本方挂单和市场行情挂单量的较小值。
[0056] 如图5所示,并结合图6,在行情更新触发撮合时,撮合模块判定当前本方订单簿中是否有订单能够成交,遍历五档市场行情,针对每一档市场价格依次遍历本方订单簿中的
订单,并按订单到达时间遍历本方订单簿中的每笔订单,判定成交,维护本方订单簿,并返
回对应的撮合结果到接收分发模块。
[0057] 如图7所示,在插入订单触发撮合时,撮合模块依次遍历五档行情,根据订单价格和可成交手数,判定订单是否成交,并将未成交订单加入本方订单簿。
[0058] 无论是行情更新还是插入订单触发,其撮合过程中的判定订单成交的原则是相同的,以下是一个示例说明,示例中以一档为例:
[0059] 针对买单:
[0060] (1)卖一价大于等于买单,卖一量大于等于买单价,完全成交;
[0061] (2)卖一价大于等于买单,卖一量小于买单量,部分成交;
[0062] 针对卖单:
[0063] (1)买一价大于等于卖单,买一量大于等于卖单价,完全成交;
[0064] (2)买一价大于等于卖单,买一量小于卖单量,部分成交。
[0065] 联动行情生成模块通过配置文件配置是否启动生成联动行情,若启动则在撮合后将成交的订单反映到市场上,即对市场上成交订单所对应的档位的信息进行更改,并将撮
合后的本方订单簿和市场分价表进行合并,生成新的联动行情传递给接收分发模块,为下
游模块(策略模块、定价模块等)提供一个更接近真实市场的行情服务。
[0066] 如图8所示,联动行情生成模块生成联动行情的流程如下。在撮合完成后,将本方成交的1386、5手的订单反映到市场分价表中,此时市场分价表中的1386档位的数量从10手
变为了5手,将本方订单簿和市场分价表进行合并,并将合并后的订单簿提供给下游模块
(策略模块、定价模块等)。
[0067] 尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生
和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他
动作并发地发生。
[0068] 本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清
楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以
其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和
施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的
功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
[0069] 结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编
程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的
任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任
何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例
如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其
他此类配置。
[0070] 结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存
储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD‑ROM、或本领域中所知的任
何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储
介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可
驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组
件驻留在用户终端中。
[0071] 在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代
码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信
介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被
计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、
EEPROM、CD‑ROM或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令
或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地
称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线
(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传
送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线
技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟
(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现
数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质
的范围内。
[0072] 提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普
适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限
定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一
致的最广范围。