Skip to main content

GridMarketMaker

Struct GridMarketMaker 

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

Grid market making strategy with inventory-based skewing.

Places a symmetric grid of limit buy and sell orders around the mid-price. Orders persist across ticks and are only replaced when the mid-price moves by at least requote_threshold_bps. The grid is shifted by a skew proportional to the current net position to discourage inventory buildup.

Implementations§

Source§

impl GridMarketMaker

Source

pub fn new(config: GridMarketMakerConfig) -> Self

Creates a new GridMarketMaker instance from config.

Source§

impl GridMarketMaker

Source

pub fn config(&self) -> &StrategyConfig

Returns the strategy configuration.

Trait Implementations§

Source§

impl DataActor for GridMarketMaker

Source§

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

Actions to be performed on start. Read more
Source§

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

Actions to be performed on stop. Read more
Source§

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

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

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

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

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

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

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

Actions to be performed on reset. Read more
§

fn actor_id(&self) -> ActorId
where Self: DataActorNative,

Returns the actor ID.
§

fn trader_id(&self) -> Option<TraderId>
where Self: DataActorNative,

Returns the trader ID this actor is registered to.
§

fn is_registered(&self) -> bool
where Self: DataActorNative,

Returns whether the actor is registered with a trader.
§

fn config(&self) -> &DataActorConfig
where Self: DataActorNative,

Returns the actor configuration.
§

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_resume(&mut self) -> Result<(), Error>

Actions to be performed on resume. 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: &CustomData) -> 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_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_option_greeks(&mut self, greeks: &OptionGreeks) -> Result<(), Error>

Actions to be performed when receiving exchange-provided option greeks. Read more
§

fn on_option_chain(&mut self, slice: &OptionChainSlice) -> Result<(), Error>

Actions to be performed when receiving an option chain slice snapshot. 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_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_book_deltas( &mut self, deltas: &[OrderBookDelta], ) -> Result<(), Error>

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

fn on_historical_book_depth( &mut self, depths: &[OrderBookDepth10], ) -> Result<(), Error>

Actions to be performed when receiving historical book depth. 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 on_historical_funding_rates( &mut self, funding_rates: &[FundingRateUpdate], ) -> Result<(), Error>

Actions to be performed when receiving historical funding rates. Read more
§

fn clock(&self) -> ClockApi<'_>
where Self: DataActorNative,

Returns the user-facing clock API.
§

fn cache(&self) -> CacheApi<'_>
where Self: DataActorNative,

Returns the user-facing cache API.
§

fn shutdown_system(&self, reason: Option<String>)
where Self: DataActorNative,

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

fn publish_data(&self, data_type: &DataType, data: &CustomData)
where Self: DataActorNative,

Publishes data on the message bus under the topic derived from data_type. Read more
§

fn publish_signal(&self, name: &str, value: String, ts_event: UnixNanos)
where Self: DataActorNative,

Publishes a [Signal] constructed from name and value. Read more
§

fn add_synthetic(&self, synthetic: SyntheticInstrument) -> Result<(), Error>
where Self: DataActorNative,

Adds the synthetic instrument to the cache. Read more
§

fn update_synthetic(&self, synthetic: SyntheticInstrument) -> Result<(), Error>
where Self: DataActorNative,

Updates the synthetic instrument in the cache, replacing the existing entry. Read more
§

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

Handles a received time event.
§

fn handle_data(&mut self, data: &CustomData)

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)
where Self: DataActorNative,

Handles a received quote.
§

fn handle_trade(&mut self, trade: &TradeTick)
where Self: DataActorNative,

Handles a received trade.
§

fn handle_bar(&mut self, bar: &Bar)
where Self: DataActorNative,

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_option_greeks(&mut self, greeks: &OptionGreeks)

Handles a received option greeks update.
§

fn handle_option_chain(&mut self, slice: &OptionChainSlice)

Handles a received option chain slice snapshot.
§

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)
where Self: DataActorNative,

Handles a received order filled event.
§

fn handle_order_canceled(&mut self, event: &OrderCanceled)
where Self: DataActorNative,

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_book_deltas_response(&mut self, resp: &BookDeltasResponse)

Handles a book deltas response.
§

fn handle_book_depth_response(&mut self, resp: &BookDepthResponse)

Handles a book depth response.
§

fn handle_quotes_response(&mut self, resp: &QuotesResponse)
where Self: DataActorNative,

Handles a quotes response.
§

fn handle_trades_response(&mut self, resp: &TradesResponse)
where Self: DataActorNative,

Handles a trades response.
§

