How abides-sim/abides works
ABIDES is a configurable, message-driven agent-based market simulator for AI and market research. A researcher selects a scenario, which configures the Kernel, exchange, oracle, and participant population; the Kernel advances simulated time and routes interactions, while agents request market information and submit orders to the exchange. The exchange maintains order books and facilitates trades. Simulation output can then support realism and market-impact analysis. The README documents configurable pairwise latencies and large agent populations; sampled source confirms configuration and trading-agent messaging, but not every runtime call path.
Main entry points: Kernel.py Simulation Kernel · TradingAgent.py Trading agent base · ExchangeAgent.py Exchange agent · config Scenario config
Components 17
Simulation runtime
- Scenario config
config - Simulation Kernel
Kernel.py - Latency model
model/LatencyModel.py - Message protocol
message/Message.py
Market participants
- Trading agent base
agent/TradingAgent.py - Trading strategies
agent - Execution agents
agent/execution - Market makers
agent/market_makers - ETF participants
agent/etf
Market data and orders
- Fundamental oracle
util/oracle - Exchange agent
agent/ExchangeAgent.py - Order book
util/OrderBook.py - Order types
util/order
Research outputs
- Simulation logs
util/simulation_run_stats.py - Realism analysis
realism - Log and book tools
cli
Other components
- Researcher
Connections 23
- Researcher → Scenario config: selects scenario
- Scenario config → Simulation Kernel: configures run
- Scenario config → Fundamental oracle: selects oracle
- Simulation Kernel → Latency model: uses delays
- Simulation Kernel → Message protocol: routes messages
- Simulation Kernel → Exchange agent: runs agent
- Simulation Kernel → Trading agent base: runs agents
- Simulation Kernel → Trading strategies: runs agents
- Simulation Kernel → Execution agents: runs agents
- Simulation Kernel → Market makers: runs agents
- Simulation Kernel → ETF participants: runs agents
- Trading agent base → Exchange agent: sends orders
- Trading agent base → Exchange agent: requests data
- Trading strategies → Trading agent base: extends base
- Execution agents → Trading agent base: extends base
- Market makers → Trading agent base: extends base
- ETF participants → Trading agent base: uses trading API
- Exchange agent → Order book: updates book
- Exchange agent → Order types: processes orders
- Exchange agent → Trading agent base: sends market data
- Simulation Kernel → Simulation logs: writes run data
- Simulation logs → Realism analysis: analyzes output
- Simulation logs → Log and book tools: reads logs