pub struct BacktestData {
pub returns: Vec<f64>,
pub label_spans: Vec<(NaiveDateTime, NaiveDateTime)>,
}Expand description
The samples to backtest: one return and one label span per sample, in time order.
Fields§
§returns: Vec<f64>One finite value per sample. Only validated and used to count samples; the reported performance comes from the evaluator.
label_spans: Vec<(NaiveDateTime, NaiveDateTime)>(start, end) of each sample’s label, start <= end, used for purging (closed
intervals) and to place the embargo.
Implementations§
Source§impl BacktestData
impl BacktestData
Sourcepub fn validate(&self) -> Result<(), BacktestError>
pub fn validate(&self) -> Result<(), BacktestError>
Checks the data every runner requires.
Time order of label_spans is not checked.
§Errors
BacktestError::Empty("returns")when there are no samples.BacktestError::ReturnsLabelSpansLengthMismatchwhen the lengths differ.BacktestError::Invalidwithname = "returns"when a return is NaN or infinite.BacktestError::LabelSpanEndBeforeStartwhen a span ends before it starts.
Trait Implementations§
Source§impl Clone for BacktestData
impl Clone for BacktestData
Source§fn clone(&self) -> BacktestData
fn clone(&self) -> BacktestData
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BacktestData
impl Debug for BacktestData
Source§impl PartialEq for BacktestData
impl PartialEq for BacktestData
Source§fn eq(&self, other: &BacktestData) -> bool
fn eq(&self, other: &BacktestData) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for BacktestData
Auto Trait Implementations§
impl Freeze for BacktestData
impl RefUnwindSafe for BacktestData
impl Send for BacktestData
impl Sync for BacktestData
impl Unpin for BacktestData
impl UnsafeUnpin for BacktestData
impl UnwindSafe for BacktestData
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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 more§impl<T> Key for Twhere
T: Clone,
impl<T> Key for Twhere
T: Clone,
§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Scalar for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.