fn handle_bars_response(&mut self, resp: &BarsResponse)
where Self: DataActorNative,

Handles a bars response.
§

fn handle_funding_rates_response(&mut self, resp: &FundingRatesResponse)

Handles a funding rates response.
§

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

Subscribe to streaming data_type data.
§

fn subscribe_signal(&mut self, name: &str, priority: Option<u32>)
where Self: DataActorNative + Sized + 'static + Debug,

Subscribe to [Signal] data by name. Read more
§

fn subscribe_quotes( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + Sized + 'static + Debug,

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

fn subscribe_option_greeks( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<Params>, )
where Self: DataActorNative + Sized + 'static + Debug,

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

fn subscribe_instrument_status( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + Sized + 'static + Debug,

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

fn subscribe_option_chain( &mut self, series_id: OptionSeriesId, strike_range: StrikeRange, snapshot_interval_ms: Option<u64>, client_id: Option<ClientId>, params: Option<Params>, )
where Self: DataActorNative + Sized + 'static + Debug,

Subscribe to streaming [OptionChainSlice] snapshots for the option series_id. Read more
§

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

Subscribe to [OrderFilled] events for the instrument_id.
§

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

Subscribe to [OrderCanceled] events for the instrument_id.
§

fn subscribe_blocks( &mut self, chain: Blockchain, client_id: Option<ClientId>, params: Option<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + Sized + 'static + Debug,

Unsubscribe from streaming data_type data.
§

fn unsubscribe_signal(&mut self, name: &str)
where Self: DataActorNative + Sized + 'static + Debug,

Unsubscribe from [Signal] data by name.
§

fn unsubscribe_instruments( &mut self, venue: Venue, client_id: Option<ClientId>, params: Option<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + Sized + 'static + Debug,

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

fn unsubscribe_option_greeks( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<Params>, )
where Self: DataActorNative + Sized + 'static + Debug,

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

fn unsubscribe_instrument_status( &mut self, instrument_id: InstrumentId, client_id: Option<ClientId>, params: Option<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + Sized + 'static + Debug,

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

fn unsubscribe_option_chain( &mut self, series_id: OptionSeriesId, client_id: Option<ClientId>, )
where Self: DataActorNative + Sized + 'static + Debug,

Unsubscribe from streaming [OptionChainSlice] snapshots for the option series_id.
§

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

Unsubscribe from [OrderFilled] events for the instrument_id.
§

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

Unsubscribe from [OrderCanceled] events for the instrument_id.
§

fn unsubscribe_blocks( &mut self, chain: Blockchain, client_id: Option<ClientId>, params: Option<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, )
where Self: DataActorNative + 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<Params>, ) -> Result<UUID4, Error>
where Self: DataActorNative + 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<Params>, ) -> Result<UUID4, Error>
where Self: DataActorNative + 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<Params>, ) -> Result<UUID4, Error>
where Self: DataActorNative + 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<Params>, ) -> Result<UUID4, Error>
where Self: DataActorNative + Sized + 'static + Debug,

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

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

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

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

Request historical [OrderBookDepth10] data 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<Params>, ) -> Result<UUID4, Error>
where Self: DataActorNative + 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<Params>, ) -> Result<UUID4, Error>
where Self: DataActorNative + 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<Params>, ) -> Result<UUID4, Error>
where Self: DataActorNative + Sized + 'static + Debug,

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

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

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

impl DataActorNative for GridMarketMaker

Source§

fn core(&self) -> &DataActorCore

Returns the actor core.
Source§

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

Returns the mutable actor core.
§

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

Returns the mutable clock borrow for the actor. Read more
§

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

Returns a clone of the reference-counted clock. Read more
§

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

Returns a read-only cache borrow. Read more
§

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

Returns a clone of the reference-counted cache. Read more
Source§

impl Debug for GridMarketMaker

Source§

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

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

impl Strategy for GridMarketMaker

Source§

fn on_order_rejected(&mut self, event: OrderRejected)

Called when an order is rejected by the venue. Read more
Source§

fn on_order_expired(&mut self, event: OrderExpired)

Called when an order expires. Read more
Source§

fn external_order_claims(&self) -> Option<Vec<InstrumentId>>

Returns the external order claims for this strategy. Read more
Source§

fn strategy_id(&self) -> Option<StrategyId>
where Self: StrategyNative,

Returns the runtime strategy ID, when configured or registered.
Source§

fn order(&self) -> OrderApi<'_>
where Self: StrategyNative,

Returns the user-facing order creation API.
Source§

