Skip to main content

bat_markets_core/
position.rs

1use serde::{Deserialize, Serialize};
2
3use crate::ids::{InstrumentId, PositionId};
4use crate::numeric::{Amount, Leverage, Price, Quantity};
5use crate::primitives::TimestampMs;
6use crate::types::{MarginMode, PositionDirection, PositionMode};
7
8/// Unified futures position snapshot.
9#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
10pub struct Position {
11    pub position_id: PositionId,
12    pub instrument_id: InstrumentId,
13    pub direction: PositionDirection,
14    pub size: Quantity,
15    pub entry_price: Option<Price>,
16    pub mark_price: Option<Price>,
17    pub unrealized_pnl: Option<Amount>,
18    pub leverage: Option<Leverage>,
19    pub margin_mode: MarginMode,
20    pub position_mode: PositionMode,
21    pub updated_at: TimestampMs,
22}