当前位置:

match-trade超高效的交易所撮合引擎 v1.0

收藏
举报
match-trade超高效的交易所撮合引擎,采用伦敦外汇交易所LMAX开源的Disruptor框架,分布式内存存取,以及原子性操作。使用数据流的方式进行计算撮合序列,才用价格水平独立撮合逻辑,实现高效大数据撮合。
  • 作者:
    暂无
  • 演示网站:
    暂无
  • 当前版本:
    v1.0
  • 日期:
    2023-03-08
  • 相关链接:
    Home Page
  • 所属分类:
    其他开源 Java
  • 软件评级:
  • 下载人气:
    245
免费下载
求购此源码
源码详情
免费下载
开发环境
联系客服/入群
源码属性
授权 开源
大小 67.26KB
语言 Java
功能介绍

match-trade超高效的交易所撮合引擎,采用伦敦外汇交易所LMAX开源的Disruptor框架,分布式内存存取,以及原子性操作。使用数据流的方式进行计算撮合序列,才用价格水平独立撮合逻辑,实现高效大数据撮合。

PS:这不是一个具备生产上线的项目,仅供学习参考。

 

优势

match-engine水平价格为独立撮合逻辑,相比于订单队列为撮合队列的交易引擎来说,价格区间越小时,性能越优越。

match-engine不再对撮合薄进行排序,而是用并行流计算出最优撮合价格,进行撮合。

match-engine每个价格下的订单都是异步完成被撮合。独立价格下订单不影响下一个新发生的撮合。

match-engine每个价格撮合都是独立的,与下一个价格没的关系,实现快速吃单。

match-engine每个新的订单经历撮合处理器后,后续逻辑采用并行计算,能更快速反馈数据撮合结果。

match-engine使用数据流反应式MQ消费,降低由MQ带来的数据延迟。

match-engine撤单走独立的逻辑,不用和下单在一个处理序列。

 

技术选择

Disruptor: 号称每秒钟承载600万订单级别的无锁并行计算框架,主要选择原因还是并行计算。

Hazelcast: 很好进行内存处理,很强原子性保障的操作能力。同时分布式内存实现很简单,能自动内存集群。据说火币也在用。

Ignite: 内存占用小,速度快,能像做数据库撮合一样,强大的内存索引能力,玩转内存撮合。

rocketmq: 消息可以做到0丢失,支持10亿级别的消息堆积,不会因堆积导致性能下降,主要是经过双11检验

WebFlux: 它能够充分利用多核 CPU 的硬件资源去处理大量的并发请求。

 

描述

用户输入包括:

创建新的委托单(NewOrder):一个新的委托单可以作为交易撮合引擎的输入,引擎会尝试将其与已有的 委托单进行撮合。

取消已有的委托单(CancelOrder):用户也可以取消一个之前输入的委托单,如果它还没有执行的话,即开口订单。

委托单:

限价委托单

限价委托单是在当前的加密货币交易环境中最常用的委托类型。这种委托单允许用户指定一个价格,只有当撮合引擎找到同样价格甚至更好价格的对手单时才执行交易。

市价委托单

市价委托单的撮合会完全忽略价格因素,而致力于有限完成指定数量的成交。市价委托单在交易委托账本中有较高的优先级,在流动性充足的市场中市价单可以保证成交。不充足时,撮合完最后一条撤销。

止损委托单

止损委托单尽在市场价格到达指定价位时才被激活,因此它的执行方式与市价委托单相反。一旦止损委托单激活,它们可以自动转化为市价委托单或限价委托单。(未实现)

 

撮合流程

限价撮合:

市价撮合:

目前就实现这两种订单撮合

代码执行流程图

付费服务
模板/插件
其他
  • IntelliJ IDEA
    版本:v2020.2.2 大小:696 MB 更新时间:2020-09-17
    立即下载
  • Greenfoot
    版本:v3.6.0 大小:236 MB 更新时间:2020-09-14
    立即下载
  • Eclipse集成开发环境
    版本:v2020.06 大小:54.5 MB 更新时间:2020-08-28
    立即下载

联系客服

手机版

扫一扫进入手机版

返回顶部