#[non_exhaustive]pub struct OptimizationReport {
pub strategy_name: String,
pub total_combinations: usize,
pub results: Vec<OptimizationResult>,
pub best: OptimizationResult,
pub skipped_errors: usize,
pub convergence_curve: Vec<f64>,
pub n_evaluations: usize,
}Expand description
Optimisation report returned by both GridSearch and BayesianSearch.
§Overfitting Warning
All metrics are in-sample — the same candle data used to optimise the parameters is used to score them. In-sample results almost always overstate real-world performance.
Always validate best parameters on unseen data — use WalkForwardConfig
for an unbiased out-of-sample estimate, or reserve a held-out test period.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.strategy_name: StringName of the strategy being optimised
total_combinations: usizeTotal number of successful parameter evaluations
results: Vec<OptimizationResult>All results sorted best-first by the target metric.
Sets that fail due to insufficient data are silently skipped. In-sample only — see struct-level docs.
best: OptimizationResultThe single best result (same object as results[0]).
In-sample only — see struct-level docs.
skipped_errors: usizeNumber of combinations skipped due to unexpected errors (not insufficient data). A non-zero value indicates a configuration problem.
convergence_curve: Vec<f64>Running best metric value after each successful evaluation, in order.
BayesianSearch populates this as a non-decreasing convergence trace.
GridSearch leaves it empty — parallel execution has no sequential order.
n_evaluations: usizeTotal strategy evaluations attempted (including those skipped for insufficient data).
For GridSearch: equals total_combinations.
For BayesianSearch: equals max_evaluations (or fewer if data is short).
Trait Implementations§
Source§impl Clone for OptimizationReport
impl Clone for OptimizationReport
Source§fn clone(&self) -> OptimizationReport
fn clone(&self) -> OptimizationReport
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OptimizationReport
impl Debug for OptimizationReport
Source§impl<'de> Deserialize<'de> for OptimizationReport
impl<'de> Deserialize<'de> for OptimizationReport
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for OptimizationReport
impl !RefUnwindSafe for OptimizationReport
impl Send for OptimizationReport
impl Sync for OptimizationReport
impl Unpin for OptimizationReport
impl UnsafeUnpin for OptimizationReport
impl !UnwindSafe for OptimizationReport
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 more