Skip to main content

TotalExecutionCost

Struct TotalExecutionCost 

Source
pub struct TotalExecutionCost;
Expand description

Computes the full execution cost breakdown for an order.

§Example

use fin_primitives::execution_cost::{TotalExecutionCost, ExecutionCostModel};

let breakdown = TotalExecutionCost::compute(
    1000.0,   // size
    150.0,    // price
    &ExecutionCostModel::Proportional(5.0), // 5 bps commission
    149.90,   // bid
    150.10,   // ask
    1_000_000.0, // daily volume
    0.02,     // sigma (daily vol)
);
assert!(breakdown.total_usd > 0.0);

Implementations§

Source§

impl TotalExecutionCost

Source

pub fn compute( size: f64, price: f64, commission_model: &ExecutionCostModel, bid: f64, ask: f64, volume: f64, sigma: f64, ) -> ExecutionCostBreakdown

Compute the total execution cost breakdown.

Uses the square-root (Kyle-style) model for market impact with eta = 0.1.

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.