pub struct ClosedPosition {
Show 27 fields pub owner: Addr, pub id: PositionId, pub direction_to_base: DirectionToBase, pub created_at: Timestamp, pub price_point_created_at: Option<Timestamp>, pub liquifunded_at: Timestamp, pub trading_fee_collateral: Collateral, pub trading_fee_usd: Usd, pub funding_fee_collateral: Signed<Collateral>, pub funding_fee_usd: Signed<Usd>, pub borrow_fee_collateral: Collateral, pub borrow_fee_usd: Usd, pub crank_fee_collateral: Collateral, pub crank_fee_usd: Usd, pub delta_neutrality_fee_collateral: Signed<Collateral>, pub delta_neutrality_fee_usd: Signed<Usd>, pub deposit_collateral: Signed<Collateral>, pub deposit_collateral_usd: Signed<Usd>, pub active_collateral: Collateral, pub pnl_collateral: Signed<Collateral>, pub pnl_usd: Signed<Usd>, pub notional_size: Signed<Notional>, pub entry_price_base: PriceBaseInQuote, pub close_time: Timestamp, pub settlement_time: Timestamp, pub reason: PositionCloseReason, pub liquidation_margin: Option<LiquidationMargin>,
Expand description

Information on a closed position


§owner: Addr

Owner at the time the position closed

§id: PositionId

ID of the position

§direction_to_base: DirectionToBase

Direction (to base) of the position

§created_at: Timestamp

Timestamp the position was created, block time.

§price_point_created_at: Option<Timestamp>

Timestamp of the price point used for creating this position.

§liquifunded_at: Timestamp

Timestamp of the last liquifunding

§trading_fee_collateral: Collateral

The one-time fee paid when opening or updating a position

this value is the current balance, including all updates

§trading_fee_usd: Usd

Cumulative trading fees expressed in USD

§funding_fee_collateral: Signed<Collateral>

The ongoing fee paid (and earned!) between positions to incentivize keeping longs and shorts in balance which in turn reduces risk for LPs

This value is the current balance, not a historical record of each payment

§funding_fee_usd: Signed<Usd>

Cumulative funding fee in USD

§borrow_fee_collateral: Collateral

The ongoing fee paid to LPs to lock up their deposit as counter-size collateral in this position

This value is the current balance, not a historical record of each payment

§borrow_fee_usd: Usd

Cumulative borrow fee in USD

§crank_fee_collateral: Collateral

Cumulative amount of crank fees paid by the position

§crank_fee_usd: Usd

Cumulative crank fees in USD

§delta_neutrality_fee_collateral: Signed<Collateral>

Cumulative amount of delta neutrality fees paid by (or received by) the position.

Positive == outgoing, negative == incoming, like funding_fee.

§delta_neutrality_fee_usd: Signed<Usd>

Cumulative delta neutrality fee in USD

§deposit_collateral: Signed<Collateral>

Deposit collateral for the position.

This includes any updates from collateral being added or removed.

§deposit_collateral_usd: Signed<Usd>

Deposit collateral in USD, using cost basis analysis.

§active_collateral: Collateral

Final active collateral, the amount sent back to the trader on close

§pnl_collateral: Signed<Collateral>

Profit or loss of the position in terms of collateral.

This is the final collateral send to the trader minus all deposits (including updates).

§pnl_usd: Signed<Usd>

Profit or loss, in USD

This is not simply the PnL in collateral converted to USD. It converts each individual event to a USD representation using the historical timestamp. This can be viewed as a cost basis view of PnL.

§notional_size: Signed<Notional>

The notional size of the position at close.

§entry_price_base: PriceBaseInQuote

Entry price

§close_time: Timestamp

the time at which the position is actually closed

This will always be the block time when the crank closed the position, whether via liquidation, deferred execution of a ClosePosition call, or liquifunding.

§settlement_time: Timestamp

needed for calculating final settlement amounts if by user: same as close time if by liquidation: first time position became liquidatable

§reason: PositionCloseReason

the reason the position is closed

§liquidation_margin: Option<LiquidationMargin>

liquidation margin at the time of close Optional for the sake of backwards-compatibility

Trait Implementations§


impl Clone for ClosedPosition


fn clone(&self) -> ClosedPosition

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

impl Debug for ClosedPosition


fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

impl<'de> Deserialize<'de> for ClosedPosition


fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

impl JsonSchema for ClosedPosition


fn schema_name() -> String

The name of the generated JSON Schema. Read more

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more

impl PartialEq for ClosedPosition


fn eq(&self, other: &ClosedPosition) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

impl Serialize for ClosedPosition


fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

impl StructuralPartialEq for ClosedPosition

Auto Trait Implementations§

Blanket Implementations§


impl<T> Any for Twhere T: 'static + ?Sized,


fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more

impl<U> As for U


fn as_<T>(self) -> Twhere T: CastFrom<U>,

Casts self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read more

impl<T> Borrow<T> for Twhere T: ?Sized,


fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for Twhere T: ?Sized,


fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more

impl<T> DynClone for Twhere T: Clone,


fn __clone_box(&self, _: Private) -> *mut ()


impl<T> From<T> for T


fn from(t: T) -> T

Returns the argument unchanged.


impl<T, U> Into<U> for Twhere U: From<T>,


fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.


impl<T> QueryResultExt for Twhere T: Serialize,


fn query_result(&self) -> Result<Binary, Error>

Convert the value to its JSON representation

impl<T> Same for T


type Output = T

Should always be Self

impl<T> ToOwned for Twhere T: Clone,


type Owned = T

The resulting type after obtaining ownership.

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for Twhere U: Into<T>,


type Error = Infallible

The type returned in the event of a conversion error.

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,


type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

impl<T> DeserializeOwned for Twhere T: for<'de> Deserialize<'de>,