pub struct Position {
pub quantity: Decimal,
pub entry_price: Option<Decimal>,
pub unrealized_pnl: Option<Decimal>,
pub margin_used: Option<Decimal>,
pub liquidation_price: Option<Decimal>,
pub leverage: Option<Decimal>,
pub time_exchange: DateTime<Utc>,
}Expand description
Represents an open position in a derivative instrument (perpetuals, futures, margin).
For spot instruments, positions are implicit in asset balances — this struct is only used for instruments that track position state separately from cash balances.
Fields§
§quantity: DecimalSigned quantity: positive = long, negative = short, zero = flat.
Using signed quantity is the industry standard for derivatives and avoids
a separate side field.
entry_price: Option<Decimal>Average entry price. None if position is flat or entry price unavailable.
unrealized_pnl: Option<Decimal>Unrealized PnL in quote currency. None if not provided by exchange.
margin_used: Option<Decimal>Margin/collateral allocated to this position. None if not applicable.
liquidation_price: Option<Decimal>Liquidation price. None for cross-margin or if not provided.
leverage: Option<Decimal>Leverage setting. None if not applicable (e.g., spot-margin).
time_exchange: DateTime<Utc>Exchange timestamp when this position state was reported.
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Position
impl<'de> Deserialize<'de> for Position
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 Ord for Position
impl Ord for Position
Source§impl PartialOrd for Position
impl PartialOrd for Position
impl Eq for Position
impl StructuralPartialEq for Position
Auto Trait Implementations§
impl Freeze for Position
impl RefUnwindSafe for Position
impl Send for Position
impl Sync for Position
impl Unpin for Position
impl UnsafeUnpin for Position
impl UnwindSafe for Position
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<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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