Skip to main content

PreCheckResult

Struct PreCheckResult 

Source
pub struct PreCheckResult {
    pub order_id: String,
    pub order_link_id: String,
    pub pre_imr_e4: i64,
    pub pre_mmr_e4: i64,
    pub post_imr_e4: i64,
    pub post_mmr_e4: i64,
}
Expand description

Represents the result of a pre-check order request from Bybit.

This struct captures the margin calculation results before and after placing an order, allowing bots to assess the impact on initial margin requirement (IMR) and maintenance margin requirement (MMR). The values are expressed in basis points (e.g., 30 means 0.30%). Bots should use this to validate order feasibility and manage risk in perpetual futures trading.

Fields§

§order_id: String

Unique order identifier assigned by Bybit.

This ID can be used to reference the order in subsequent API calls. Bots should store this for tracking and reconciliation purposes.

§order_link_id: String

User-defined custom order identifier.

Allows bots to tag orders with a custom ID for internal tracking and management. This is particularly useful for correlating pre-check results with actual order placement.

§pre_imr_e4: i64

Initial margin rate before placing the order, expressed in basis points (1/10000).

For example, a value of 30 represents an IMR of 30/10000 = 0.30%. Bots should compare this with post_imr_e4 to understand how the order affects margin requirements.

§pre_mmr_e4: i64

Maintenance margin rate before placing the order, expressed in basis points (1/10000).

For example, a value of 21 represents an MMR of 21/10000 = 0.21%. This indicates the minimum margin required to maintain the position before order placement.

§post_imr_e4: i64

Initial margin rate after placing the order, expressed in basis points (1/10000).

This calculated value shows the projected IMR if the order is executed. Bots should ensure this remains within acceptable limits to avoid margin calls in perpetual futures.

§post_mmr_e4: i64

Maintenance margin rate after placing the order, expressed in basis points (1/10000).

This calculated value shows the projected MMR if the order is executed. Bots should monitor this to prevent liquidation risks in volatile perpetual futures markets.

Trait Implementations§

Source§

impl Clone for PreCheckResult

Source§

fn clone(&self) -> PreCheckResult

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for PreCheckResult

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for PreCheckResult

Source§

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

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for PreCheckResult

Source§

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

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

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

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

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

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

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