fn portfolio(&self) -> PortfolioApi<'_>
where Self: StrategyNative,

Returns the user-facing portfolio read API.
Source§

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

Submits an order. Read more
Source§

fn submit_order_list( &mut self, orders: Vec<OrderAny>, position_id: Option<PositionId>, client_id: Option<ClientId>, params: Option<Params>, ) -> Result<()>
where Self: StrategyNative,

Submits an order list. Read more
Source§

fn modify_order( &mut self, client_order_id: ClientOrderId, quantity: Option<Quantity>, price: Option<Price>, trigger_price: Option<Price>, client_id: Option<ClientId>, params: Option<Params>, ) -> Result<()>
where Self: StrategyNative,

Modifies an order. Read more
Source§

fn modify_orders( &mut self, updates: Vec<BatchModifyOrder>, client_id: Option<ClientId>, params: Option<Params>, ) -> Result<()>
where Self: StrategyNative,

Batch modifies multiple orders for the same instrument. Read more
Source§

fn cancel_order( &mut self, client_order_id: ClientOrderId, client_id: Option<ClientId>, params: Option<Params>, ) -> Result<()>
where Self: StrategyNative,

Cancels an order. Read more
Source§

fn cancel_orders( &mut self, client_order_ids: Vec<ClientOrderId>, client_id: Option<ClientId>, params: Option<Params>, ) -> Result<()>
where Self: StrategyNative,

Batch cancels multiple orders for the same instrument. Read more
Source§

fn mark_order_pending_update(&mut self, order: &OrderAny) -> Result<bool>
where Self: StrategyNative,

Marks an order as pending update locally before the modify command leaves the strategy. Read more
Source§

fn mark_order_pending_cancel(&mut self, order: &OrderAny) -> Result<bool>
where Self: StrategyNative,

Marks an order as pending cancel locally before the cancel command leaves the strategy. Read more
Source§

fn generate_order_pending_update( &mut self, order: &OrderAny, ) -> OrderPendingUpdate
where Self: StrategyNative,

Generates an OrderPendingUpdate event for an order.
Source§

fn generate_order_pending_cancel( &mut self, order: &OrderAny, ) -> OrderPendingCancel
where Self: StrategyNative,

Generates an OrderPendingCancel event for an order.
Source§

fn cancel_all_orders( &mut self, instrument_id: InstrumentId, order_side: Option<OrderSide>, client_id: Option<ClientId>, params: Option<Params>, ) -> Result<()>
where Self: StrategyNative,

Cancels all open orders for the given instrument. Read more
Source§

fn close_position( &mut self, position: &Position, client_id: Option<ClientId>, tags: Option<Vec<Ustr>>, time_in_force: Option<TimeInForce>, reduce_only: Option<bool>, quote_quantity: Option<bool>, ) -> Result<()>
where Self: StrategyNative,

Closes a position by submitting a market order for the opposite side. Read more
Source§

fn close_all_positions( &mut self, instrument_id: InstrumentId, position_side: Option<PositionSide>, client_id: Option<ClientId>, tags: Option<Vec<Ustr>>, time_in_force: Option<TimeInForce>, reduce_only: Option<bool>, quote_quantity: Option<bool>, ) -> Result<()>
where Self: StrategyNative,

Closes all open positions for the given instrument. Read more
Source§

fn query_account( &mut self, account_id: AccountId, client_id: Option<ClientId>, params: Option<Params>, ) -> Result<()>
where Self: StrategyNative,

Queries account state from the execution client. Read more
Source§

fn query_order( &mut self, order: &OrderAny, client_id: Option<ClientId>, params: Option<Params>, ) -> Result<()>
where Self: StrategyNative,

Queries order state from the execution client. Read more
Source§

fn handle_order_event(&mut self, event: OrderEventAny)
where Self: StrategyNative,

Handles an order event, dispatching to the appropriate handler.
Source§

fn handle_position_event(&mut self, event: PositionEvent)
where Self: StrategyNative,

Handles a position event, dispatching to the appropriate handler.
Source§

fn on_start(&mut self) -> Result<()>
where Self: StrategyNative,

Called when the strategy is started. Read more
Source§

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

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

fn on_order_initialized(&mut self, event: OrderInitialized)

Called when an order is initialized. Read more
Source§

fn on_order_event(&mut self, event: OrderEventAny)

Called when any order event is received after the specific order handler runs. Read more
Source§

fn on_order_denied(&mut self, event: OrderDenied)

Called when an order is denied by the system. Read more
Source§

fn on_order_emulated(&mut self, event: OrderEmulated)

Called when an order is emulated. Read more
Source§

