1#![allow(clippy::needless_range_loop)]
2
3use rust_decimal::Decimal;
9
10pub use rustc_hash::{FxHashMap, FxHashSet};
12
13pub mod adapters; pub mod engine;
16pub mod features; pub mod latency;
18pub mod matching;
19pub mod orderbook;
20pub mod parallel;
21pub mod simd_enhanced; #[cfg(test)]
24mod tests;
25
26pub use adapters::{
28 BinanceTardisAdapter, KrxA3B6G7Adapter, KrxA3B6G7Event, KrxA3B6G7Iterator, TardisL2Event,
29 TardisL2Iterator,
30}; pub use engine::{BacktestConfig, BacktestEngine, Event, MarketDataEvent, OrderEvent, Strategy};
32pub use features::{FeatureCalculator, MicrostructuralFeatures, OrderBookSnapshot, TradeTick}; pub use latency::{FixedLatency, GaussianLatency, LatencyModel, UniformLatency};
34pub use matching::{
35 ConservativeParams, Execution, MarketImpact, MatchingEngine, Order, OrderSide, OrderType,
36 QueueModel,
37};
38pub use orderbook::{Level, OrderBook};
39pub use parallel::{
40 MarketDataProvider, ParallelConfig, ParallelEngine, ParallelStrategy, SymbolConfig,
41};
42pub use simd_enhanced::{EnhancedSimdOps, SimdAlignedBuffer}; #[derive(Debug, Clone)]
46pub struct BacktestResult {
47 pub executions: Vec<Execution>,
49 pub final_pnl: Decimal,
51 pub max_drawdown: Decimal,
53 pub sharpe_ratio: f64,
55 pub total_volume: Decimal,
57 pub trade_count: u64,
59}
60
61pub mod prelude {
66 pub use crate::engine::{
67 BacktestConfig, BacktestEngine, Event, MarketDataEvent, OrderEvent, Strategy,
68 };
69 pub use crate::latency::{FixedLatency, GaussianLatency, LatencyModel, UniformLatency};
70 pub use crate::matching::{
71 ConservativeParams, Execution, MarketImpact, MatchingEngine, Order, OrderSide, OrderType,
72 QueueModel,
73 };
74 pub use crate::orderbook::{Level, OrderBook};
75 pub use crate::parallel::{
76 MarketDataProvider, ParallelConfig, ParallelEngine, ParallelStrategy, SymbolConfig,
77 };
78 pub use crate::{BacktestResult, FxHashMap, FxHashSet};
79}