pub struct PositionSummary {Show 13 fields
pub position_id: PositionId,
pub symbol: String,
pub side: Side,
pub group: Option<GroupId>,
pub entry_price: f64,
pub avg_exit_price: f64,
pub original_size: f64,
pub close_count: usize,
pub net_pnl: f64,
pub close_reasons: Vec<CloseReason>,
pub open_ts: NaiveDateTime,
pub final_close_ts: NaiveDateTime,
pub duration_seconds: i64,
}Expand description
Aggregated result for one position across all its close events.
Fields§
§position_id: PositionId§symbol: String§side: Side§group: Option<GroupId>§entry_price: f64Campaign entry basis, size-weighted across the basis recorded at each close event. This preserves a shared basis while reflecting average-cost changes after scale-ins.
avg_exit_price: f64Size-weighted average exit price across all closes.
original_size: f64Total size across all close events.
close_count: usizeNumber of close events (partial + final).
net_pnl: f64Net P&L across all close events.
close_reasons: Vec<CloseReason>Ordered list of close reasons.
open_ts: NaiveDateTimeWhen the position was opened.
final_close_ts: NaiveDateTimeWhen the last close event occurred.
duration_seconds: i64Total holding duration in seconds.
Implementations§
Source§impl PositionSummary
impl PositionSummary
Sourcepub fn from_trades(trades: &[&TradeResult]) -> Self
pub fn from_trades(trades: &[&TradeResult]) -> Self
Build a summary from all trade results for one position.
Trait Implementations§
Source§impl Clone for PositionSummary
impl Clone for PositionSummary
Source§impl Debug for PositionSummary
impl Debug for PositionSummary
Source§impl<'de> Deserialize<'de> for PositionSummary
impl<'de> Deserialize<'de> for PositionSummary
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
Auto Trait Implementations§
impl Freeze for PositionSummary
impl RefUnwindSafe for PositionSummary
impl Send for PositionSummary
impl Sync for PositionSummary
impl Unpin for PositionSummary
impl UnsafeUnpin for PositionSummary
impl UnwindSafe for PositionSummary
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