撮合引擎【yetdone】

几大难点

1 高可用无状态

2 高性能多线程

3 买盘驱动如何优化为两端驱动

 

https://baijiahao.baidu.com/s?id=1833444841036243857&wfr=spider&for=pc&searchword=%E8%AE%A2%E5%8D%95%E7%B0%BF%20%E6%92%AE%E5%90%88%E5%BC%95%E6%93%8E%20c++

交易撮合引擎:选用 C++ 或 Golang 开发高性能交易撮合引擎,这两种语言在性能优化方面表现卓越。交易撮合引擎需支持高并发、低延迟交易,借鉴传统金融市场的订单簿管理与优先级队列算法,按照 “价格优先、时间优先” 原则,快速准确地匹配买卖订单,确保交易的高效执行。

交易匹配引擎:作为交易模块的核心,交易匹配引擎采用内存撮合技术,将买卖订单存储在内存中的订单簿中。按照 “价格优先、时间优先” 原则,快速匹配订单。当有新订单进入系统时,交易匹配引擎迅速在订单簿中查找匹配的对手方订单。不对吧。若找到匹配订单,则进行成交处理,更新用户账户余额与交易记录;若未找到匹配订单,则将新订单加入订单簿等待后续匹配。

 

 

https://cloud.tencent.com/developer/article/1541274

https://zhuanlan.zhihu.com/p/695600953

https://maimai.cn/article/detail?fid=1876958661&efid=DbZZ0jSWAWH-R5HrIpsF0w

  • 纳秒级撮合:基于Rust开发红黑树订单簿,支持10万+ TPS并发处理,延迟<1毫秒
  • 混合路由机制:中心化订单簿(CLOB)与AMM流动性池并行,长尾资产交易成本降低90%;

 

https://zhuanlan.zhihu.com/p/32393081486

交易系统与互联网公司的一般业务不太一样,其对技术的深度要求比较高,尤其是C++、操作系统原理和网络编程知识,不需要大而全面的技术栈,例如我对网络编程相对比较熟悉,就是那几年做交易系统磨炼出来的技能;另外一块就是要对业务熟悉程度有一点的要求,例如各大证券公司、交易所招人,要求有证券从业资格证的应聘者。一旦你有幸加入一家做交易系统的公司,基本上可以做一辈子,是技术人一个不错的方向。

使用 C++20 从零构建一个完整的低延迟交易系统
https://wx.zsxq.com/group/228588158211?group_id=228588158211&coupon_code=xtlbr2nu&inviter_id=88221511188582&inviter_sid=w1e35makd1&keyword=boTpM&type=group
https://mp.weixin.qq.com/s/9QXKRVDiNPHBs2XFzP_Dnw
https://cppguide.cn/
 
 
 
 
https://zhuanlan.zhihu.com/p/1903077919665950735

image

 

 

https://blog.csdn.net/2501_91377248/article/details/149277302

数据结构选择

跳表(Skip List):支持O(log n)时间复杂度的插入、删除和查询,某交易所通过跳表实现订单簿,使单线程处理能力达10万TPS。

平衡二叉搜索树(BST):如Java的TreeMap,某DEX采用BST实现订单簿,支持动态价格调整,但需注意树平衡带来的性能开销。

内存数据库:Redis的Sorted Set可天然模拟订单簿,某高频交易平台通过Redis实现订单簿,延迟降低至50微秒。
合规设计:从“反洗钱”到“数据隐私”

 

https://blog.csdn.net/2303_79953471/article/details/149400231

 

 
 
while(true) 
  拿买一价-卖一价
  部分成交则重新投递,取原时间戳
  永远取红黑树最顶上的,本次成交中,若有报价更高的订单出现,则余下的在下一个循环则排在它后面
 

posted on 2025-08-24 15:00  silyvin  阅读(22)  评论(0)    收藏  举报