当前位置: 首页 > news >正文

【数据结构】闲谈A股实时交易的数据结构-队列

今天有点忙,特意早起,要不先写点什么。看到个股的红红绿绿, 突然兴起,要不写篇文章分析下A股交易的简易版数据结构。

图片

在A股实时股票交易系统中,按照个人理解,大致会用队列来完成整个交易。队列(Queue)是一种重要的数据结构,用于管理和处理买单和卖单。队列是一种先进先出(FIFO, First-In-First-Out)的结构,确保了最早进入系统的订单会最先被处理。在交易系统中,分别维护买单队列和卖单队列有助于模拟市场的撮合机制。

买单队列(Bid Queue)

买单队列存储所有未成交的买单。每一笔买单包括股票代码、买入价格、买入数量等信息。这些买单根据价格以及时间优先级排序,一般实行价格优先(更高的出价优先匹配),时间优先(同一价格下,先提交的订单优先匹配)的原则。

卖单队列(Ask Queue)

卖单队列存储所有未成交的卖单。每一笔卖单也包括股票代码、卖出价格、卖出数量等信息。卖单队列的排序规则与买单队列相同,通常实行价格优先(更低的出价优先匹配),时间优先(同一价格下,先提交的订单优先匹配)的原则。

订单撮合

撮合过程是交易系统中的核心功能,买单队列和卖单队列将按照特定的规则进行匹配,以完成交易。以下是撮合过程的一般步骤:

  1. 提交订单:
    交易者提交买单或卖单到交易系统中。

  2. 订单排队:
    新提交的买单会加入到买单队列中,卖单加入到卖单队列中,根据价格和时间排序。

  3. 查找匹配订单:
    将买单队列中出价最高的订单与卖单队列中要价最低的订单进行比较。如果买单的出价大于等于卖单的要价,则可以进行交易。

  4. 成交处理:
    如果找到匹配订单,则根据双方的订单数量进行交易:

    • 如果买单数量等于卖单数量,两个订单都完全成交。

    • 如果买单数量大于卖单数量,买单部分成交,余额保留在买单队列中,等待后续卖单继续成交。

    • 如果卖单数量大于买单数量,卖单部分成交,余额保留在卖单队列中,等待新的买单匹配。

  5. 更新队列:
    成交后,已经完全或部分成交的订单从相应的队列中移除或更新。

  6. 记录成交:
    成交的订单信息会被记录到系统中,用于生成成交报告,更新股票价格等。

其它

撤销委托, 在数据列表里查找到想要撤销的委托记录,从数据结构中移除。

如个股属于注册制,需遵循注册制2%价格笼子。比较买入申报价格 是否比 实时价格高2%, 直接标记该笔买单为废单,不放入买单队列。  比较卖出申报价格 是否比实时价格 低2%, 直接标记该笔卖单为废单,不放入卖单队列。

实际A股交易系统当然没这么简单啦。这里随笔记录一篇。

原文链接: 【数据结构】闲谈A股实时交易的数据结构-队列

http://www.lryc.cn/news/343056.html

相关文章:

  • 深入探索van Emde Boas树:原理、操作与C语言实现
  • 正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-14-主频和时钟配置
  • tomcat打开乱码修改端口
  • 03 JavaSE-- 访问控制权限、接口、抽象类、内部类、Object类、异常
  • free5gc+ueransim操作
  • 麦肯锡精英高效阅读法笔记
  • 高速、简单、安全的以太彩光,锐捷网络发布极简以太全光 3.X 方案
  • 图书管理系统
  • 图解HTTP(2、简单的 HTTP 协议)
  • 小鹅知识付费系统登录,网课怎么推广与宣传?有啥获客方法?
  • 韩顺平0基础学Java——第5天
  • 单片机为什么能直接烧录程序?
  • 【Linux】25. 网络基础(一)
  • 项目经理【人】任务
  • Linux学习(嵌入式硬件知识)
  • 英语学习笔记4——Is this your ...?
  • Hive Bucketed Tables 分桶表
  • 【拆位法 决策包容性 位运算】2871. 将数组分割成最多数目的子数组
  • Java 线程池 ( Thread Pool )的简单介绍
  • 鸿蒙内核源码分析(时间管理篇) | 谁是内核基本时间单位
  • 安装numpy遇到的问题
  • 页面嵌套,界面套娃,除了用iframe,还有其他方式吗?
  • 上传文件至linux服务器失败
  • 渗透 如何防御ARP欺骗,LLMNR-MDNS-NBNS等协议的作用
  • 【C++ 所有STL容器简介】
  • Django调用SECRET_KEY对数据进行加密
  • 芸众商城电商专业版400+插件源码+搭建教程
  • 【机器学习与实现】线性回归示例——波士顿房价分析
  • Redis核心数据结构——跳表(生成数据到文件和从文件中读取数据、模块合并、)
  • 微信小程序下载文件详解