Sub-Microsecond Market Data Pipeline

Erstellt am: 14. April 2026

Eine Zero-Copy High-Frequency-Infrastruktur mit cache-alignten Shared-Memory-Strukturen, die Marktdaten in Echtzeit zu einem 8-Kanal Feature-Tensor anreichert – designed für Sub-Mikrosekunden-Latenz auf ARM64.

Das Kernproblem im algorithmischen Handel: Marktdaten sind wertlos, wenn sie den Verarbeitungspfad nicht in Echtzeit und ohne Memory-Overhead durchlaufen. Jeder Heap-Allocation, jeder Kopiervorgang, jede Cache-Line-Kollision kostet Nanosekunden – und Nanosekunden kosten Alpha.

Die Architektur folgt dem Prinzip der Mechanical Sympathy: Kein Garbage Collector berührt den kritischen Pfad, kein Betriebssystem-Syscall blockiert den Write. Der gesamte Datenstrom fließt durch ein Memory Mapped File im RAM (

/dev/shm/dev/shm

) – zugänglich für alle Prozesse des Stacks ohne eine einzige Kopie.

Memory Map: Cache-Line-Aligned Shared Memory

Das Herzstück ist eine präzise segmentierte Speicherkarte, deren Grenzen und Struct-Größen explizit an die CPU-Architektur angepasst sind:

Total Size=8192+Nticks×128128 MB,Nticks=220\text{Total Size} = 8192 + N_{\text{ticks}} \times 128 \approx 128 \text{ MB}, \quad N_{\text{ticks}} = 2^{20}

Drei Zonen mit definierten Offsets werden im Shared Memory adressiert:

HEADER  [0,128B]    {head_cursor,kill_switch,algo_status}STATE  [1024,256B]    Top-5 L2 Bid/Ask + OBIRING BUFFER  [8192,]    220×128B Ticks\begin{aligned} \text{HEADER} \;& [0, 128\text{B}] \;& \supset \;& \{\texttt{head\_cursor},\, \texttt{kill\_switch},\, \texttt{algo\_status} \} \\ \text{STATE} \;& [1024, 256\text{B}] \;& \supset \;& \text{Top-5 L2 Bid/Ask + OBI} \\ \text{RING BUFFER} \;& [8192, \ldots] \;& \supset \;& 2^{20} \times 128\text{B Ticks} \end{aligned}

Jeder Tick-Eintrag ist exakt 128 Byte groß – zwei volle Cache-Lines. Das eliminiert False Sharing: kein konkurrierender Read kann denselben Cache-Line-Block invalidieren, den der Writer gerade beschreibt. Der Zugriff auf den Ring Buffer erfolgt über eine lockfreie Modulo-Maske statt teurer Division:

index=head_cursor  &  (2201)\text{index} = \texttt{head\_cursor} \;\&\; (2^{20} - 1)

Memory-Order Semantics via JDK 25 FFM (Project Panama)

Die Synchronisation zwischen Writer- und Reader-Prozessen erfolgt nicht über Locks, sondern über explizite Speicherbarrieren. Beim Writer garantiert setRelease(head_cursor + 1), dass alle vorangehenden Writes für jeden nachfolgenden Leser sichtbar sind, bevor der Cursor inkrementiert wird. Der Reader nutzt getAcquire(head_cursor), um Instruction-Reordering über den Lesepunkt hinaus zu verhindern. Dieses Acquire-Release-Paar implementiert das schwächstmögliche Synchronisationsprotokoll, das noch korrekt ist – stärker als Relaxed, schwächer als SeqCst, ohne einen einzigen Mutex.

8-Kanal Feature-Tensor

Parallel zum Raw-Tick schreibt die MathCore-Stufe einen vollständig angereicherten Feature-Vektor

ftR8\mathbf{f}_t \in \mathbb{R}^8

in denselben Struct-Slot:

ft=[rtlog,  σtreal,  Δσt,  s~t,  OBIt,  δtEWMA,  Δbt,  Δat]\mathbf{f}_t = [\, r_t^{\log},\; \sigma_t^{\text{real}},\; \Delta\sigma_t,\; \tilde{s}_t,\; \text{OBI}_t,\; \delta_t^{\text{EWMA}},\; \Delta b_t,\; \Delta a_t \,]^\top

Die Komponenten des Vektors sind mathematisch definiert:

rtlog=ln(pt/pt1)r_t^{\log} = \ln(p_t / p_{t-1})

(Log-Return);

σtreal\sigma_t^{\text{real}}

(Rolling Realized Volatility);

Δσt\Delta\sigma_t

(Volatilitäts-Momentum);

s~t\tilde{s}_t

(Normalized Spread);

OBIt\text{OBI}_t

(Order Book Imbalance);

δtEWMA\delta_t^{\text{EWMA}}

(Mean-Reversion-Potenzial);

Δbt,Δat\Delta b_t, \Delta a_t

(Bid/Ask-Delta).

Dieser Tensor dient als primärer Input für den hcs-Signaldetektor, welcher auf archivierten Parquet-Snapshots trainiert wird und dessen Inferenz direkt auf dem Live-Stream operiert.

Deployment: ARM64 + Docker + Zero-GC-Path

Die JVM wird mit ZGC und festem Heap (-Xms2G -Xmx2G) betrieben, um GC-Pausen vollständig aus dem kritischen Pfad zu eliminieren. Auf Raspberry Pi 5 ermöglicht ipc: host im Docker-Compose-Stack den direkten Shared-Memory-Zugriff über Prozessgrenzen hinweg. Prometheus und Grafana liefern Echtzeit-Metriken auf OBI, Micro-Price und Volatilität.

Sub-Microsecond Market Data Pipeline - Bild 1