pub struct BaseExecutionClient {
pub trader_id: TraderId,
pub client_id: ClientId,
pub venue: Venue,
pub oms_type: OmsType,
pub account_id: AccountId,
pub account_type: AccountType,
pub base_currency: Option<Currency>,
pub is_connected: bool,
/* private fields */
}
Expand description
Base implementation for execution clients providing common functionality.
This struct provides the foundation for all execution clients, handling account state generation, order event creation, and message routing. Execution clients can inherit this base functionality and extend it with venue-specific implementations.
Fields§
§trader_id: TraderId
§client_id: ClientId
§venue: Venue
§oms_type: OmsType
§account_id: AccountId
§account_type: AccountType
§base_currency: Option<Currency>
§is_connected: bool
Implementations§
Source§impl BaseExecutionClient
impl BaseExecutionClient
Sourcepub const fn new(
trader_id: TraderId,
client_id: ClientId,
venue: Venue,
oms_type: OmsType,
account_id: AccountId,
account_type: AccountType,
base_currency: Option<Currency>,
clock: Rc<RefCell<dyn Clock>>,
cache: Rc<RefCell<Cache>>,
) -> Self
pub const fn new( trader_id: TraderId, client_id: ClientId, venue: Venue, oms_type: OmsType, account_id: AccountId, account_type: AccountType, base_currency: Option<Currency>, clock: Rc<RefCell<dyn Clock>>, cache: Rc<RefCell<Cache>>, ) -> Self
Creates a new BaseExecutionClient
instance.
Sourcepub const fn set_connected(&mut self, is_connected: bool)
pub const fn set_connected(&mut self, is_connected: bool)
Sets the connection status of the execution client.
Sourcepub const fn set_account_id(&mut self, account_id: AccountId)
pub const fn set_account_id(&mut self, account_id: AccountId)
Sets the account identifier for the execution client.
Sourcepub fn get_account(&self) -> Option<AccountAny>
pub fn get_account(&self) -> Option<AccountAny>
Returns the account associated with this execution client.
Sourcepub fn generate_account_state(
&self,
balances: Vec<AccountBalance>,
margins: Vec<MarginBalance>,
reported: bool,
ts_event: UnixNanos,
) -> Result<()>
pub fn generate_account_state( &self, balances: Vec<AccountBalance>, margins: Vec<MarginBalance>, reported: bool, ts_event: UnixNanos, ) -> Result<()>
Generates and publishes the account state event.
§Errors
Returns an error if constructing or sending the account state fails.
pub fn generate_order_submitted( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, ts_event: UnixNanos, )
pub fn generate_order_rejected( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, reason: &str, ts_event: UnixNanos, )
pub fn generate_order_accepted( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, ts_event: UnixNanos, )
pub fn generate_order_modify_rejected( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, reason: &str, ts_event: UnixNanos, )
pub fn generate_order_cancel_rejected( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, reason: &str, ts_event: UnixNanos, )
pub fn generate_order_updated( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, quantity: Quantity, price: Price, trigger_price: Option<Price>, ts_event: UnixNanos, venue_order_id_modified: bool, )
pub fn generate_order_canceled( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, ts_event: UnixNanos, )
pub fn generate_order_triggered( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, ts_event: UnixNanos, )
pub fn generate_order_expired( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, ts_event: UnixNanos, )
pub fn generate_order_filled( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, venue_position_id: PositionId, trade_id: TradeId, order_side: OrderSide, order_type: OrderType, last_qty: Quantity, last_px: Price, quote_currency: Currency, commission: Money, liquidity_side: LiquiditySide, ts_event: UnixNanos, )
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BaseExecutionClient
impl !RefUnwindSafe for BaseExecutionClient
impl !Send for BaseExecutionClient
impl !Sync for BaseExecutionClient
impl Unpin for BaseExecutionClient
impl !UnwindSafe for BaseExecutionClient
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
Mutably borrows from an owned value. Read more