Backtest Sequence
%%{init: {"sequence": {"mirrorActors": false, "actorMargin": 56, "messageMargin": 28}}}%%
sequenceDiagram
actor User
participant BacktestEngine as BacktestEngine
participant DataSource as DataSource
participant EventLoop as EventLoop
participant Strategy as Strategy
participant ExecutionPipeline as ExecutionPipeline
participant Portfolio as Portfolio
participant Metrics as Metrics
User->>BacktestEngine: run(config)
activate BacktestEngine
BacktestEngine->>DataSource: load historical data
DataSource-->>BacktestEngine: bars / ticks / books
BacktestEngine->>EventLoop: enqueue and start
activate EventLoop
loop event playback
EventLoop->>Strategy: on_bar / on_tick
activate Strategy
Strategy->>ExecutionPipeline: submit order / signal intent
deactivate Strategy
activate ExecutionPipeline
ExecutionPipeline->>Portfolio: validate and apply fills
ExecutionPipeline->>Metrics: publish execution effects
deactivate ExecutionPipeline
end
EventLoop-->>BacktestEngine: exhausted
deactivate EventLoop
BacktestEngine-->>User: BacktestResults
deactivate BacktestEngine