pub struct AvellanedaStoikovHestonStrategy {
pub params: AvellanedaStoikovHestonParameters,
pub bid_spread_table: Arc<LookupTable>,
pub ask_spread_table: Arc<LookupTable>,
/* private fields */
}Expand description
Avellaneda-Stoikov strategy driven by precomputed FDM Heston spreads.
On every tick the strategy:
- Reads variance v = obs.volatility^2 (obs.volatility = sqrt(v_t) from HestonProcess).
- Interpolates the FDM spread tables at (q, v, tau).
- Places bid/ask orders at mid +/- interpolated_spread.
§Table format
Both tables must be 3-dimensional with axes [q, v, tau]:
- axis 0: inventory grid (e.g. -10..10)
- axis 1: variance grid (e.g. 0.0001..0.05, matching v_theta of the Heston model)
- axis 2: time remaining in model seconds (0.0..T_HORIZON, increasing)
Use build_heston_tables from heston_param_sweep.rs to generate compatible tables.
Fields§
§params: AvellanedaStoikovHestonParameters§bid_spread_table: Arc<LookupTable>3D lookup table for the bid half-spread: axes [q, v, tau].
ask_spread_table: Arc<LookupTable>3D lookup table for the ask half-spread: axes [q, v, tau].
Implementations§
Source§impl AvellanedaStoikovHestonStrategy
impl AvellanedaStoikovHestonStrategy
pub fn new( params: AvellanedaStoikovHestonParameters, bid_spread_table: Arc<LookupTable>, ask_spread_table: Arc<LookupTable>, ) -> Self
Trait Implementations§
Source§impl Clone for AvellanedaStoikovHestonStrategy
impl Clone for AvellanedaStoikovHestonStrategy
Source§fn clone(&self) -> AvellanedaStoikovHestonStrategy
fn clone(&self) -> AvellanedaStoikovHestonStrategy
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 AvellanedaStoikovHestonStrategy
impl Strategy for AvellanedaStoikovHestonStrategy
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 AvellanedaStoikovHestonStrategy
impl RefUnwindSafe for AvellanedaStoikovHestonStrategy
impl Send for AvellanedaStoikovHestonStrategy
impl Sync for AvellanedaStoikovHestonStrategy
impl Unpin for AvellanedaStoikovHestonStrategy
impl UnsafeUnpin for AvellanedaStoikovHestonStrategy
impl UnwindSafe for AvellanedaStoikovHestonStrategy
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