pub struct WalkForwardView {Show 29 fields
pub id: String,
pub instrument: String,
pub verdict: String,
pub reasons: Vec<String>,
pub recommendations: Vec<RecommendationView>,
pub folds: Vec<FoldView>,
pub folds_surviving_deflation: u32,
pub folds_without_trades: u32,
pub stability: Vec<StabilityView>,
pub strategy: Option<MetricsView>,
pub benchmark: Option<MetricsView>,
pub excess_return: f64,
pub strategy_curve: Vec<CurvePoint>,
pub benchmark_curve: Vec<CurvePoint>,
pub price: Vec<CandlePoint>,
pub markers: Vec<TradeMarkerView>,
pub underwater: Vec<CurvePoint>,
pub data_findings: Vec<DataFindingView>,
pub trades: Vec<TradeRowView>,
pub trades_detail: Option<TradesView>,
pub in_sample_days: i64,
pub step_days: i64,
pub anchored: bool,
pub dataset_version: String,
pub strategy_name: String,
pub starting_cash: f64,
pub commission_bps: f64,
pub slippage_bps: f64,
pub engine: String,
}Expand description
Every shape at the root as well, because a window names a view on nearly
every line and arvo_api::research::StudyView would be noise. The names
do not collide: proto has no overloading and neither does this.
Every shape at the root as well, because a window names a view on nearly
every line and arvo_api::research::StudyView would be noise. The names
do not collide: proto has no overloading and neither does this.
Every shape at the root as well, because a window names a view on nearly
every line and arvo_api::research::StudyView would be noise. The names
do not collide: proto has no overloading and neither does this.
A walk-forward run, flattened for display.
Fields§
§id: StringThe stored finding this view came from, so the window can ask for
something to be done to the record it is showing — a report composed
from it, a file kept with it. Empty for a view that was never
recorded. default because every view built before this had none.
instrument: String§verdict: String§reasons: Vec<String>§recommendations: Vec<RecommendationView>§folds: Vec<FoldView>§folds_surviving_deflation: u32§folds_without_trades: u32Folds in which the selected configuration never opened a position — the symptom of a step too short for the rule’s warm-up.
stability: Vec<StabilityView>How the selection moved. The thing only a rolling procedure can show.
strategy: Option<MetricsView>§benchmark: Option<MetricsView>§excess_return: f64§strategy_curve: Vec<CurvePoint>§benchmark_curve: Vec<CurvePoint>§price: Vec<CandlePoint>§markers: Vec<TradeMarkerView>§underwater: Vec<CurvePoint>§data_findings: Vec<DataFindingView>What is wrong with the bars this was produced from.
trades: Vec<TradeRowView>§trades_detail: Option<TradesView>§in_sample_days: i64§step_days: i64§anchored: bool§dataset_version: String§strategy_name: String§starting_cash: f64§commission_bps: f64§slippage_bps: f64§engine: StringImplementations§
Source§impl WalkForwardView
impl WalkForwardView
Sourcepub fn strategy(&self) -> &MetricsView
pub fn strategy(&self) -> &MetricsView
The sender always fills this.
§Panics
Only if it did not, which would mean the two sides disagree about the contract.
Source§impl WalkForwardView
impl WalkForwardView
Sourcepub fn benchmark(&self) -> &MetricsView
pub fn benchmark(&self) -> &MetricsView
The sender always fills this.
§Panics
Only if it did not, which would mean the two sides disagree about the contract.
Source§impl WalkForwardView
impl WalkForwardView
Sourcepub fn trades_detail(&self) -> &TradesView
pub fn trades_detail(&self) -> &TradesView
The sender always fills this.
§Panics
Only if it did not, which would mean the two sides disagree about the contract.
Trait Implementations§
Source§impl Clone for WalkForwardView
impl Clone for WalkForwardView
Source§impl Debug for WalkForwardView
impl Debug for WalkForwardView
Source§impl Default for WalkForwardView
impl Default for WalkForwardView
Source§impl<'de> Deserialize<'de> for WalkForwardView
impl<'de> Deserialize<'de> for WalkForwardView
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>,
Source§impl Message for WalkForwardView
impl Message for WalkForwardView
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.