pub struct AvellanedaStoikovHawkesStrategy {
pub params: AvellanedaStoikovHawkesParameters,
pub bid_spread_table: Arc<LookupTable>,
pub ask_spread_table: Arc<LookupTable>,
/* private fields */
}Expand description
Avellaneda-Stoikov strategy driven by precomputed FDM Hawkes spreads.
On every tick the strategy:
- Reads
hawkes_intensityfromobs.parameters(injected by the engine fromStochasticMatcher::augment_parameters). - Interpolates the FDM spread tables at
(q, lambda, tau). - Places bid/ask orders at
mid +/- interpolated_spread.
§Table format
Both tables must be 3-dimensional with axes [q, lambda, tau]:
- axis 0: inventory grid (same range used by the FDM solver, e.g. -10..10)
- axis 1: Hawkes intensity grid (e.g. 0.0 .. lambda_max)
- axis 2: time remaining in seconds (0.0 .. T, increasing)
Use examples/gen_hawkes_table.rs to generate compatible .bin files.
Fields§
§params: AvellanedaStoikovHawkesParameters§bid_spread_table: Arc<LookupTable>3D lookup table for the bid half-spread: axes [q, lambda, tau].
ask_spread_table: Arc<LookupTable>3D lookup table for the ask half-spread: axes [q, lambda, tau].
Implementations§
Source§impl AvellanedaStoikovHawkesStrategy
impl AvellanedaStoikovHawkesStrategy
pub fn new( params: AvellanedaStoikovHawkesParameters, bid_spread_table: Arc<LookupTable>, ask_spread_table: Arc<LookupTable>, ) -> Self
Trait Implementations§
Source§impl Clone for AvellanedaStoikovHawkesStrategy
impl Clone for AvellanedaStoikovHawkesStrategy
Source§fn clone(&self) -> AvellanedaStoikovHawkesStrategy
fn clone(&self) -> AvellanedaStoikovHawkesStrategy
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 AvellanedaStoikovHawkesStrategy
impl Strategy for AvellanedaStoikovHawkesStrategy
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 AvellanedaStoikovHawkesStrategy
impl RefUnwindSafe for AvellanedaStoikovHawkesStrategy
impl Send for AvellanedaStoikovHawkesStrategy
impl Sync for AvellanedaStoikovHawkesStrategy
impl Unpin for AvellanedaStoikovHawkesStrategy
impl UnsafeUnpin for AvellanedaStoikovHawkesStrategy
impl UnwindSafe for AvellanedaStoikovHawkesStrategy
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