Expand description
§Barter
Barter core is a Rust framework for building high-performance live-trading, paper-trading and back-testing systems.
- Fast: Written in native Rust. Minimal allocations. Data-oriented state management system with direct index lookups.
- Robust: Strongly typed. Thread safe. Extensive test coverage.
- Customisable: Plug and play Strategy and RiskManager components that facilitates most trading strategies (MarketMaking, StatArb, HFT, etc.).
- Scalable: Multithreaded architecture with modular design. Leverages Tokio for I/O. Memory efficient data structures.
§Overview
Barter core is a Rust framework for building professional grade live-trading, paper-trading and back-testing systems. The central Engine facilitates executing on many exchanges simultaneously, and offers the flexibility to run most types of trading strategies. It allows turning algorithmic order generation on/off and can action Commands issued from external processes (eg/ CloseAllPositions, OpenOrders, CancelOrders, etc.)
At a high-level, it provides a few major components:
Enginewith plug and playStrategyandRiskManagercomponents.- Centralised cache friendly
EngineStatemanagement with O(1) constant lookups using indexed data structures. Strategyinterfaces for customising Engine behavior (AlgoStrategy, ClosePositionsStrategy, OnDisconnectStrategy, etc.).RiskManagerinterface for defining custom risk logic which checking generated algorithmic orders.- Event-driven system that allows for Commands to be issued from external processes (eg/ CloseAllPositions, OpenOrders, CancelOrders, etc.), as well as turning algorithmic trading on/off.
- Comprehensive statistics package that provides a summary of key performance metrics (PnL, Sharpe, Sortino, Drawdown, etc.).
§Getting Started Via Engine Examples
Modules§
- backtest
- Backtesting utilities.
- engine
- Algorithmic trading
Engine, and entry points for processing inputEvents. - error
- Defines all possible errors in Barter core.
- execution
- Components for initialising multi-exchange execution, routing
ExecutionRequests and other execution logic. - logging
- Provides default Barter core Tracing logging initialisers.
- risk
- RiskManager interface for reviewing and optionally filtering algorithmic cancel and open order requests.
- shutdown
- Traits and types related to component shutdowns.
- statistic
- Statistical algorithms for analysing datasets, financial metrics and financial summaries.
- strategy
- Strategy interfaces for generating algorithmic orders, closing positions, and performing
Engineactions on disconnect / trading disabled. - system
- Utilities for initialising and interacting with a full trading system.
- test_
utils - Barter core test utilities.
Structs§
- Sequence
- Monotonically increasing event sequence. Used to track
Engineevent processing sequence. - Timed
- A timed value.
Enums§
- Engine
Event - Default
Engineevent that encompasses market events, account/execution events, andEnginecommands.