- 撮合交易系统现状
- 撮合交易系统现状
撮合交易是指卖方在交易市场委托销售订单、买方在交易市场委托购买订单,交易市场按照一定的原则(可以是价格优先或时间优先等)确定双方成交的价格并生成电子交易合同,并按照交易订单指定的交割仓库进行实物交割的交易方式。
撮合价格的计算是建立在买入价格PB必须大于或等于卖出价格PS的基础上的:
- 当PB等于PS时,成交价格即按照PB (PS)制定
- 当PB大于等于PS时,若前一笔成交价PP小于PS则按照PS定价,若PP大于PB则按照PB定价
主流金融交易撮合系统
美国道富 Currenex
Currenex交易平台在订单撮合以及流动性狙击方面釆用了创新的专利技术,可以帮助用户将可以从多达六十多家银行的流动性聚集到先进的电子订单管理系统中。Currenex系统的特点如下:
- 撮合引擎平均速度低于850微秒
- 采用低延时的先入先出优先顺序的订单撮合
- 健壮的订单管理功能安全性高
香港交易所Genium INET
Genium INET系统的特点如下:
- 交易能力明显提升
- 改进了清算过程减少了运行时间
- 支持通过中心网关的订单处理超低延时架构
- 最大程度向上兼容
- 支持很多新功能(如量身定做的订单组合等)
- 告诉消息总线提供低延时订单交易
- 降低了会员方的硬件成本
ICAP 公司 EBS Spot Ai
ICAP公司的EBS Spot AiP6]是可以提供客户交易系统与市场之间的直接两路接口的自动化交易工具,它使用了支持釆用XML或FIX协议在服务提供商(ICAP)以及服务使用方(EBS Spot Ai客户)之间双向消息交换接口。EBS Spot Ai主要用于数学模型、套利模型、风险管理模型与流执行价格等场景。釆用EBS Spot Ai的好处主要有:
- 高效自动的全时区全币种全天候自动化交易
- 最大化的交易机会
- 消除机构在无人工干预情况下的风险
- 为全局市场带来流动性增长
伦敦 Liffe Connect
由伦敦国际金融期货期权交易所(Liffe)设计和开发的Liffe Connect交易系统是一个兼具高速执行和高度灵活的电子交易系统。Liffe Connect的主要特性为:
- 对大容量的复杂品种交易的支持度高
- 对多种交易规则都有支持
- 对多种价格算法都有支持
- 可发布实时市场行情信息
- 开放式架构以及前后端一体化接口
- 使用自动行情系统,可以用工业标准模式为选择的合约产生最新指导价
- 支持对订单流的人工动态干预
- 可扩展性好,易于实现系统升级
金融交易撮合系统的技术发展
电子金融交易中的撮合交易,主要釆用撮合引擎来提供交易场地,通过买卖双方生成相应买卖订单,提交至撮合引擎,由撮合引擎执行撮合算法实现订单的撮合,并将生成订单提交至清算系统进行清算与交割。
由对国内外金融撮合系统的发展趋势可以看出,电子金融交易发展至今,撮合技术主要是从数据库撮合技术向内存撮合技术发展,这是因为数据库撮合技术越来越无法满足金融交易对于高可靠性、高性能、强安全性、可扩展性以及易维护性的需求。
基于数据库的撮合方式
在电子交易系统发展初期,撮合处理一般都在数据库中进行,这样做的好处是数据库非常易于理解与实现。当交易方下单后,撮合系统从数据库中读取交易方的资金及持仓信息,然后再从数据库中査找可以与之匹配的另一买卖方订单,并判断成交数量并生成交易记录直到当前订单全部撮合完毕或不能继续成交。
这种撮合技术的优势就是数据一致性高,但是缺点就是可靠性差、处理速度慢并且无法满足当今日益增长的大量用户请求。
基于内存的撮合方式
基于内存的撮合方式是指在撮合过程中,交易系统所涉及到的所有数据都存储在撮合引擎的内存中,并且交易过程中减少数据库访问,撮合结果与中间数据也完全存储在内存中,而且可以降低系统的输入输出过程。基于内存撮合可以大大提高撮合速度。
对比分析
核心技术
逻辑时钟
在分布式系统中设置全局唯一的时钟,事件同步就可以很方便的解决,因为根据全局唯一的时钟可以方便的判断分布式系统中事件的先后顺序,从而帮助子系统确定一致的事件顺序,为解决这一问题逻辑时钟应运而生。所谓逻辑时钟,是指能为本地启动的所有活动,赋予一个编号的机制,类似于用一个计数器给所有进程编号。在系统中,每一个事件都拥有自己的逻辑时钟C。如果一个事件Ai先于Bj发生,那么相应的逻辑时钟C(i,A)<C(J,B),其中i,j是A,B所在的物理进程。为了满足上述条件,必须遵循以下规则:
- 根据事件发生的先后,赋予每个事件唯一的逻辑时钟值。
- 若事件A是进程i发送的一条消息m,消息m中应包含一个时间邮戳T(m)=C(i,A),当接收进程j在收到消息m时,如果其逻辑时钟CG,B)<C(i,A),则应当重置CG,B)使其大于或等于C(i,A)。
逻辑时钟一般作为消息中间件层存在于分布式系统中,用于给消息确定逻辑时间截
远程过程调用RPC
RPC和C/S编程模式类似,在建立RPC服务以后,客户端的调用参数通过底层的RPC传输通道,可以是UDP,并根据传输前所提供的目的地址及RPC上层应用程序号转至相应的服务器端,且此时的客户端处于等待状态,直至收到应答或超时信号。当服务器端收到请求消息,则会根据注册RPC时告诉RPC系统的例程入口地址,执行相应的操作,并将结果返回至客户端。
可靠多播
在进程失败的情况下的原子多播的可靠多播特性就能保证消息要么就被发送给所有的进程,要么就不向任何进程发送此外还可以保证所有的消息都按相同的顺序发送给所有的进程。在撮合引擎集群采用多机热备份的状态机复制模型之后,系统需要采用可靠的多播来使撮合引擎集群可以可靠接收消息。新的订单总是采用原子多播的形式向所有副本进行多播,然后在本地执行。多播的情况下消息排序通常有以下四种排序方法:
- 无排序
- 先入先出排序
- 因果关系排序
- 完全排序
事件队列管理(虚拟同步模型)
运行在网络中的程序以进程组的形式管理自己,并且可以向进程组发送消息,而不是向特定的进程发送消息。每个消息都会被以完全相同的顺序递交给进程组的成员,即使两个消息时同时被不同发送方发送的也可以保证这样的特性。
虚拟同步模型具有代表性的有:
1) 康奈尔大学的Isis,Horus,Ensemble系统
2) 耶路撒冷希伯来大学的Transis系统
3) 约翰霍普金斯大学的Spread系统
4) Corosync公司的Corosync系统
现有系统的问题
当前作为交易中心的主力撮合系统的数据库撮合技术主要存在的问题有:
- 交易速度低(约为10笔/秒)
- 系统延时大(约为100毫秒/笔)
- 系统容错性较差
撮合系统设计目标
1) 系统具有高容错能力
2) 高速订单撮合算法
3) 低延时实时撮合
4) 快速故障检测