TwapAlgorithm

Struct TwapAlgorithm 

Source
pub struct TwapAlgorithm {
    pub core: ExecutionAlgorithmCore,
    /* private fields */
}
Expand description

Time-Weighted Average Price (TWAP) execution algorithm.

Executes orders by evenly spreading them over a specified time horizon, at regular intervals. The algorithm receives a primary order and spawns smaller child orders that are executed at regular intervals.

Fields§

§core: ExecutionAlgorithmCore

The algorithm core.

Implementations§

Source§

impl TwapAlgorithm

Source

pub fn new(config: TwapAlgorithmConfig) -> Self

Creates a new TwapAlgorithm instance.

Methods from Deref<Target = DataActorCore>§

pub fn mem_address(&self) -> String

Returns the memory address of this instance as a hexadecimal string.

pub fn state(&self) -> ComponentState

Returns the actors state.

pub fn trader_id(&self) -> Option<TraderId>

Returns the trader ID this actor is registered to.

pub fn actor_id(&self) -> ActorId

Returns the actors ID.

pub fn timestamp_ns(&self) -> UnixNanos

Returns a UNIX nanoseconds timestamp from the actor’s internal clock.

pub fn clock(&mut self) -> RefMut<'_, dyn Clock + 'static>

Returns the clock for the actor (if registered).

§Panics

Panics if the actor has not been registered with a trader.

pub fn clock_rc(&self) -> Rc<RefCell<dyn Clock>>

Returns a clone of the reference-counted clock.

§Panics

Panics if the actor has not yet been registered (clock is None).

pub fn cache(&self) -> Ref<'_, Cache>

Returns a read-only reference to the cache.

§Panics

Panics if the actor has not yet been registered (cache is None).

pub fn cache_rc(&self) -> Rc<RefCell<Cache>>

Returns a clone of the reference-counted cache.

§Panics

Panics if the actor has not yet been registered (cache is None).

pub fn register( &mut self, trader_id: TraderId, clock: Rc<RefCell<dyn Clock>>, cache: Rc<RefCell<Cache>>, ) -> Result<(), Error>

Register the data actor with a trader.

§Errors

Returns an error if the actor has already been registered with a trader or if the provided dependencies are invalid.

pub fn register_warning_event(&mut self, event_type: &str)

Register an event type for warning log levels.

pub fn deregister_warning_event(&mut self, event_type: &str)

Deregister an event type from warning log levels.

pub fn is_registered(&self) -> bool

pub fn shutdown_system(&self, reason: Option<String>)

Sends a shutdown command to the system with an optional reason.

§Panics

Panics if the actor is not registered or has no trader ID.

