pub struct BacktestEngine { /* private fields */ }Expand description
Core vectorized engine (MVP).
Takes a (sorted) long-format DataFrame containing at minimum: timestamp, close, signal (bool/f64; value >0 interpreted as desired exposure in units for variable sizing support added in ug9t).
Generalized from unit-size flips (1hr) to exposure-driven for feature/PA
sizing parity verification. See run_streaming_simulation for NextBacktestConfig.symbol_col is set, runs independent per-symbol simulations
and returns symbol-tagged trades plus per-symbol and portfolio equity curves.
Implementations§
Source§impl BacktestEngine
impl BacktestEngine
pub fn new(config: BacktestConfig) -> Self
pub fn with_default_costs() -> Self
Sourcepub fn backtest_with_report(
&self,
lf: LazyFrame,
) -> Result<BacktestReport, BacktestError>
pub fn backtest_with_report( &self, lf: LazyFrame, ) -> Result<BacktestReport, BacktestError>
Run backtest and attach PerformanceMetrics in a BacktestReport.
Sourcepub fn run(&self, lf: LazyFrame) -> Result<BacktestResult, BacktestError>
pub fn run(&self, lf: LazyFrame) -> Result<BacktestResult, BacktestError>
Run vectorized simulation on a LazyFrame (collected internally for state machine). Input must be sorted ascending by timestamp (then symbol if multi). Returns rich Polars results.
pub fn run_metrics_only( &self, lf: LazyFrame, ) -> Result<PerformanceMetrics, BacktestError>
Auto Trait Implementations§
impl Freeze for BacktestEngine
impl RefUnwindSafe for BacktestEngine
impl Send for BacktestEngine
impl Sync for BacktestEngine
impl Unpin for BacktestEngine
impl UnsafeUnpin for BacktestEngine
impl UnwindSafe for BacktestEngine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.