Welcome to agent-based modelling
FlowLab specialises in agent-based modelling of financial markets.
Inside ↓Inside the simulator
FlowLab builds a market the way a market is actually built: from the participants upward. Four steps, from the traders to the effect of your own order.
A market is its participants
A market is not a curve. It is a population of traders — some providing liquidity, some following price, some acting on a view of value — each with its own objective, horizon and tolerance for loss. FlowLab begins there, with the participants rather than with the price.
They meet in an order book
Every participant sends orders to the same place. Orders rest in the book until something crosses them, and matching runs by price and then by time. Nothing about the price is agreed in advance. It is the residue of who was willing to trade, at what level, and when.
Price is an outcome, not an input
Because participants react to what the book shows them, the price path emerges from their interaction rather than being drawn beforehand.
Your order changes the market
Introduce a real order and the simulated participants respond to it. Depth thins, the price moves against the trade, and other traders adjust to what they observe. This is the part recorded history cannot provide, and the reason a decision can be examined before it is taken.
Foundational principles of FlowLab
Calibrated against observed markets
FlowLab is calibrated against order-level exchange data. Historical and simulated markets pass through the same feature extraction process, allowing the simulator to be evaluated using the same measurements as the market it represents.
Reproduce every run
Every simulation is generated from a recorded configuration and seed. A result can be reproduced exactly, investigated in detail and generated again under different assumptions.
Examine every assumption
Parameters, assumptions and limitations are documented alongside the results. Clients can see what drives an output, which conclusions it supports and where caution is required.