Hasty Briefsbeta

双语

Building a Financial Exchange from first principles

18 hours ago
  • #financial-exchange
  • #high-frequency-trading
  • #system-design
  • 速度与简洁很少并存,但 farzi.exchange 旨在从其第一原理构建的模拟股票交易所中实现这两者。
  • 金融交易所的核心是通过订单簿和匹配算法来匹配订单,其规则确保确定性和公平性。
  • farzi.exchange 是一个价格时间优先交易所,根据价格和时间匹配订单,平局时考虑披露数量或订单规模。
  • 关键订单类型包括限价订单、市价订单和冰山订单,每种都服务于不同的交易目的和场景。
  • 交易所架构包括每个交易品种使用并行 goroutine 的匹配引擎,以及使用二叉树实现速度优化的内存订单簿。
  • 发射器将事件扇出到消费者,聚合器从交易生成K线图,持久化层将数据异步存储在 PostgreSQL 中。
  • 市场数据层通过 websocket 提供实时数据,通过 API 提供历史数据,使用 CQRS 分离以实现可扩展性。
  • 做市商角色(Farzi Maker、Seth、Scalper、Gambler)在缺乏真实交易者时提供流动性和价格变动。
  • Farzi 10 指数根据底层交易品种的价值计算,每笔交易后更新并以 100 毫秒间隔采样。
  • 该交易所一天处理了超过 2800 万笔交易和 1.22 亿个订单,客户端部署在 Vercel,后端托管于 AWS,显示出显著的可扩展性。