Architecture¶
RegimeFlow is layered to keep market data ingestion, strategy logic, execution modeling, and live integration decoupled. The core runtime is C++20 with optional Python bindings.
Layering¶
- Common: utilities, time, config, JSON/YAML helpers.
- Data: data sources, validation, normalization, and iterators.
- Regime: feature extraction and detectors.
- Strategy: strategy contract and built-in strategies.
- Execution: slippage, commission, impact, latency models.
- Risk: limits and stop-loss logic.
- Engine: orchestrates event loop and portfolio state.
- Live: broker adapters, event bus, live engine.
- Plugins: extension interfaces for data, regime, execution, strategy, risk, metrics.
Architecture Diagram¶
```mermaid flowchart TB subgraph Common C1[Config + Result] C2[Time + Types] end
subgraph Data D1[Data Sources] D2[Validation] D3[Iterators] end
subgraph Regime R1[Feature Extractor] R2[Regime Detectors] end
subgraph Engine E1[Event Loop] E2[Strategy Context] E3[Portfolio + Metrics] end
subgraph Execution X1[Execution Pipeline] X2[Slippage/Commission/Impact] end
subgraph Risk K1[Risk Manager] K2[Stop-Loss] end
subgraph Live L1[Broker Adapters] L2[Event Bus] end
Common --> Data Common --> Regime Data --> Engine Regime --> Engine Engine --> Execution Execution --> Engine Risk --> Engine Engine --> Live Live --> Engine ```
Module Map¶
include/regimeflow/common/*foundational types and config.include/regimeflow/data/*data sources and validation.include/regimeflow/regime/*feature extraction and detectors.include/regimeflow/strategy/*strategy contract and factory.include/regimeflow/execution/*cost and execution models.include/regimeflow/risk/*risk limits and stop-loss.include/regimeflow/engine/*backtest engine and portfolio.include/regimeflow/live/*live engine and adapters.include/regimeflow/plugins/*plugin interfaces and registry.
Extension Points¶
Plugins can extend:
- Data sources (
data_source) - Regime detectors (
regime_detector) - Execution models (
execution_model) - Strategies (
strategy) - Risk managers (
risk_manager) - Metrics (
metrics)
See reference/plugin-api.md and reference/plugins.md.