Struct FeatureEngineBuilder

Source
pub struct FeatureEngineBuilder { /* private fields */ }
Expand description

Builder for creating feature engines with common HFT features

Implementations§

Source§

impl FeatureEngineBuilder

Source

pub fn new(mode: CalculationMode) -> Self

Creates a new FeatureEngineBuilder with the given calculation mode.

Source

pub fn with_ofi(self, window_size: usize, capacity: usize) -> Self

Add OFI feature with configurable capacity

This method allows you to specify both the window size and the capacity for the order book levels. The capacity determines how many bid/ask levels can be stored inline without heap allocation.

§Arguments
  • window_size - The size of the rolling window for OFI calculation
  • capacity - The maximum number of order book levels to store inline
§Supported Capacities

Common capacities are optimized for specific use cases:

  • 5: Top-of-book strategies
  • 8: Lightweight strategies
  • 16: Compact strategies
  • 32: Standard market making (default)
  • 64: Deep market making
  • 128: Full depth analysis
§Examples
// Default capacity (32)
let engine = FeatureEngineBuilder::new(CalculationMode::RealTime)
    .with_ofi(10, 32)
    .build();

// High-frequency market maker needing more levels
let engine = FeatureEngineBuilder::new(CalculationMode::RealTime)
    .with_ofi(10, 64)
    .build();
Source

pub fn with_ofi_default(self, window_size: usize) -> Self

Add OFI feature with default capacity (32) for backward compatibility

This is a convenience method that uses the default capacity of 32 levels. For custom capacities, use with_ofi(window_size, capacity) instead.

Source

pub fn with_ofi_5(self, window_size: usize) -> Self

Add OFI feature with 5 levels capacity (top-of-book strategies)

Source

pub fn with_ofi_8(self, window_size: usize) -> Self

Add OFI feature with 8 levels capacity (lightweight strategies)

Source

pub fn with_ofi_16(self, window_size: usize) -> Self

Add OFI feature with 16 levels capacity (compact strategies)

Source

pub fn with_ofi_32(self, window_size: usize) -> Self

Add OFI feature with 32 levels capacity (standard market making)

Source

pub fn with_ofi_64(self, window_size: usize) -> Self

Add OFI feature with 64 levels capacity (deep market making)

Source

pub fn with_ofi_128(self, window_size: usize) -> Self

Add OFI feature with 128 levels capacity (full depth analysis)

Source

pub fn with_vpin(self, bucket_size: usize) -> Self

Add VPIN feature

Source

pub fn with_kyle_lambda(self, window_size: usize) -> Self

Add Kyle’s Lambda feature

Source

pub fn with_book_slope(self, depth: usize) -> Self

Add Order Book Slope feature

Source

pub fn build(self) -> FeatureEngine

Build the feature engine

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,