129BOB
A trading research system that runs at three speeds: AI agents decide what to study, a C++ engine enforces the limits, and an FPGA pipeline keeps the order book in hardware. Paper only.
- Status
- Active
- Scope
- Paper only: recorded market data, no money, no broker
- Board
- TUL PYNQ-Z2 (Zynq XC7Z020)
- Data
- Nasdaq TotalView-ITCH 5.0, recorded 30 Dec 2019
- Built with
- SystemVerilog, C++20, Python
- Research
- TradingAgents-Jev ↗
- Source
- Private repository for now
Three speeds
Trading decisions happen on very different clocks. 129BOB gives each one its own lane, and no language model sits in the order path.
| Lane | Reacts in | Job |
|---|---|---|
| AI research (TradingAgents-Jev) | minutes | What to trade, the risk budget, when to stand down |
| C++ engine | µs to ms | Market data, order books, strategies, risk checks, orders |
| FPGA pipeline | ns | Feed decoding and the order book in hardware |
From research to a paper trade
- TradingAgents-Jev, our fork of the open-source TradingAgents framework, has a team of AI agents write market, sentiment, news and fundamentals reports, then argue them out into a rating.
- 129BOB keeps the reports as evidence and the rating as context only. A versioned policy can shrink the operator's limits, never raise them.
- A mandate sets the order size, price band, time window and loss limit. A person approves that exact version.
- The C++ engine replays recorded Nasdaq data through a reference order book and runs 24 risk checks on every order. Paper orders fill only against shares that were really displayed.
- A stop switch blocks new actions at once, and every step is stored so it can be inspected and exported.
What has been checked
- Reference model. A C++ decoder for all 23 ITCH 5.0 message types and an order-by-order book. It reconciles two recorded trading days end to end: 29,156,757 messages on Nasdaq BX and 268,744,780 on Nasdaq, with zero decode errors.
- FPGA in simulation. The SystemVerilog parser and order book match the reference on every recorded test frame, at about 4.7 clock cycles per message in Verilator.
- FPGA on a board. First run on a PYNQ-Z2 on 21 October 2026: the parser returned 28,021 of 28,021 frames with zero field mismatches, and the order book returned 17,205 of 17,205 reference records.
The board run also found two problems: a counter that carried over between replays, and a board-agent binding that failed on PYNQ 3.0.1 (the book test used a validation adapter). Both are fixed in the source; a repeat run on the board is next.
What it is not
Paper only. Not a forecast, not calibrated, not profitable trading, not production high-frequency trading, and not connected to any exchange or broker.
Next
Repeat the board run with the fixes in place, then work toward paper trading on Indian market quotes, still without real orders.