ExampleBank TCP demo
ExampleBank is a fictional FX ESP profile for safe redistribution. It exercises FIX 4.4 session management plus a realistic quote → trade path with repeating groups (multiple price levels per quote). Lucid in the same package covers a complementary integration style; start here for raw TCP and log visibility.
If FIX tags and session concepts are new, read Introduction to FIX first.
Roles
| Role | Script | FIX role |
|---|---|---|
| Server | ./run-server.sh |
Acceptor — publishes quotes |
| Client | ./run-client.sh |
Initiator — requests quotes and sends orders |
Both sides use the 4H engine with the evaluation licence enforced.
Build and run
cd examplebank-demo
./build.sh
./run-server.sh # terminal 1
./run-client.sh # terminal 2
What you will see
- TCP connect and Logon (
35=A) with agreed Comp IDs - Heartbeats (
35=0) while idle - Quote request / Quote — bid and offer levels in repeating groups (tags
295/296style structure) - NewOrderSingle (
35=D) against a streamed price - ExecutionReport (
35=8) confirming fill or reject
Turn on verbose logging if your build supports it — compare wire timestamps with the session layer lesson.
Message flow (simplified)
Client (initiator) Server (acceptor)
|---- Logon ------------>|
|<--- Logon ack ----------|
|---- QuoteRequest ------>|
|<--- Quote (groups) -----|
|---- NewOrderSingle ---->|
|<--- ExecutionReport ----|
ROE and benchmarks
The Rules of Engagement in examples/examplebank/ROE.md document message constraints, clip sizes, and watchlist behaviour. The same fictional flow powers published interop and latency matrices — identical payloads across 4H, QuickFIX/J, and FIX Antenna for apples-to-apples comparison.
Next steps
- 4H Academy — common tags quiz
- Getting started — package layout and troubleshooting