BarAggregator

Trait BarAggregator 

Source
pub trait BarAggregator: Any + Debug {
Show 15 methods // Required methods fn bar_type(&self) -> BarType; fn is_running(&self) -> bool; fn set_is_running(&mut self, value: bool); fn update(&mut self, price: Price, size: Quantity, ts_init: UnixNanos); fn update_bar(&mut self, bar: Bar, volume: Quantity, ts_init: UnixNanos); // Provided methods fn handle_quote(&mut self, quote: QuoteTick) { ... } fn handle_trade(&mut self, trade: TradeTick) { ... } fn handle_bar(&mut self, bar: Bar) { ... } fn stop(&mut self) { ... } fn set_historical_mode( &mut self, _historical_mode: bool, _handler: Box<dyn FnMut(Bar)>, ) { ... } fn set_historical_events(&mut self, _events: Vec<TimeEvent>) { ... } fn set_clock(&mut self, _clock: Rc<RefCell<dyn Clock>>) { ... } fn build_bar(&mut self, _event: TimeEvent) { ... } fn start_timer( &mut self, _aggregator_rc: Option<Rc<RefCell<Box<dyn BarAggregator>>>>, ) { ... } fn set_aggregator_weak( &mut self, _weak: Weak<RefCell<Box<dyn BarAggregator>>>, ) { ... }
}
Expand description

Trait for aggregating incoming price and trade events into time-, tick-, volume-, or value-based bars.

Implementors receive updates and produce completed bars via handlers.

Required Methods§

Source

fn bar_type(&self) -> BarType

The BarType to be aggregated.

Source

fn is_running(&self) -> bool

If the aggregator is running and will receive data from the message bus.

Source

fn set_is_running(&mut self, value: bool)

Sets the running state of the aggregator (receiving updates when true).

Source

fn update(&mut self, price: Price, size: Quantity, ts_init: UnixNanos)

Updates the aggregator with the given price and size.

Source

fn update_bar(&mut self, bar: Bar, volume: Quantity, ts_init: UnixNanos)

Provided Methods§

Source

fn handle_quote(&mut self, quote: QuoteTick)

Updates the aggregator with the given quote.

Source

fn handle_trade(&mut self, trade: TradeTick)

Updates the aggregator with the given trade.

Source

fn handle_bar(&mut self, bar: Bar)

Updates the aggregator with the given bar.

Source

fn stop(&mut self)

Stop the aggregator, e.g., cancel timers. Default is no-op.

Source

fn set_historical_mode( &mut self, _historical_mode: bool, _handler: Box<dyn FnMut(Bar)>, )

Sets historical mode (default implementation does nothing, TimeBarAggregator overrides)

Source

fn set_historical_events(&mut self, _events: Vec<TimeEvent>)

Sets historical events (default implementation does nothing, TimeBarAggregator overrides)

Source

fn set_clock(&mut self, _clock: Rc<RefCell<dyn Clock>>)

Sets clock for time bar aggregators (default implementation does nothing, TimeBarAggregator overrides)

Source

fn build_bar(&mut self, _event: TimeEvent)

Builds a bar from a time event (default implementation does nothing, TimeBarAggregator overrides)

Source

fn start_timer( &mut self, _aggregator_rc: Option<Rc<RefCell<Box<dyn BarAggregator>>>>, )

Starts the timer for time bar aggregators. Default implementation does nothing, TimeBarAggregator overrides. Takes an optional Rc to create weak reference internally.

Source

fn set_aggregator_weak(&mut self, _weak: Weak<RefCell<Box<dyn BarAggregator>>>)

Sets the weak reference to the aggregator wrapper (for historical mode). Default implementation does nothing, TimeBarAggregator overrides.

Implementations§

Source§

impl dyn BarAggregator

Source

pub fn as_any(&self) -> &dyn Any

Returns a reference to this aggregator as Any for downcasting.

Source

pub fn as_any_mut(&mut self) -> &mut dyn Any

Returns a mutable reference to this aggregator as Any for downcasting.

Implementors§