fn on_order_released(&mut self, event: OrderReleased)

Called when an order is released from emulation. Read more
Source§

fn on_order_submitted(&mut self, event: OrderSubmitted)

Called when an order is submitted to the venue. Read more
Source§

fn on_order_accepted(&mut self, event: OrderAccepted)

Called when an order is accepted by the venue. Read more
Source§

fn on_order_triggered(&mut self, event: OrderTriggered)

Called when an order is triggered. Read more
Source§

fn on_order_pending_update(&mut self, event: OrderPendingUpdate)

Called when an order modification is pending. Read more
Source§

fn on_order_pending_cancel(&mut self, event: OrderPendingCancel)

Called when an order cancellation is pending. Read more
Source§

fn on_order_modify_rejected(&mut self, event: OrderModifyRejected)

Called when an order modification is rejected. Read more
Source§

fn on_order_cancel_rejected(&mut self, event: OrderCancelRejected)

Called when an order cancellation is rejected. Read more
Source§

fn on_order_updated(&mut self, event: OrderUpdated)

Called when an order is updated. Read more
Source§

fn on_position_opened(&mut self, event: PositionOpened)

Called when a position is opened. Read more
Source§

fn on_position_event(&mut self, event: PositionEvent)

Called after a position opened, changed, or closed handler runs. Read more
Source§

fn on_position_changed(&mut self, event: PositionChanged)

Called when a position is changed (quantity or price updated). Read more
Source§

fn on_position_closed(&mut self, event: PositionClosed)

Called when a position is closed. Read more
Source§

fn on_market_exit(&mut self)

Called when a market exit has been initiated. Read more
Source§

fn post_market_exit(&mut self)

Called after a market exit has completed. Read more
Source§

fn is_exiting(&self) -> bool
where Self: StrategyNative,

Returns whether the strategy is currently executing a market exit. Read more
Source§

fn market_exit(&mut self) -> Result<()>
where Self: StrategyNative,

Initiates an iterative market exit for the strategy. Read more
Source§

fn check_market_exit(&mut self, _event: TimeEvent)
where Self: StrategyNative,

Checks if the market exit is complete and finalizes if so. Read more
Source§

fn finalize_market_exit(&mut self)
where Self: StrategyNative,

Finalizes the market exit process. Read more
Source§

fn cancel_market_exit(&mut self)
where Self: StrategyNative,

Cancels an active market exit without calling hooks. Read more
Source§

fn stop(&mut self) -> bool
where Self: StrategyNative,

Stops the strategy with optional managed stop behavior. Read more
Source§

fn deny_order(&mut self, order: &OrderAny, reason: Ustr)
where Self: StrategyNative,

Denies an order by generating an OrderDenied event. Read more
Source§

fn deny_order_list(&mut self, orders: &[OrderAny], reason: Ustr)
where Self: StrategyNative,

Denies all orders in an order list. Read more
Source§

fn set_gtd_expiry(&mut self, order: &OrderAny) -> Result<()>
where Self: StrategyNative,

Sets a GTD expiry timer for an order. Read more
Source§

fn cancel_gtd_expiry(&mut self, client_order_id: &ClientOrderId)
where Self: StrategyNative,

Cancels a GTD expiry timer for an order.
Source§

fn has_gtd_expiry_timer(&mut self, client_order_id: &ClientOrderId) -> bool
where Self: StrategyNative,

Checks if a GTD expiry timer exists for an order.
Source§

fn expire_gtd_order(&mut self, event: TimeEvent)
where Self: StrategyNative,

Handles GTD order expiry by canceling the order. Read more
Source§

fn reactivate_gtd_timers(&mut self)
where Self: StrategyNative,

Reactivates GTD timers for open orders on strategy start. Read more
Source§

impl StrategyNative for GridMarketMaker

Source§

fn strategy_core(&self) -> &StrategyCore

Returns the strategy core.
Source§

fn strategy_core_mut(&mut self) -> &mut StrategyCore

Returns the mutable strategy core.
Source§

fn order_factory(&mut self) -> RefMut<'_, OrderFactory>

Returns a mutable borrow of the order factory. Read more
Source§

fn order_factory_rc(&self) -> Rc<RefCell<OrderFactory>>

Returns a clone of the reference-counted order factory. Read more
Source§

fn portfolio_rc(&self) -> Rc<RefCell<Portfolio>>

Returns a clone of the reference-counted portfolio. Read more

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Actor for T
where T: DataActor + DataActorNative + 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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Component for T
where T: DataActor + DataActorNative + 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.

§

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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