pub struct PositionManager;Implementations§
Source§impl PositionManager
impl PositionManager
Sourcepub fn open_position(
trader: Pubkey,
market_id: Pubkey,
side: PositionSide,
size: u64,
entry_price: u64,
collateral: u64,
leverage: u8,
) -> Result<Position>
pub fn open_position( trader: Pubkey, market_id: Pubkey, side: PositionSide, size: u64, entry_price: u64, collateral: u64, leverage: u8, ) -> Result<Position>
Open a new position
Sourcepub fn calculate_pnl(position: &Position, current_price: u64) -> Result<i64>
pub fn calculate_pnl(position: &Position, current_price: u64) -> Result<i64>
Calculate unrealized P&L for a position
Sourcepub fn calculate_pnl_percent(pnl: i64, collateral: u64) -> Result<i32>
pub fn calculate_pnl_percent(pnl: i64, collateral: u64) -> Result<i32>
Calculate P&L percentage
Sourcepub fn calculate_unrealized_margin(
position: &Position,
current_price: u64,
) -> Result<u64>
pub fn calculate_unrealized_margin( position: &Position, current_price: u64, ) -> Result<u64>
Calculate unrealized margin
Sourcepub fn can_close_position(position: &Position) -> Result<bool>
pub fn can_close_position(position: &Position) -> Result<bool>
Check if position can be closed
Sourcepub fn close_position(
position: &mut Position,
exit_price: u64,
) -> Result<(i64, u64)>
pub fn close_position( position: &mut Position, exit_price: u64, ) -> Result<(i64, u64)>
Close a position and calculate settlement
Sourcepub fn update_position_price(
position: &mut Position,
new_price: u64,
) -> Result<u16>
pub fn update_position_price( position: &mut Position, new_price: u64, ) -> Result<u16>
Update position price and calculate health factor
Sourcepub fn calculate_health_factor(
position: &Position,
current_price: u64,
) -> Result<u16>
pub fn calculate_health_factor( position: &Position, current_price: u64, ) -> Result<u16>
Calculate health factor (0-10000 = 0-100%)
Sourcepub fn is_liquidatable(position: &Position, current_price: u64) -> Result<bool>
pub fn is_liquidatable(position: &Position, current_price: u64) -> Result<bool>
Check if position should be liquidated
Sourcepub fn calculate_position_value(position: &Position) -> Result<u64>
pub fn calculate_position_value(position: &Position) -> Result<u64>
Calculate position value
Sourcepub fn calculate_exposure(position: &Position) -> Result<u64>
pub fn calculate_exposure(position: &Position) -> Result<u64>
Calculate position exposure (size * leverage)
Auto Trait Implementations§
impl Freeze for PositionManager
impl RefUnwindSafe for PositionManager
impl Send for PositionManager
impl Sync for PositionManager
impl Unpin for PositionManager
impl UnsafeUnpin for PositionManager
impl UnwindSafe for PositionManager
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
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>
Converts
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>
Converts
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