pub struct CompletedPosition {Show 23 fields
pub position_id: String,
pub symbol: String,
pub side: Side,
pub group: Option<String>,
pub trade_id: Option<String>,
pub open_ts: NaiveDateTime,
pub close_ts: NaiveDateTime,
pub entry_size: f64,
pub average_entry_price: f64,
pub net_pnl: f64,
pub native_net_pnl: Option<f64>,
pub native_currency: Option<String>,
pub outcome: NetPnlOutcome,
pub pnl_epsilon: f64,
pub initial_stop: Option<f64>,
pub effective_stop: Option<EffectiveStop>,
pub risk_basis_status: RiskBasisStatus,
pub risk_tranches: Vec<RiskTranche>,
pub realized_r: Option<f64>,
pub mae: Option<f64>,
pub mfe: Option<f64>,
pub close_reasons: Vec<CloseReason>,
pub close_events: Vec<CloseEvent>,
}Expand description
Complete campaign-level outcome for one position.
Fields§
§position_id: String§symbol: String§side: Side§group: Option<String>§trade_id: Option<String>§open_ts: NaiveDateTime§close_ts: NaiveDateTime§entry_size: f64§average_entry_price: f64§net_pnl: f64§native_net_pnl: Option<f64>§native_currency: Option<String>§outcome: NetPnlOutcome§pnl_epsilon: f64§initial_stop: Option<f64>§effective_stop: Option<EffectiveStop>§risk_basis_status: RiskBasisStatus§risk_tranches: Vec<RiskTranche>§realized_r: Option<f64>Net P&L divided by total valid initial monetary risk.
mae: Option<f64>Minimum campaign P&L observed from a zero baseline (normally <= 0).
mfe: Option<f64>Maximum campaign P&L observed from a zero baseline (normally >= 0).
close_reasons: Vec<CloseReason>Distinct close reasons in first-observed order.
close_events: Vec<CloseEvent>Implementations§
Source§impl CompletedPosition
impl CompletedPosition
pub fn from_close_events( position_id: impl Into<String>, symbol: impl Into<String>, side: Side, open_ts: NaiveDateTime, close_ts: NaiveDateTime, entry_size: f64, average_entry_price: f64, initial_stop: Option<f64>, effective_stop: Option<EffectiveStop>, risk_tranches: Vec<RiskTranche>, close_events: Vec<CloseEvent>, mae: Option<f64>, mfe: Option<f64>, epsilon: f64, ) -> Self
pub fn classify(net_pnl: f64, epsilon: f64) -> NetPnlOutcome
pub fn initial_risk(&self) -> Option<f64>
Trait Implementations§
Source§impl Clone for CompletedPosition
impl Clone for CompletedPosition
Source§fn clone(&self) -> CompletedPosition
fn clone(&self) -> CompletedPosition
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 CompletedPosition
impl Debug for CompletedPosition
Source§impl Default for CompletedPosition
impl Default for CompletedPosition
Source§impl<'de> Deserialize<'de> for CompletedPositionwhere
CompletedPosition: Default,
impl<'de> Deserialize<'de> for CompletedPositionwhere
CompletedPosition: Default,
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for CompletedPosition
impl PartialEq for CompletedPosition
Source§impl Serialize for CompletedPosition
impl Serialize for CompletedPosition
impl StructuralPartialEq for CompletedPosition
Auto Trait Implementations§
impl Freeze for CompletedPosition
impl RefUnwindSafe for CompletedPosition
impl Send for CompletedPosition
impl Sync for CompletedPosition
impl Unpin for CompletedPosition
impl UnsafeUnpin for CompletedPosition
impl UnwindSafe for CompletedPosition
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