Skip to main content

TurnoverOptimizer

Struct TurnoverOptimizer 

Source
pub struct TurnoverOptimizer;
Expand description

Finds the minimal set of trades that moves a portfolio from current weights to target weights while keeping total execution cost low.

§Algorithm

  1. For each symbol in the union of current and target weights, compute the weight delta Δw = target - current.
  2. If |Δw| < tolerance, skip (already within band).
  3. Otherwise add a Trade with the estimated cost for a unit-notional order sized proportionally to |Δw|.
  4. Trades are sorted by |Δw| descending (largest rebalance first).

Implementations§

Source§

impl TurnoverOptimizer

Source

pub fn optimize( current: &HashMap<String, f64>, target: &HashMap<String, f64>, cost_params: &CostParams, tolerance: f64, ) -> Vec<Trade>

Generate the minimal set of trades to rebalance from current to target.

tolerance is the minimum absolute weight change that warrants a trade (e.g. 0.005 = 50 bps). Smaller changes are ignored to avoid excessive round-trip cost.

cost_params are used to estimate the cost of each trade assuming a unit notional of $1, with shares = |Δw| / price where price is set to 1.0 for weight-space estimation.

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.