bat_markets_core/
position.rs1use 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#[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}