<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Trading-Systems on Mad Blog</title>
    <link>/tags/trading-systems/</link>
    <description>Recent content in Trading-Systems on Mad Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-GB</language>
    <managingEditor>madking.direct@gmail.com (Mad King)</managingEditor>
    <webMaster>madking.direct@gmail.com (Mad King)</webMaster>
    <lastBuildDate>Thu, 02 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="/tags/trading-systems/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Building a High-Performance Orderbook in Java 24: The Data Structures That Actually Matter</title>
      <link>/posts/java-24-orderbook-trading/</link>
      <pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate>
      <author>madking.direct@gmail.com (Mad King)</author>
      <guid>/posts/java-24-orderbook-trading/</guid>
      
      <description>&lt;p&gt;I decided to build an orderbook from scratch.&lt;/p&gt;
&lt;p&gt;Not as a homework exercise. Real market data. Real matching logic. The kind of thing that runs in production at exchanges and brokerages. And the most surprising thing wasn&amp;rsquo;t how hard it was — it was how much Java 24 simply got out of my way.&lt;/p&gt;
&lt;p&gt;The orderbook is deceptively simple in concept: collect buy orders at various price levels, collect sell orders at various price levels, match them when they overlap. In practice, a naive implementation collapses under real-volume load. Here&amp;rsquo;s what changed when I leaned into the JVM properly.&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
