How jpmorganchase/abides-jpmc-public works
ABIDES combines a latency-aware discrete-event simulator, a financial-market simulation, and Gym wrappers for agent interaction and reinforcement learning. A regular run builds a market configuration, initializes its agents and oracle, then the kernel schedules messages and wakeups until the simulation ends; trading agents exchange orders and market queries with the exchange. Gym environments wrap that simulation as reset/step episodes, translating actions and observations for daily-investor or execution tasks. The tree and README establish these capabilities; sampled excerpts support core scheduling, order handling, and execution-state flow, but not every message dispatch.
Main entry points: exchange_agent.py Exchange agent · kernel.py Event kernel · trading_agent.py Trading agents · rmsc04.py RMSC configs
Components 23
Simulation Core
- Event kernel
abides-core/abides_core/kernel.py - Agent runtime
abides-core/abides_core/agent.py - Latency model
abides-core/abides_core/latency_model.py - Message types
abides-core/abides_core/message.py
Market Simulation
- RMSC configs
abides-markets/abides_markets/configs/rmsc04.py - Agent generators
abides-markets/abides_markets/generators.py - Trading agents
abides-markets/abides_markets/agents/trading_agent.py - Exchange agent
abides-markets/abides_markets/agents/exchange_agent.py - Order book
abides-markets/abides_markets/order_book.py - Order models
abides-markets/abides_markets/orders.py - Market messages
abides-markets/abides_markets/messages - Background agents
abides-markets/abides_markets/agents/background_v2/core_background_agent.py - Adaptive market maker
abides-markets/abides_markets/agents/market_makers/adaptive_market_maker_agent.py - Fundamental oracle
abides-markets/abides_markets/oracles/sparse_mean_reverting_oracle.py - Noise agents
abides-markets/abides_markets/agents/noise_agent.py - Value agents
abides-markets/abides_markets/agents/value_agent.py
Gym Environments
- Gym API
abides-gym/abides_gym/envs/core_environment.py - Execution environment
abides-gym/abides_gym/envs/markets_execution_environment_v0.py - Daily investor environment
abides-gym/abides_gym/envs/markets_daily_investor_environment_v0.py - Gym simulation agent
abides-gym/abides_gym/experimental_agents/core_gym_agent.py - Financial Gym agent
abides-gym/abides_gym/experimental_agents/financial_gym_agent.py
Other components
- Simulation user
- RL learner
Connections 31
- Simulation user → RMSC configs: selects configuration
- RMSC configs → Agent generators: configures agents
- Simulation user → Event kernel: starts simulation
- RMSC configs → Event kernel: provides agents
- Event kernel → Agent runtime: dispatches events
- Event kernel → Latency model: calculates delivery delay
- Agent runtime → Event kernel: sends messages
- Trading agents → Exchange agent: submits orders
- Trading agents → Market messages: uses message types
- Exchange agent → Order book: updates book
- Exchange agent → Market messages: dispatches messages
- Order book → Order models: stores orders
- Exchange agent → Trading agents: returns market data
- Adaptive market maker → Trading agents: extends trading behavior
- Background agents → Trading agents: extends trading behavior
- Adaptive market maker → Exchange agent: requests quotes
- Background agents → Exchange agent: submits orders
- Noise agents → Exchange agent: submits orders
- Value agents → Exchange agent: submits orders
- RMSC configs → Fundamental oracle: creates oracle
- Gym API → Event kernel: runs episodes
- Execution environment → Gym API: configures task
- Daily investor environment → Gym API: configures task
- Gym API → Gym simulation agent: steps agent
- Gym simulation agent → Event kernel: acts in simulation
- Gym simulation agent → Trading agents: uses trading behavior
- Execution environment → Financial Gym agent: uses task agent
- Execution environment → RL learner: exposes observations and rewards
- RL learner → Execution environment: provides actions
- Daily investor environment → RL learner: exposes observations and rewards
- RL learner → Daily investor environment: provides actions