pub fn subscribe_data( &mut self, handler: ShareableMessageHandler, data_type: DataType, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering data subscriptions from the trait.

§Panics

Panics if the actor is not properly registered.

pub fn subscribe_quotes( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering quotes subscriptions from the trait.

pub fn subscribe_instruments( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, venue: Venue, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering instruments subscriptions from the trait.

pub fn subscribe_instrument( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering instrument subscriptions from the trait.

pub fn subscribe_book_deltas( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, book_type: BookType, depth: Option<NonZero<usize>>, client_id: Option<ClientId>, managed: bool, params: Option<IndexMap<String, String>>, )

Helper method for registering book deltas subscriptions from the trait.

pub fn subscribe_book_at_interval( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, book_type: BookType, depth: Option<NonZero<usize>>, interval_ms: NonZero<usize>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering book snapshots subscriptions from the trait.

pub fn subscribe_trades( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering trades subscriptions from the trait.

pub fn subscribe_bars( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, bar_type: BarType, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering bars subscriptions from the trait.

pub fn subscribe_mark_prices( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering mark prices subscriptions from the trait.

pub fn subscribe_index_prices( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering index prices subscriptions from the trait.

pub fn subscribe_funding_rates( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering funding rates subscriptions from the trait.

pub fn subscribe_instrument_status( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering instrument status subscriptions from the trait.

pub fn subscribe_instrument_close( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering instrument close subscriptions from the trait.

pub fn subscribe_order_fills( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, )

Helper method for registering order fills subscriptions from the trait.

pub fn subscribe_order_cancels( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, )

Helper method for registering order cancels subscriptions from the trait.

pub fn unsubscribe_data( &mut self, data_type: DataType, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from data.

pub fn unsubscribe_instruments( &mut self, venue: Venue, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from instruments.

pub fn unsubscribe_instrument( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from instrument.

pub fn unsubscribe_book_deltas( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from book deltas.

pub fn unsubscribe_book_at_interval( &mut self, instrument_id: InstrumentId, interval_ms: NonZero<usize>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from book snapshots at interval.

pub fn unsubscribe_quotes( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from quotes.

pub fn unsubscribe_trades( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from trades.

pub fn unsubscribe_bars( &mut self, bar_type: BarType, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from bars.

pub fn unsubscribe_mark_prices( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from mark prices.

pub fn unsubscribe_index_prices( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from index prices.

pub fn unsubscribe_funding_rates( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from funding rates.

pub fn unsubscribe_instrument_status( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from instrument status.

pub fn unsubscribe_instrument_close( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from instrument close.

pub fn unsubscribe_order_fills(&mut self, instrument_id: InstrumentId)

Helper method for unsubscribing from order fills.

pub fn unsubscribe_order_cancels(&mut self, instrument_id: InstrumentId)

Helper method for unsubscribing from order cancels.

pub fn request_data( &self, data_type: DataType, client_id: ClientId, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, limit: Option<NonZero<usize>>, params: Option<IndexMap<String, String>>, handler: ShareableMessageHandler, ) -> Result<UUID4, Error>

Helper method for requesting data.

§Errors

Returns an error if input parameters are invalid.

pub fn request_instrument( &self, instrument_id: InstrumentId, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, handler: ShareableMessageHandler, ) -> Result<UUID4, Error>

Helper method for requesting instrument.

§Errors

Returns an error if input parameters are invalid.

pub fn request_instruments( &self, venue: Option<Venue>, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, handler: ShareableMessageHandler, ) -> Result<UUID4, Error>

Helper method for requesting instruments.

§Errors

Returns an error if input parameters are invalid.

pub fn request_book_snapshot( &self, instrument_id: InstrumentId, depth: Option<NonZero<usize>>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, handler: ShareableMessageHandler, ) -> Result<UUID4, Error>

Helper method for requesting book snapshot.

§Errors

Returns an error if input parameters are invalid.

pub fn request_quotes( &self, instrument_id: InstrumentId, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, limit: Option<NonZero<usize>>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, handler: ShareableMessageHandler, ) -> Result<UUID4, Error>

Helper method for requesting quotes.

§Errors

Returns an error if input parameters are invalid.

pub fn request_trades( &self, instrument_id: InstrumentId, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, limit: Option<NonZero<usize>>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, handler: ShareableMessageHandler, ) -> Result<UUID4, Error>

Helper method for requesting trades.

§Errors

Returns an error if input parameters are invalid.

pub fn request_bars( &self, bar_type: BarType, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, limit: Option<NonZero<usize>>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, handler: ShareableMessageHandler, ) -> Result<UUID4, Error>

Helper method for requesting bars.

§Errors

Returns an error if input parameters are invalid.

pub fn subscribe_blocks( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, chain: Blockchain, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering block subscriptions from the trait.

pub fn subscribe_pool( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering pool subscriptions from the trait.

pub fn subscribe_pool_swaps( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering pool swap subscriptions from the trait.

pub fn subscribe_pool_liquidity_updates( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering pool liquidity update subscriptions from the trait.

pub fn subscribe_pool_fee_collects( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering pool fee collect subscriptions from the trait.

pub fn subscribe_pool_flash_events( &mut self, topic: MStr<Topic>, handler: ShareableMessageHandler, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for registering pool flash event subscriptions from the trait.

pub fn unsubscribe_blocks( &mut self, chain: Blockchain, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from blocks.

pub fn unsubscribe_pool( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from pool definition updates.

pub fn unsubscribe_pool_swaps( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from pool swaps.

pub fn unsubscribe_pool_liquidity_updates( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from pool liquidity updates.

pub fn unsubscribe_pool_fee_collects( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from pool fee collects.

pub fn unsubscribe_pool_flash_events( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )

Helper method for unsubscribing from pool flash events.

Trait Implementations§

Source§

impl DataActor for TwapAlgorithm

§

fn on_save(&self) -> Result<IndexMap<String, Vec<u8>>, Error>

Actions to be performed when the actor state is saved. Read more
§

fn on_load(&mut self, state: IndexMap<String, Vec<u8>>) -> Result<(), Error>

Actions to be performed when the actor state is loaded. Read more
§

fn on_start(&mut self) -> Result<(), Error>

Actions to be performed on start. Read more
§

fn on_stop(&mut self) -> Result<(), Error>

Actions to be performed on stop. Read more
§

fn on_resume(&mut self) -> Result<(), Error>

Actions to be performed on resume. Read more
§

fn on_reset(&mut self) -> Result<(), Error>

Actions to be performed on reset. Read more
§

fn on_dispose(&mut self) -> Result<(), Error>

Actions to be performed on dispose. Read more
§

fn on_degrade(&mut self) -> Result<(), Error>

Actions to be performed on degrade. Read more
§

fn on_fault(&mut self) -> Result<(), Error>

Actions to be performed on fault. Read more
§

fn on_time_event(&mut self, event: &TimeEvent) -> Result<(), Error>

Actions to be performed when receiving a time event. Read more
§

fn on_data(&mut self, data: &(dyn Any + 'static)) -> Result<(), Error>

Actions to be performed when receiving custom data. Read more
§

fn on_signal(&mut self, signal: &Signal) -> Result<(), Error>

Actions to be performed when receiving a signal. Read more
§

fn on_instrument(&mut self, instrument: &InstrumentAny) -> Result<(), Error>

Actions to be performed when receiving an instrument. Read more
§

fn on_book_deltas(&mut self, deltas: &OrderBookDeltas) -> Result<(), Error>

Actions to be performed when receiving order book deltas. Read more
§

fn on_book(&mut self, order_book: &OrderBook) -> Result<(), Error>

Actions to be performed when receiving an order book. Read more
§

fn on_quote(&mut self, quote: &QuoteTick) -> Result<(), Error>

Actions to be performed when receiving a quote. Read more
§

fn on_trade(&mut self, tick: &TradeTick) -> Result<(), Error>

Actions to be performed when receiving a trade. Read more
§

fn on_bar(&mut self, bar: &Bar) -> Result<(), Error>

Actions to be performed when receiving a bar. Read more
§

fn on_mark_price(&mut self, mark_price: &MarkPriceUpdate) -> Result<(), Error>

Actions to be performed when receiving a mark price update. Read more
§

fn on_index_price( &mut self, index_price: &IndexPriceUpdate, ) -> Result<(), Error>

Actions to be performed when receiving an index price update. Read more
§

fn on_funding_rate( &mut self, funding_rate: &FundingRateUpdate, ) -> Result<(), Error>

Actions to be performed when receiving a funding rate update. Read more
§

fn on_instrument_status(&mut self, data: &InstrumentStatus) -> Result<(), Error>

Actions to be performed when receiving an instrument status update. Read more
§

fn on_instrument_close(&mut self, update: &InstrumentClose) -> Result<(), Error>

Actions to be performed when receiving an instrument close update. Read more
§

fn on_order_filled(&mut self, event: &OrderFilled) -> Result<(), Error>

Actions to be performed when receiving an order filled event. Read more
§

fn on_order_canceled(&mut self, event: &OrderCanceled) -> Result<(), Error>

Actions to be performed when receiving an order canceled event. Read more
§

fn on_block(&mut self, block: &Block) -> Result<(), Error>

Actions to be performed when receiving a block. Read more
§

fn on_pool(&mut self, pool: &Pool) -> Result<(), Error>

Actions to be performed when receiving a pool. Read more
§

fn on_pool_swap(&mut self, swap: &PoolSwap) -> Result<(), Error>

Actions to be performed when receiving a pool swap. Read more
§

fn on_pool_liquidity_update( &mut self, update: &PoolLiquidityUpdate, ) -> Result<(), Error>

Actions to be performed when receiving a pool liquidity update. Read more
§

fn on_pool_fee_collect(&mut self, collect: &PoolFeeCollect) -> Result<(), Error>

Actions to be performed when receiving a pool fee collect event. Read more
§

fn on_pool_flash(&mut self, flash: &PoolFlash) -> Result<(), Error>

Actions to be performed when receiving a pool flash event. Read more
§

fn on_historical_data( &mut self, data: &(dyn Any + 'static), ) -> Result<(), Error>

Actions to be performed when receiving historical data. Read more
§

fn on_historical_quotes(&mut self, quotes: &[QuoteTick]) -> Result<(), Error>

Actions to be performed when receiving historical quotes. Read more
§

fn on_historical_trades(&mut self, trades: &[TradeTick]) -> Result<(), Error>

Actions to be performed when receiving historical trades. Read more
§

fn on_historical_bars(&mut self, bars: &[Bar]) -> Result<(), Error>

Actions to be performed when receiving historical bars. Read more
§

fn on_historical_mark_prices( &mut self, mark_prices: &[MarkPriceUpdate], ) -> Result<(), Error>

Actions to be performed when receiving historical mark prices. Read more
§

fn on_historical_index_prices( &mut self, index_prices: &[IndexPriceUpdate], ) -> Result<(), Error>

Actions to be performed when receiving historical index prices. Read more
§

fn handle_time_event(&mut self, event: &TimeEvent)

Handles a received time event.
§

fn handle_data(&mut self, data: &(dyn Any + 'static))

Handles a received custom data point.
§

fn handle_signal(&mut self, signal: &Signal)

Handles a received signal.
§

fn handle_instrument(&mut self, instrument: &InstrumentAny)

Handles a received instrument.
§

fn handle_book_deltas(&mut self, deltas: &OrderBookDeltas)

Handles received order book deltas.
§

fn handle_book(&mut self, book: &OrderBook)

Handles a received order book reference.
§

fn handle_quote(&mut self, quote: &QuoteTick)

Handles a received quote.
§

fn handle_trade(&mut self, trade: &TradeTick)

Handles a received trade.
§

fn handle_bar(&mut self, bar: &Bar)

Handles a receiving bar.
§

fn handle_mark_price(&mut self, mark_price: &MarkPriceUpdate)

Handles a received mark price update.
§

fn handle_index_price(&mut self, index_price: &IndexPriceUpdate)

Handles a received index price update.
§

fn handle_funding_rate(&mut self, funding_rate: &FundingRateUpdate)

Handles a received funding rate update.
§

fn handle_instrument_status(&mut self, status: &InstrumentStatus)

Handles a received instrument status.
§

fn handle_instrument_close(&mut self, close: &InstrumentClose)

Handles a received instrument close.
§

fn handle_order_filled(&mut self, event: &OrderFilled)

Handles a received order filled event.
§

fn handle_order_canceled(&mut self, event: &OrderCanceled)

Handles a received order canceled event.
§

fn handle_block(&mut self, block: &Block)

Handles a received block.
§

fn handle_pool(&mut self, pool: &Pool)

Handles a received pool definition update.
§

fn handle_pool_swap(&mut self, swap: &PoolSwap)

Handles a received pool swap.
§

fn handle_pool_liquidity_update(&mut self, update: &PoolLiquidityUpdate)

Handles a received pool liquidity update.
§

fn handle_pool_fee_collect(&mut self, collect: &PoolFeeCollect)

Handles a received pool fee collect.
§

fn handle_pool_flash(&mut self, flash: &PoolFlash)

Handles a received pool flash event.
§

fn handle_historical_data(&mut self, data: &(dyn Any + 'static))

Handles received historical data.
§

fn handle_data_response(&mut self, resp: &CustomDataResponse)

Handles a data response.
§

fn handle_instrument_response(&mut self, resp: &InstrumentResponse)

Handles an instrument response.
§

fn handle_instruments_response(&mut self, resp: &InstrumentsResponse)

Handles an instruments response.
§

fn handle_book_response(&mut self, resp: &BookResponse)

Handles a book response.
§

fn handle_quotes_response(&mut self, resp: &QuotesResponse)

Handles a quotes response.
§

fn handle_trades_response(&mut self, resp: &TradesResponse)

Handles a trades response.
§

fn handle_bars_response(&mut self, resp: &BarsResponse)

Handles a bars response.
§

fn subscribe_data( &mut self, data_type: DataType, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming data_type data.
§

fn subscribe_quotes( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [QuoteTick] data for the instrument_id.
§

fn subscribe_instruments( &mut self, venue: Venue, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [InstrumentAny] data for the venue.
§

fn subscribe_instrument( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [InstrumentAny] data for the instrument_id.
§

fn subscribe_book_deltas( &mut self, instrument_id: InstrumentId, book_type: BookType, depth: Option<NonZero<usize>>, client_id: Option<ClientId>, managed: bool, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [OrderBookDeltas] data for the instrument_id.
§

fn subscribe_book_at_interval( &mut self, instrument_id: InstrumentId, book_type: BookType, depth: Option<NonZero<usize>>, interval_ms: NonZero<usize>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to [OrderBook] snapshots at a specified interval for the instrument_id.
§

fn subscribe_trades( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [TradeTick] data for the instrument_id.
§

fn subscribe_bars( &mut self, bar_type: BarType, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [Bar] data for the bar_type.
§

fn subscribe_mark_prices( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [MarkPriceUpdate] data for the instrument_id.
§

fn subscribe_index_prices( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [IndexPriceUpdate] data for the instrument_id.
§

fn subscribe_funding_rates( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [FundingRateUpdate] data for the instrument_id.
§

fn subscribe_instrument_status( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [InstrumentStatus] data for the instrument_id.
§

fn subscribe_instrument_close( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [InstrumentClose] data for the instrument_id.
§

fn subscribe_order_fills(&mut self, instrument_id: InstrumentId)
where Self: Sized + 'static + Debug,

Subscribe to [OrderFilled] events for the instrument_id.
§

fn subscribe_order_cancels(&mut self, instrument_id: InstrumentId)
where Self: Sized + 'static + Debug,

Subscribe to [OrderCanceled] events for the instrument_id.
§

fn subscribe_blocks( &mut self, chain: Blockchain, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [Block] data for the chain.
§

fn subscribe_pool( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [Pool] definition updates for the AMM pool at the instrument_id.
§

fn subscribe_pool_swaps( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [PoolSwap] data for the instrument_id.
§

fn subscribe_pool_liquidity_updates( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [PoolLiquidityUpdate] data for the instrument_id.
§

fn subscribe_pool_fee_collects( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [PoolFeeCollect] data for the instrument_id.
§

fn subscribe_pool_flash_events( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Subscribe to streaming [PoolFlash] events for the given instrument_id.
§

fn unsubscribe_data( &mut self, data_type: DataType, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming data_type data.
§

fn unsubscribe_instruments( &mut self, venue: Venue, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [InstrumentAny] data for the venue.
§

fn unsubscribe_instrument( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [InstrumentAny] data for the instrument_id.
§

fn unsubscribe_book_deltas( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [OrderBookDeltas] data for the instrument_id.
§

fn unsubscribe_book_at_interval( &mut self, instrument_id: InstrumentId, interval_ms: NonZero<usize>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from [OrderBook] snapshots at a specified interval for the instrument_id.
§

fn unsubscribe_quotes( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [QuoteTick] data for the instrument_id.
§

fn unsubscribe_trades( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [TradeTick] data for the instrument_id.
§

fn unsubscribe_bars( &mut self, bar_type: BarType, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [Bar] data for the bar_type.
§

fn unsubscribe_mark_prices( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [MarkPriceUpdate] data for the instrument_id.
§

fn unsubscribe_index_prices( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [IndexPriceUpdate] data for the instrument_id.
§

fn unsubscribe_funding_rates( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [FundingRateUpdate] data for the instrument_id.
§

fn unsubscribe_instrument_status( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [InstrumentStatus] data for the instrument_id.
§

fn unsubscribe_instrument_close( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [InstrumentClose] data for the instrument_id.
§

fn unsubscribe_order_fills(&mut self, instrument_id: InstrumentId)
where Self: Sized + 'static + Debug,

Unsubscribe from [OrderFilled] events for the instrument_id.
§

fn unsubscribe_order_cancels(&mut self, instrument_id: InstrumentId)
where Self: Sized + 'static + Debug,

Unsubscribe from [OrderCanceled] events for the instrument_id.
§

fn unsubscribe_blocks( &mut self, chain: Blockchain, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [Block] data for the chain.
§

fn unsubscribe_pool( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [Pool] definition updates for the AMM pool at the instrument_id.
§

fn unsubscribe_pool_swaps( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [PoolSwap] data for the instrument_id.
§

fn unsubscribe_pool_liquidity_updates( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [PoolLiquidityUpdate] data for the instrument_id.
§

fn unsubscribe_pool_fee_collects( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [PoolFeeCollect] data for the instrument_id.
§

fn unsubscribe_pool_flash_events( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, )
where Self: Sized + 'static + Debug,

Unsubscribe from streaming [PoolFlash] events for the given instrument_id.
§

fn request_data( &mut self, data_type: DataType, client_id: ClientId, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, limit: Option<NonZero<usize>>, params: Option<IndexMap<String, String>>, ) -> Result<UUID4, Error>
where Self: Sized + 'static + Debug,

Request historical custom data of the given data_type. Read more
§

fn request_instrument( &mut self, instrument_id: InstrumentId, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, ) -> Result<UUID4, Error>
where Self: Sized + 'static + Debug,

Request historical [InstrumentResponse] data for the given instrument_id. Read more
§

fn request_instruments( &mut self, venue: Option<Venue>, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, ) -> Result<UUID4, Error>
where Self: Sized + 'static + Debug,

Request historical [InstrumentsResponse] definitions for the optional venue. Read more
§

fn request_book_snapshot( &mut self, instrument_id: InstrumentId, depth: Option<NonZero<usize>>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, ) -> Result<UUID4, Error>
where Self: Sized + 'static + Debug,

Request an [OrderBook] snapshot for the given instrument_id. Read more
§

fn request_quotes( &mut self, instrument_id: InstrumentId, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, limit: Option<NonZero<usize>>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, ) -> Result<UUID4, Error>
where Self: Sized + 'static + Debug,

Request historical [QuoteTick] data for the given instrument_id. Read more
§

fn request_trades( &mut self, instrument_id: InstrumentId, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, limit: Option<NonZero<usize>>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, ) -> Result<UUID4, Error>
where Self: Sized + 'static + Debug,

Request historical [TradeTick] data for the given instrument_id. Read more
§

fn request_bars( &mut self, bar_type: BarType, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, limit: Option<NonZero<usize>>, client_id: Option<ClientId>, params: Option<IndexMap<String, String>>, ) -> Result<UUID4, Error>
where Self: Sized + 'static + Debug,

Request historical [Bar] data for the given bar_type. Read more
Source§

impl Debug for TwapAlgorithm

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for TwapAlgorithm

Source§

type Target = DataActorCore

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl DerefMut for TwapAlgorithm

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl ExecutionAlgorithm for TwapAlgorithm

Source§

fn core_mut(&mut self) -> &mut ExecutionAlgorithmCore

Provides mutable access to the internal ExecutionAlgorithmCore.
Source§

fn on_order(&mut self, order: OrderAny) -> Result<()>

Called when a primary order is received for execution. Read more
Source§

fn on_time_event(&mut self, event: &TimeEvent) -> Result<()>

Called when a time event is received. Read more
Source§

fn on_stop(&mut self) -> Result<()>

Called when the algorithm is stopped. Read more
Source§

fn on_reset(&mut self) -> Result<()>

Called when the algorithm is reset. Read more
Source§

fn id(&mut self) -> ExecAlgorithmId

Returns the execution algorithm ID.
Source§

fn execute(&mut self, command: TradingCommand) -> Result<()>

Executes a trading command. Read more
Source§

fn on_order_list(&mut self, order_list: OrderList) -> Result<()>

Called when an order list is received for execution. Read more
Source§

fn handle_cancel_order(&mut self, command: CancelOrder) -> Result<()>

Handles a cancel order command for algorithm-managed orders. Read more
Source§

fn generate_order_canceled(&mut self, order: &OrderAny) -> OrderCanceled

Generates an OrderCanceled event for an order.
Source§

fn spawn_market( &mut self, primary: &mut OrderAny, quantity: Quantity, time_in_force: TimeInForce, reduce_only: bool, tags: Option<Vec<Ustr>>, reduce_primary: bool, ) -> MarketOrder

Spawns a market order from a primary order. Read more
Source§

fn spawn_limit( &mut self, primary: &mut OrderAny, quantity: Quantity, price: Price, time_in_force: TimeInForce, expire_time: Option<UnixNanos>, post_only: bool, reduce_only: bool, display_qty: Option<Quantity>, emulation_trigger: Option<TriggerType>, tags: Option<Vec<Ustr>>, reduce_primary: bool, ) -> LimitOrder

Spawns a limit order from a primary order. Read more
Source§

fn spawn_market_to_limit( &mut self, primary: &mut OrderAny, quantity: Quantity, time_in_force: TimeInForce, expire_time: Option<UnixNanos>, post_only: bool, reduce_only: bool, display_qty: Option<Quantity>, tags: Option<Vec<Ustr>>, reduce_primary: bool, ) -> MarketToLimitOrder

Spawns a market-to-limit order from a primary order. Read more
Source§

fn reduce_primary_order(&mut self, primary: &mut OrderAny, spawn_qty: Quantity)

Reduces the primary order’s quantity by the spawn quantity. Read more
Source§

fn submit_order( &mut self, order: OrderAny, position_id: Option<PositionId>, client_id: Option<ClientId>, ) -> Result<()>

Submits an order to the execution engine via the risk engine. Read more
Source§

fn modify_order( &mut self, order: &OrderAny, quantity: Option<Quantity>, price: Option<Price>, trigger_price: Option<Price>, client_id: Option<ClientId>, ) -> Result<()>

Modifies an order. Read more
Source§

fn modify_order_in_place( &mut self, order: &mut OrderAny, quantity: Option<Quantity>, price: Option<Price>, trigger_price: Option<Price>, ) -> Result<()>

Modifies an INITIALIZED or RELEASED order in place without sending a command. Read more
Source§

fn cancel_order( &mut self, order: &OrderAny, client_id: Option<ClientId>, ) -> Result<()>

Cancels an order. Read more
Source§

fn subscribe_to_strategy_events(&mut self, strategy_id: StrategyId)

Subscribes to events from a strategy. Read more
Source§

fn handle_order_event(&mut self, event: OrderEventAny)

Handles an order event, filtering for algorithm-owned orders.
Source§

fn handle_position_event(&mut self, event: PositionEvent)

Handles a position event.
Source§

fn on_start(&mut self) -> Result<()>

Called when the algorithm is started. Read more
Source§

fn on_order_initialized(&mut self, event: OrderInitialized)

Called when an order is initialized.
Source§

fn on_order_denied(&mut self, event: OrderDenied)

Called when an order is denied.
Source§

fn on_order_emulated(&mut self, event: OrderEmulated)

Called when an order is emulated.
Source§

fn on_order_released(&mut self, event: OrderReleased)

Called when an order is released from emulation.
Source§

fn on_order_submitted(&mut self, event: OrderSubmitted)

Called when an order is submitted.
Source§

fn on_order_rejected(&mut self, event: OrderRejected)

Called when an order is rejected.
Source§

fn on_order_accepted(&mut self, event: OrderAccepted)

Called when an order is accepted.
Source§

fn on_algo_order_canceled(&mut self, event: OrderCanceled)

Called when an order is canceled.
Source§

fn on_order_expired(&mut self, event: OrderExpired)

Called when an order expires.
Source§

fn on_order_triggered(&mut self, event: OrderTriggered)

Called when an order is triggered.
Source§

fn on_order_pending_update(&mut self, event: OrderPendingUpdate)

Called when an order modification is pending.
Source§

fn on_order_pending_cancel(&mut self, event: OrderPendingCancel)

Called when an order cancellation is pending.
Source§

fn on_order_modify_rejected(&mut self, event: OrderModifyRejected)

Called when an order modification is rejected.
Source§

fn on_order_cancel_rejected(&mut self, event: OrderCancelRejected)

Called when an order cancellation is rejected.
Source§

fn on_order_updated(&mut self, event: OrderUpdated)

Called when an order is updated.
Source§

fn on_algo_order_filled(&mut self, event: OrderFilled)

Called when an order is filled.
Source§

fn on_order_event(&mut self, event: OrderEventAny)

Called for any order event (after specific handler).
Source§

fn on_position_opened(&mut self, event: PositionOpened)

Called when a position is opened.
Source§

fn on_position_changed(&mut self, event: PositionChanged)

Called when a position is changed.
Source§

fn on_position_closed(&mut self, event: PositionClosed)

Called when a position is closed.
Source§

fn on_position_event(&mut self, event: PositionEvent)

Called for any position event (after specific handler).

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Actor for T
where T: DataActor + Debug + 'static,

§

fn id(&self) -> Ustr

The unique identifier for the actor.
§

fn handle(&mut self, msg: &(dyn Any + 'static))

Handles the msg.
§

fn as_any(&self) -> &(dyn Any + 'static)

Returns a reference to self as Any, for downcasting support.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
where Self: Sized,

Returns a mutable reference to self as Any, for downcasting support. Read more
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
§

impl<T> Component for T
where T: DataActor + Debug + 'static,

§

fn component_id(&self) -> ComponentId

Returns the unique identifier for this component.
§

fn state(&self) -> ComponentState

Returns the current state of the component.
§

fn transition_state(&mut self, trigger: ComponentTrigger) -> Result<(), Error>

Transition the component with the state trigger. Read more
§

fn register( &mut self, trader_id: TraderId, clock: Rc<RefCell<dyn Clock>>, cache: Rc<RefCell<Cache>>, ) -> Result<(), Error>

Registers the component with a system. Read more
§

fn on_start(&mut self) -> Result<(), Error>

Actions to be performed on start. Read more
§

fn on_stop(&mut self) -> Result<(), Error>

Actions to be performed on stop. Read more
§

fn on_resume(&mut self) -> Result<(), Error>

Actions to be performed on resume. Read more
§

fn on_degrade(&mut self) -> Result<(), Error>

Actions to be performed on degrade. Read more
§

fn on_fault(&mut self) -> Result<(), Error>

Actions to be performed on fault. Read more
§

fn on_reset(&mut self) -> Result<(), Error>

Actions to be performed on reset. Read more
§

fn on_dispose(&mut self) -> Result<(), Error>

Actions to be performed on dispose. Read more
§

fn is_ready(&self) -> bool

Returns whether the component is ready.
§

fn not_running(&self) -> bool

Returns whether the component is not running.
§

fn is_running(&self) -> bool

Returns whether the component is running.
§

fn is_stopped(&self) -> bool

Returns whether the component is stopped.
§

fn is_degraded(&self) -> bool

Returns whether the component has been degraded.
§

fn is_faulted(&self) -> bool

Returns whether the component has been faulted.
§

fn is_disposed(&self) -> bool

Returns whether the component has been disposed.
§

fn initialize(&mut self) -> Result<(), Error>

Initializes the component. Read more
§

fn start(&mut self) -> Result<(), Error>

Starts the component. Read more
§

fn stop(&mut self) -> Result<(), Error>

Stops the component. Read more
§

fn resume(&mut self) -> Result<(), Error>

Resumes the component. Read more
§

fn degrade(&mut self) -> Result<(), Error>

Degrades the component. Read more
§

fn fault(&mut self) -> Result<(), Error>

Faults the component. Read more
§

fn reset(&mut self) -> Result<(), Error>

Resets the component to its initial state. Read more
§

fn dispose(&mut self) -> Result<(), Error>

Disposes of the component, releasing any resources. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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