A highly customizable framework designed for parallel tuning of trading algorithms by reproducing and simulating the trading history of exchanges and the behaviour of brokers.
It aims to provide a complete set of interfaces needed to simulate and optimize trading and investing algorithms at any level of precision: from the level of intra-exchange messages to the level of price chart trading.
This project is committed to achieving:
-
The highest possible execution speed, which is available through AOT compilation that runs directly to native code, low runtime, and great
rustcandLLVMoptimization abilities. -
Low probability of making critical errors, which is achieved by Rust's strong type system and borrowing rules that prevent the vast majority of erroneous programs from compiling.
-
High speed of writing custom code. This goal is achieved through the relatively simple syntax of the Rust language, which makes it no more complicated than that of C#.
Put this in your Cargo.toml:
[dependencies]
trading_backtester = { path = "???", features = ["???"] }where path should point to the location of the trading_backtester library,
and features should consist of the available ones (or may not be set).
The following features are available for enabling. Each of them provides access to:
-
concreteConcrete examples of entities that implement traits from the
interfacemodule. -
enum_defThe macro that generates an
enumthat can contain each of the listed types as a uniqueenumvariant. Simplifies the creation of statically dispatched trait objects. -
enum_dispatchDerive macros for statically dispatched trait objects from the
interfacemodule. Convenient to use with theenum_def. -
multithreadUtilities for running backtesters in multiple threads.
| Kernel message management system |