pub struct AvellanedaGueant {
pub gamma: f64,
pub sigma: f64,
pub kappa: f64,
pub a: f64,
}Expand description
The asymptotic approximation (infinite horizon) for the Avellaneda-Stoikov model. Based on the Gueant-Lehalle-Tapia closed-form solution.
Reference: Guéant, O., Lehalle, C. A., & Tapia, J. (2013). Dealing with the inventory risk: a solution to the market making problem.
Fields§
§gamma: f64§sigma: f64§kappa: f64§a: f64Implementations§
Source§impl AvellanedaGueant
impl AvellanedaGueant
pub fn new(gamma: f64, sigma: f64, kappa: f64, a: f64) -> Self
Sourcepub fn approximate_spreads(&self, q: f64) -> (f64, f64)
pub fn approximate_spreads(&self, q: f64) -> (f64, f64)
Guéant-Lehalle-Tapia closed-form approximation for optimal spreads.
This approximation assumes infinite time horizon ($T \to \infty$) and small spreads, providing a stationary strategy that depends on inventory $q$ but not time $t$.
The spreads are symmetric around the mid-price, shifted by inventory: $\delta^\pm(q) \approx \text{RiskNeutral} \pm \text{InventorySkew} \cdot q$
Reference: Guéant, O., Lehalle, C. A., & Tapia, J. (2013). Dealing with the inventory risk.
Trait Implementations§
Source§impl AnalyticalSolution<2> for AvellanedaGueant
impl AnalyticalSolution<2> for AvellanedaGueant
Source§fn value_function(&self, _t: f64, _state: &[f64; 2]) -> f64
fn value_function(&self, _t: f64, _state: &[f64; 2]) -> f64
Returns the theoretical value function V(t, state)
Source§fn optimal_controls(&self, _t: f64, state: &[f64; 2]) -> ControlOutput<2>
fn optimal_controls(&self, _t: f64, state: &[f64; 2]) -> ControlOutput<2>
Returns the optimal controls (intensities/spreads) at (t, state)
Auto Trait Implementations§
impl Freeze for AvellanedaGueant
impl RefUnwindSafe for AvellanedaGueant
impl Send for AvellanedaGueant
impl Sync for AvellanedaGueant
impl Unpin for AvellanedaGueant
impl UnsafeUnpin for AvellanedaGueant
impl UnwindSafe for AvellanedaGueant
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more