pub struct AvellanedaStoikovExactStrategy {
pub params: AvellanedaStoikovExactParameters,
pub bid_spread_table: Arc<LookupTable>,
pub ask_spread_table: Arc<LookupTable>,
/* private fields */
}Expand description
Avellaneda-Stoikov strategy driven by the exact GBM matrix-ODE solution.
On every tick the strategy:
- Computes tau = t_horizon - elapsed_seconds.
- Interpolates the 2-D spread tables at (q, tau).
- Places bid/ask orders at mid +/- interpolated_spread.
§Table format
Both tables must be 2-dimensional with axes [q, tau]:
- axis 0: inventory grid (e.g. -10..10)
- axis 1: time remaining in model seconds (0.0..T, increasing)
Use gen_as_spread_tables from the Python bindings to generate compatible tables.
Fields§
§params: AvellanedaStoikovExactParameters§bid_spread_table: Arc<LookupTable>2D lookup table for the bid half-spread: axes [q, tau].
ask_spread_table: Arc<LookupTable>2D lookup table for the ask half-spread: axes [q, tau].
Implementations§
Source§impl AvellanedaStoikovExactStrategy
impl AvellanedaStoikovExactStrategy
pub fn new( params: AvellanedaStoikovExactParameters, bid_spread_table: Arc<LookupTable>, ask_spread_table: Arc<LookupTable>, ) -> Self
Trait Implementations§
Source§impl Clone for AvellanedaStoikovExactStrategy
impl Clone for AvellanedaStoikovExactStrategy
Source§fn clone(&self) -> AvellanedaStoikovExactStrategy
fn clone(&self) -> AvellanedaStoikovExactStrategy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Strategy for AvellanedaStoikovExactStrategy
impl Strategy for AvellanedaStoikovExactStrategy
Source§fn on_tick(&mut self, obs: &Observation, requests: &mut Vec<OrderRequest>)
fn on_tick(&mut self, obs: &Observation, requests: &mut Vec<OrderRequest>)
Called each tick with the agent’s filtered observation.
Appends order requests (New, Cancel, CancelAll) to the provided buffer.
Source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
Downcast helper — returns
self as &mut dyn Any.Auto Trait Implementations§
impl Freeze for AvellanedaStoikovExactStrategy
impl RefUnwindSafe for AvellanedaStoikovExactStrategy
impl Send for AvellanedaStoikovExactStrategy
impl Sync for AvellanedaStoikovExactStrategy
impl Unpin for AvellanedaStoikovExactStrategy
impl UnsafeUnpin for AvellanedaStoikovExactStrategy
impl UnwindSafe for AvellanedaStoikovExactStrategy
Blanket Implementations§
impl<T> Allocation for T
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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