JAX-LOB: A GPU-Accelerated limit order book simulator to unlock large scale reinforcement learning for trading
ArXiv ID: 2308.13289 “View on arXiv”
Authors: Unknown
Abstract
Financial exchanges across the world use limit order books (LOBs) to process orders and match trades. For research purposes it is important to have large scale efficient simulators of LOB dynamics. LOB simulators have previously been implemented in the context of agent-based models (ABMs), reinforcement learning (RL) environments, and generative models, processing order flows from historical data sets and hand-crafted agents alike. For many applications, there is a requirement for processing multiple books, either for the calibration of ABMs or for the training of RL agents. We showcase the first GPU-enabled LOB simulator designed to process thousands of books in parallel, with a notably reduced per-message processing time. The implementation of our simulator - JAX-LOB - is based on design choices that aim to best exploit the powers of JAX without compromising on the realism of LOB-related mechanisms. We integrate JAX-LOB with other JAX packages, to provide an example of how one may address an optimal execution problem with reinforcement learning, and to share some preliminary results from end-to-end RL training on GPUs.
Keywords: Limit Order Book Simulator, JAX, GPU Acceleration, Reinforcement Learning, High-Frequency Trading
Complexity vs Empirical Score
- Math Complexity: 3.0/10
- Empirical Rigor: 7.0/10
- Quadrant: Street Traders
- Why: The paper presents a GPU-accelerated LOB simulator (JAX-LOB) with a focus on implementation, parallelism, and RL training speedups, featuring code-like algorithms and performance metrics but minimal novel mathematical derivations.
flowchart TD
A["Research Goal: <br>Develop GPU-Accelerated LOB Simulator"] --> B["Key Methodology: <br>Design JAX-LOB Architecture"]
B --> C{"Data/Input: <br>Market Data & Agents"}
C --> D["Computational Process: <br>Parallel GPU Processing"]
D --> E["Computational Process: <br>Reinforcement Learning Integration"]
E --> F["Outcome: <br>1000x Speed Improvement"]
F --> G["Outcome: <br>Large Scale RL Training Enabled"]
G --> H["Outcome: <br>Optimal Execution Results"]