pub struct KellyStrategy {
pub params: KellyParameters,
/* private fields */
}Expand description
Kelly criterion market-making strategy (CARA-based approximation).
Approximation, not a rigorous solution. This strategy uses the CARA (exponential) utility ansatz from the Avellaneda-Stoikov model and shifts the reservation price toward the Kelly target inventory q* = mu/(gamma*sigma^2). It does not solve the true log-utility HJB. The Kelly target matches the CARA-optimal position to first order, but the spread dynamics and value-function curvature are CARA, not log-utility.
A rigorous Kelly HJB solver (log-utility without the CARA separation) is
planned for a future phase. See reference/optimal_criteria.md.
Fields§
§params: KellyParametersImplementations§
Source§impl KellyStrategy
impl KellyStrategy
pub fn new(params: KellyParameters) -> Self
pub fn with_window_size(self, window_size: usize) -> Self
Trait Implementations§
Source§impl Strategy for KellyStrategy
impl Strategy for KellyStrategy
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 KellyStrategy
impl RefUnwindSafe for KellyStrategy
impl Send for KellyStrategy
impl Sync for KellyStrategy
impl Unpin for KellyStrategy
impl UnsafeUnpin for KellyStrategy
impl UnwindSafe for KellyStrategy
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> 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