pub enum ExecutionCostModel {
Fixed(f64),
Proportional(f64),
Tiered(Vec<(f64, f64)>),
ZeroCommission,
}Expand description
Commission model variants for execution cost estimation.
§Example
use fin_primitives::execution_cost::ExecutionCostModel;
let fixed = ExecutionCostModel::Fixed(5.0);
let prop = ExecutionCostModel::Proportional(10.0); // 10 bps
let zero = ExecutionCostModel::ZeroCommission;Variants§
Fixed(f64)
Flat commission in USD per trade.
Proportional(f64)
Commission as a proportion of notional value, in basis points.
Tiered(Vec<(f64, f64)>)
Tiered commission: Vec of (notional_threshold_usd, rate_bps).
The applicable tier is the last tier whose threshold is <= notional.
ZeroCommission
No commission (e.g. payment-for-order-flow brokers).
Implementations§
Source§impl ExecutionCostModel
impl ExecutionCostModel
Sourcepub fn commission_usd(&self, notional: f64) -> f64
pub fn commission_usd(&self, notional: f64) -> f64
Compute commission in USD for a given notional value.
Trait Implementations§
Source§impl Clone for ExecutionCostModel
impl Clone for ExecutionCostModel
Source§impl Debug for ExecutionCostModel
impl Debug for ExecutionCostModel
Source§impl PartialEq for ExecutionCostModel
impl PartialEq for ExecutionCostModel
impl StructuralPartialEq for ExecutionCostModel
Auto Trait Implementations§
impl Freeze for ExecutionCostModel
impl RefUnwindSafe for ExecutionCostModel
impl Send for ExecutionCostModel
impl Sync for ExecutionCostModel
impl Unpin for ExecutionCostModel
impl UnsafeUnpin for ExecutionCostModel
impl UnwindSafe for ExecutionCostModel
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