A swarm of reinforcement-learning agents that trade live capital under a hard risk budget, placing orders in under a millisecond and never breaching a 6% drawdown ceiling.
Most RL trading systems treat risk as a reward penalty and hope the policy learns restraint. We don't. Every agent intent passes through a central allocator that solves a budget-constrained optimization in real time, clipping positions so portfolio VaR and the 6% drawdown ceiling are mathematically guaranteed, not merely encouraged.
This separation lets agents stay aggressive in their own objective while the allocator owns safety. Policies can be retrained or swapped without ever putting the book at risk.
Rather than one monolithic policy, an ensemble of PPO agents each specializes per asset class and microstructure regime, trained in parallel with Ray RLlib. Per-agent reward attribution after reconciliation means a single underperformer can be diagnosed and retired without disturbing the rest.
The hot path stays in Rust end to end, feature construction, allocation, and routing, keeping the journey from market event to venue under a millisecond.
| Component | Technology | Why |
|---|---|---|
| Tick storage & analytics | kdb+ | Columnar time-series at nanosecond resolution for backtests and reconciliation. |
| Event backbone | Kafka | Decouples ingest, agents, and execution with replayable streams. |
| Agent training | Ray RLlib | Distributed PPO rollouts scale the ensemble across the cluster. |
| Feature & execution path | Rust | Zero-GC, predictable sub-ms latency on the hot path. |
| Orchestration & research | Python | Fast iteration on reward design, risk models, and tooling. |
| Risk allocator |
Independent agents specialize by asset class and regime, trained concurrently on Ray RLlib.
Convex solver enforces VaR and drawdown limits before any order is emitted.
Rust execution gateway slices and prices orders across venues at p99 under 1ms.
kdb+ powers both live reconciliation and high-fidelity offline backtests.
Kafka streams let any incident or regime be replayed deterministically for debugging.
Fills map back to the responsible agent, enabling targeted retraining and retirement.
“Agents chase alpha; the allocator owns the risk, and the 6% line has never been crossed.”
By cleanly separating aggressive agent policies from a hard-constraint risk allocator, the system runs $80M+ in live capital at a sustained Sharpe of 2.4 while routing orders in under a millisecond and holding drawdown under 6% through every market regime. The Rust hot path delivers the latency, kdb+ and Kafka deliver the replayable audit trail, and Ray RLlib lets the agent ensemble keep learning, proving that autonomous RL trading and institutional-grade risk discipline are not mutually exclusive.
| Custom convex solver |
| Hard VaR and drawdown constraints applied before any order leaves. |