Struct OrderMatchingEngine

Source
pub struct OrderMatchingEngine {
    pub venue: Venue,
    pub instrument: InstrumentAny,
    pub raw_id: u32,
    pub book_type: BookType,
    pub oms_type: OmsType,
    pub account_type: AccountType,
    pub market_status: MarketStatus,
    pub config: OrderMatchingEngineConfig,
    pub core: OrderMatchingCore,
    /* private fields */
}
Expand description

An order matching engine for a single market.

Fields§

§venue: Venue

The venue for the matching engine.

§instrument: InstrumentAny

The instrument for the matching engine.

§raw_id: u32

The instruments raw integer ID for the venue.

§book_type: BookType

The order book type for the matching engine.

§oms_type: OmsType

The order management system (OMS) type for the matching engine.

§account_type: AccountType

The account type for the matching engine.

§market_status: MarketStatus

The market status for the matching engine.

§config: OrderMatchingEngineConfig

The config for the matching engine.

§core: OrderMatchingCore

Implementations§

Source§

impl OrderMatchingEngine

Source

pub fn new( instrument: InstrumentAny, raw_id: u32, fill_model: FillModel, fee_model: FeeModelAny, book_type: BookType, oms_type: OmsType, account_type: AccountType, clock: Rc<RefCell<dyn Clock>>, cache: Rc<RefCell<Cache>>, config: OrderMatchingEngineConfig, ) -> Self

Creates a new OrderMatchingEngine instance.

Source

pub fn reset(&mut self)

Resets the matching engine to its initial state.

Clears the order book, execution state, cached data, and resets all internal components. This is typically used for backtesting scenarios where the engine needs to be reset between test runs.

Source

pub const fn set_fill_model(&mut self, fill_model: FillModel)

Sets the fill model for the matching engine.

Source

pub fn best_bid_price(&self) -> Option<Price>

Returns the best bid price from the order book.

Source

pub fn best_ask_price(&self) -> Option<Price>

Returns the best ask price from the order book.

Source

pub const fn get_book(&self) -> &OrderBook

Returns a reference to the internal order book.

Source

pub const fn get_open_bid_orders(&self) -> &[PassiveOrderAny]

Returns all open bid orders managed by the matching core.

Source

pub const fn get_open_ask_orders(&self) -> &[PassiveOrderAny]

Returns all open ask orders managed by the matching core.

Source

pub fn get_open_orders(&self) -> Vec<PassiveOrderAny>

Returns all open orders from both bid and ask sides.

Source

pub fn order_exists(&self, client_order_id: ClientOrderId) -> bool

Returns true if an order with the given client order ID exists in the matching engine.

Source

pub fn process_order_book_delta(&mut self, delta: &OrderBookDelta)

Process the venues market for the given order book delta.

Source

pub fn process_order_book_deltas(&mut self, deltas: &OrderBookDeltas)

Source

pub fn process_quote_tick(&mut self, quote: &QuoteTick)

§Panics

Panics if updating the order book with the quote tick fails.

Source

pub fn process_bar(&mut self, bar: &Bar)

§Panics

Panics if the bar type configuration is missing a time delta.

Source

pub fn process_trade_tick(&mut self, trade: &TradeTick)

§Panics

Panics if updating the order book with the trade tick fails.

Source

pub fn process_status(&mut self, action: MarketStatusAction)

Source

pub fn process_order(&mut self, order: &mut OrderAny, account_id: AccountId)

§Panics

Panics if the instrument activation timestamp is missing.

Source

pub fn process_modify(&mut self, command: &ModifyOrder, account_id: AccountId)

Source

pub fn process_cancel(&mut self, command: &CancelOrder, account_id: AccountId)

Source

pub fn process_cancel_all( &mut self, command: &CancelAllOrders, account_id: AccountId, )

Source

pub fn process_batch_cancel( &mut self, command: &BatchCancelOrders, account_id: AccountId, )

Source

pub fn iterate(&mut self, timestamp_ns: UnixNanos)

Iterate the matching engine by processing the bid and ask order sides and advancing time up to the given UNIX timestamp_ns.

§Panics

Panics if the best bid or ask price is unavailable when iterating.

Source

pub fn fill_market_order(&mut self, order: &mut OrderAny)

Source

pub fn fill_limit_order(&mut self, order: &mut OrderAny)

§Panics

Panics if the order has no price, or if fill price or quantity precision mismatches occur.

Source

pub fn trigger_stop_order(&mut self, order: &mut OrderAny)

Trait Implementations§

Source§

impl Debug for OrderMatchingEngine

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = Infallible

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

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

Performs the conversion.
Source§

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

Source§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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