pub struct SandboxExecutionClient { /* private fields */ }Expand description
A sandbox execution client for paper trading against live market data.
The SandboxExecutionClient simulates order execution using the OrderMatchingEngine
to match orders against market data. This enables strategy testing in real-time
without actual order execution on exchanges.
Implementations§
Source§impl SandboxExecutionClient
impl SandboxExecutionClient
Sourcepub fn new(
core: ExecutionClientCore,
config: SandboxExecutionClientConfig,
clock: Rc<RefCell<dyn Clock>>,
cache: Rc<RefCell<Cache>>,
) -> Self
pub fn new( core: ExecutionClientCore, config: SandboxExecutionClientConfig, clock: Rc<RefCell<dyn Clock>>, cache: Rc<RefCell<Cache>>, ) -> Self
Creates a new SandboxExecutionClient instance.
Sourcepub const fn config(&self) -> &SandboxExecutionClientConfig
pub const fn config(&self) -> &SandboxExecutionClientConfig
Returns a reference to the configuration.
Sourcepub fn matching_engine_count(&self) -> usize
pub fn matching_engine_count(&self) -> usize
Returns the number of active matching engines.
Sourcepub fn process_quote_tick(&self, quote: &QuoteTick) -> Result<()>
pub fn process_quote_tick(&self, quote: &QuoteTick) -> Result<()>
Processes a quote tick through the matching engine.
§Errors
Returns an error if the instrument is not found in the cache.
Sourcepub fn process_trade_tick(&self, trade: &TradeTick) -> Result<()>
pub fn process_trade_tick(&self, trade: &TradeTick) -> Result<()>
Processes a trade tick through the matching engine.
§Errors
Returns an error if the instrument is not found in the cache.
Sourcepub fn process_bar(&self, bar: &Bar) -> Result<()>
pub fn process_bar(&self, bar: &Bar) -> Result<()>
Processes a bar through the matching engine.
§Errors
Returns an error if the instrument is not found in the cache.
Sourcepub fn process_order_book_deltas(&self, deltas: &OrderBookDeltas) -> Result<()>
pub fn process_order_book_deltas(&self, deltas: &OrderBookDeltas) -> Result<()>
Processes order book deltas through the matching engine.
§Errors
Returns an error if the instrument is not found in the cache.
Trait Implementations§
Source§impl Debug for SandboxExecutionClient
impl Debug for SandboxExecutionClient
Source§impl ExecutionClient for SandboxExecutionClient
impl ExecutionClient for SandboxExecutionClient
fn is_connected(&self) -> bool
fn client_id(&self) -> ClientId
fn account_id(&self) -> AccountId
fn venue(&self) -> Venue
fn oms_type(&self) -> OmsType
fn get_account(&self) -> Option<AccountAny>
Source§fn generate_account_state(
&self,
balances: Vec<AccountBalance>,
margins: Vec<MarginBalance>,
reported: bool,
ts_event: UnixNanos,
) -> Result<()>
fn generate_account_state( &self, balances: Vec<AccountBalance>, margins: Vec<MarginBalance>, reported: bool, ts_event: UnixNanos, ) -> Result<()>
Source§fn connect<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn connect<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn disconnect<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn disconnect<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn submit_order(&self, cmd: &SubmitOrder) -> Result<()>
fn submit_order(&self, cmd: &SubmitOrder) -> Result<()>
Source§fn submit_order_list(&self, cmd: &SubmitOrderList) -> Result<()>
fn submit_order_list(&self, cmd: &SubmitOrderList) -> Result<()>
Source§fn cancel_all_orders(&self, cmd: &CancelAllOrders) -> Result<()>
fn cancel_all_orders(&self, cmd: &CancelAllOrders) -> Result<()>
Source§fn batch_cancel_orders(&self, cmd: &BatchCancelOrders) -> Result<()>
fn batch_cancel_orders(&self, cmd: &BatchCancelOrders) -> Result<()>
Source§fn query_account(&self, _cmd: &QueryAccount) -> Result<()>
fn query_account(&self, _cmd: &QueryAccount) -> Result<()>
Source§fn query_order(&self, _cmd: &QueryOrder) -> Result<()>
fn query_order(&self, _cmd: &QueryOrder) -> Result<()>
Source§fn generate_order_status_report<'life0, 'life1, 'async_trait>(
&'life0 self,
_cmd: &'life1 GenerateOrderStatusReport,
) -> Pin<Box<dyn Future<Output = Result<Option<OrderStatusReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn generate_order_status_report<'life0, 'life1, 'async_trait>(
&'life0 self,
_cmd: &'life1 GenerateOrderStatusReport,
) -> Pin<Box<dyn Future<Output = Result<Option<OrderStatusReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn generate_order_status_reports<'life0, 'life1, 'async_trait>(
&'life0 self,
_cmd: &'life1 GenerateOrderStatusReports,
) -> Pin<Box<dyn Future<Output = Result<Vec<OrderStatusReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn generate_order_status_reports<'life0, 'life1, 'async_trait>(
&'life0 self,
_cmd: &'life1 GenerateOrderStatusReports,
) -> Pin<Box<dyn Future<Output = Result<Vec<OrderStatusReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn generate_fill_reports<'life0, 'async_trait>(
&'life0 self,
_cmd: GenerateFillReports,
) -> Pin<Box<dyn Future<Output = Result<Vec<FillReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn generate_fill_reports<'life0, 'async_trait>(
&'life0 self,
_cmd: GenerateFillReports,
) -> Pin<Box<dyn Future<Output = Result<Vec<FillReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn generate_position_status_reports<'life0, 'life1, 'async_trait>(
&'life0 self,
_cmd: &'life1 GeneratePositionStatusReports,
) -> Pin<Box<dyn Future<Output = Result<Vec<PositionStatusReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn generate_position_status_reports<'life0, 'life1, 'async_trait>(
&'life0 self,
_cmd: &'life1 GeneratePositionStatusReports,
) -> Pin<Box<dyn Future<Output = Result<Vec<PositionStatusReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn generate_mass_status<'life0, 'async_trait>(
&'life0 self,
_lookback_mins: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<Option<ExecutionMassStatus>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn generate_mass_status<'life0, 'async_trait>(
&'life0 self,
_lookback_mins: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<Option<ExecutionMassStatus>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
§fn register_external_order(
&self,
_client_order_id: ClientOrderId,
_venue_order_id: VenueOrderId,
_instrument_id: InstrumentId,
_strategy_id: StrategyId,
_ts_init: UnixNanos,
)
fn register_external_order( &self, _client_order_id: ClientOrderId, _venue_order_id: VenueOrderId, _instrument_id: InstrumentId, _strategy_id: StrategyId, _ts_init: UnixNanos, )
Auto Trait Implementations§
impl !Freeze for SandboxExecutionClient
impl !RefUnwindSafe for SandboxExecutionClient
impl !Send for SandboxExecutionClient
impl !Sync for SandboxExecutionClient
impl Unpin for SandboxExecutionClient
impl !UnwindSafe for SandboxExecutionClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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