Betfair

Provides an API integration for the Betfair spots betting exchange.

Data

class BetfairDataClient ( loop : AbstractEventLoop , client : BetfairClient , msgbus : MessageBus , cache : Cache , clock : LiveClock , logger : Logger , market_filter : dict , instrument_provider : Optional [ BetfairInstrumentProvider ] = None , strict_handling : bool = False )

Bases: LiveMarketDataClient

Provides a data client for the Betfair API.

Parameters :
  • loop ( asyncio.AbstractEventLoop ) – The event loop for the client.

  • client ( BetfairClient ) – The betfair HttpClient

  • msgbus ( MessageBus ) – The message bus for the client.

  • cache ( Cache ) – The cache for the client.

  • clock ( LiveClock ) – The clock for the client.

  • logger ( Logger ) – The logger for the client.

  • market_filter ( dict ) – The market filter.

  • instrument_provider ( BetfairInstrumentProvider , optional ) – The instrument provider.

  • strict_handling ( bool ) – If strict handling mode is enabled.

connect ( ) None

Connect the client.

create_task ( coro : Coroutine , log_msg : Optional [ str ] = None , actions : Optional [ Callable ] = None , success : Optional [ str ] = None ) Task

Run the given coroutine with error handling and optional callback actions when done.

Parameters :
  • coro ( Coroutine ) – The coroutine to run.

  • log_msg ( str , optional ) – The log message for the task.

  • actions ( Callable , optional ) – The actions callback to run when the coroutine is done.

  • success ( str , optional ) – The log message to write on actions success.

Returns :

asyncio.Task

degrade ( self ) void

Degrade the component.

While executing on_degrade() , any exception will be logged and reraised. The component will remain in a DEGRADING state.

Warning

Do not override.

If the component is not in a valid state from which to execute this method, then the component state will not change, and an error will be logged.

disconnect ( ) None

Disconnect the client.

dispose ( self ) void

Dispose of the component.

While executing on_dispose() , any exception will be logged and reraised. The component will remain in a DISPOSING state.

Warning

Do not override.

If the component is not in a valid state from which to execute this method, then the component state will not change, and an error will be logged.

fault ( self ) void

Fault the component.

This method is idempotent and irreversible. No other methods should be called after faulting.

While executing on_fault() , any exception will be logged and reraised. The component will remain in a FAULTING state.

Warning

Do not override.

If the component is not in a valid state from which to execute this method, then the component state will not change, and an error will be logged.

classmethod fully_qualified_name ( type cls ) str

Return the fully qualified name for the components class.

Returns :

str

References

https://www.python.org/dev/peps/pep-3155/

id

The components ID.

Returns :

ComponentId

is_connected

If the client is connected.

Returns :

bool

is_degraded

Return whether the current component state is DEGRADED .

Returns :

bool

is_disposed

Return whether the current component state is DISPOSED .

Returns :

bool

is_faulted

Return whether the current component state is FAULTED .

Returns :

bool

is_initialized

Return whether the component has been initialized (component.state >= INITIALIZED ).

Returns :

bool

is_running

Return whether the current component state is RUNNING .

Returns :

bool

is_stopped

Return whether the current component state is STOPPED .

Returns :

bool

request ( self , DataType data_type , UUID4 correlation_id ) void

Request data for the given data type.

Parameters :
  • data_type ( DataType ) – The data type for the subscription.

  • correlation_id ( UUID4 ) – The correlation ID for the response.

request_bars ( self , BarType bar_type , int limit , UUID4 correlation_id , datetime start=None , datetime end=None ) void

Request historical Bar data.

Parameters :
  • bar_type ( BarType ) – The bar type for the request.

  • limit ( int ) – The limit for the number of returned bars.

  • correlation_id ( UUID4 ) – The correlation ID for the request.

  • start ( datetime , optional ) – The specified from datetime for the data.

  • end ( datetime , optional ) – The specified to datetime for the data. If None then will default to the current datetime.

request_instrument ( self , InstrumentId instrument_id , UUID4 correlation_id ) void

Request Instrument data for the given instrument ID.

Parameters :
  • instrument_id ( InstrumentId ) – The instrument ID for the request.

  • correlation_id ( UUID4 ) – The correlation ID for the request.

request_instruments ( self , Venue venue , UUID4 correlation_id ) void

Request all Instrument data for the given venue.

Parameters :
  • venue ( Venue ) – The venue for the request.

  • correlation_id ( UUID4 ) – The correlation ID for the request.

request_quote_ticks ( self , InstrumentId instrument_id , int limit , UUID4 correlation_id , datetime start=None , datetime end=None ) void

Request historical QuoteTick data.

Parameters :
  • instrument_id ( InstrumentId ) – The tick instrument ID for the request.

  • limit ( int ) – The limit for the number of returned ticks.

  • correlation_id ( UUID4 ) – The correlation ID for the request.

  • start ( datetime , optional ) – The specified from datetime for the data.

  • end ( datetime , optional ) – The specified to datetime for the data. If None then will default to the current datetime.

request_trade_ticks ( self , InstrumentId instrument_id , int limit , UUID4 correlation_id , datetime start=None , datetime end=None ) void

Request historical TradeTick data.

Parameters :
  • instrument_id ( InstrumentId ) – The tick instrument ID for the request.

  • limit ( int ) – The limit for the number of returned ticks.

  • correlation_id ( UUID4 ) – The correlation ID for the request.

  • start ( datetime , optional ) – The specified from datetime for the data.

  • end ( datetime , optional ) – The specified to datetime for the data. If None then will default to the current datetime.

reset ( self ) void

Reset the component.

All stateful fields are reset to their initial value.

While executing on_reset() , any exception will be logged and reraised. The component will remain in a RESETTING state.

Warning

Do not override.

If the component is not in a valid state from which to execute this method, then the component state will not change, and an error will be logged.

resume ( self ) void

Resume the component.

While executing on_resume() , any exception will be logged and reraised. The component will remain in a RESUMING state.

Warning

Do not override.

If the component is not in a valid state from which to execute this method, then the component state will not change, and an error will be logged.

async run_after_delay ( delay : float , coro : Coroutine ) None

Run the given coroutine after a delay.

Parameters :
  • delay ( float ) – The delay (seconds) before running the coroutine.

  • coro ( Coroutine ) – The coroutine to run after the initial delay.

start ( self ) void

Start the component.

While executing on_start() , any exception will be logged and reraised. The component will remain in a STARTING state.

Warning

Do not override.

If the component is not in a valid state from which to execute this method, then the component state will not change, and an error will be logged.

state

Return the components current state.

Returns :

ComponentState

stop ( self ) void

Stop the component.

While executing on_stop() , any exception will be logged and reraised. The component will remain in a STOPPING state.

Warning

Do not override.

If the component is not in a valid state from which to execute this method, then the component state will not change, and an error will be logged.

subscribe ( self , DataType data_type ) void

Subscribe to data for the given data type.

Parameters :

data_type ( DataType ) – The data type for the subscription.

subscribe_bars ( self , BarType bar_type ) void

Subscribe to Bar data for the given bar type.

Parameters :

bar_type ( BarType ) – The bar type to subscribe to.

subscribe_instrument ( self , InstrumentId instrument_id ) void

Subscribe to the Instrument with the given instrument ID.

subscribe_instrument_close ( self , InstrumentId instrument_id ) void

Subscribe to InstrumentClose updates for the given instrument ID.

Parameters :

instrument_id ( InstrumentId ) – The tick instrument to subscribe to.

subscribe_instrument_status_updates ( self , InstrumentId instrument_id ) void

Subscribe to InstrumentStatusUpdates data for the given instrument ID.

Parameters :

instrument_id ( InstrumentId ) – The tick instrument to subscribe to.

subscribe_instruments ( self ) void

Subscribe to all Instrument data.

subscribe_order_book_deltas ( self , InstrumentId instrument_id , BookType book_type , int depth=0 , dict kwargs=None ) void

Subscribe to OrderBookDeltas data for the given instrument ID.

Parameters :
  • instrument_id ( InstrumentId ) – The order book instrument to subscribe to.

  • book_type (BookType { L1_TBBO , L2_MBP , L3_MBO }) – The order book type.

  • depth ( int , optional , default None ) – The maximum depth for the subscription.

  • kwargs ( dict , optional ) – The keyword arguments for exchange specific parameters.

subscribe_order_book_snapshots ( self , InstrumentId instrument_id , BookType book_type , int depth=0 , dict kwargs=None ) void

Subscribe to OrderBookSnapshot data for the given instrument ID.

Parameters :
  • instrument_id ( InstrumentId ) – The order book instrument to subscribe to.

  • book_type (BookType { L1_TBBO , L2_MBP , L3_MBO }) – The order book level.

  • depth ( int , optional ) – The maximum depth for the order book. A depth of 0 is maximum depth.

  • kwargs ( dict , optional ) – The keyword arguments for exchange specific parameters.

subscribe_quote_ticks ( self , InstrumentId instrument_id ) void

Subscribe to QuoteTick data for the given instrument ID.

Parameters :

instrument_id ( InstrumentId ) – The tick instrument to subscribe to.

subscribe_ticker ( self , InstrumentId instrument_id ) void

Subscribe to Ticker data for the given instrument ID.

Parameters :

instrument_id ( InstrumentId ) – The ticker instrument to subscribe to.

subscribe_trade_ticks ( self , InstrumentId instrument_id ) void

Subscribe to TradeTick data for the given instrument ID.

Parameters :

instrument_id ( InstrumentId ) – The tick instrument to subscribe to.

subscribe_venue_status_updates ( self , Venue venue ) void

Subscribe to InstrumentStatusUpdate data for the venue.

Parameters :

venue ( Venue ) – The venue to subscribe to.

subscribed_bars ( self ) list

Return the bar types subscribed to.

Returns :

list[BarType]

subscribed_generic_data ( self ) list

Return the generic data types subscribed to.

Returns :

list[DataType]

subscribed_instrument_close ( self ) list

Return the instrument closes subscribed to.

Returns :

list[InstrumentId]

subscribed_instrument_status_updates ( self ) list

Return the status update instruments subscribed to.

Returns :

list[InstrumentId]

subscribed_instruments ( self ) list

Return the instruments subscribed to.

Returns :

list[InstrumentId]

subscribed_order_book_deltas ( self ) list

Return the order book delta instruments subscribed to.

Returns :

list[InstrumentId]

subscribed_order_book_snapshots ( self ) list

Return the order book snapshot instruments subscribed to.

Returns :

list[InstrumentId]

subscribed_quote_ticks ( self ) list

Return the quote tick instruments subscribed to.

Returns :

list[InstrumentId]

subscribed_tickers ( self ) list

Return the ticker instruments subscribed to.

Returns :

list[InstrumentId]

subscribed_trade_ticks ( self ) list

Return the trade tick instruments subscribed to.

Returns :

list[InstrumentId]

subscribed_venue_status_updates ( self ) list

Return the status update instruments subscribed to.

Returns :

list[InstrumentId]

trader_id

The trader ID associated with the component.

Returns :

TraderId

type

The components type.

Returns :

type

unsubscribe ( self , DataType data_type ) void

Unsubscribe from data for the given data type.

Parameters :

data_type ( DataType ) – The data type for the subscription.

unsubscribe_bars ( self , BarType bar_type ) void

Unsubscribe from Bar data for the given bar type.

Parameters :

bar_type ( BarType ) – The bar type to unsubscribe from.

unsubscribe_instrument ( self , InstrumentId instrument_id ) void

Unsubscribe from Instrument data for the given instrument ID.

Parameters :

instrument_id ( InstrumentId ) – The instrument to unsubscribe from.

unsubscribe_instrument_close ( self , InstrumentId instrument_id ) void

Unsubscribe from InstrumentClose data for the given instrument ID.

Parameters :

instrument_id ( InstrumentId ) – The tick instrument to unsubscribe from.

unsubscribe_instrument_status_updates ( self , InstrumentId instrument_id ) void

Unsubscribe from InstrumentStatusUpdate data for the given instrument ID.

Parameters :

instrument_id ( InstrumentId ) – The instrument status updates to unsubscribe from.

unsubscribe_instruments ( self ) void

Unsubscribe from all Instrument data.

unsubscribe_order_book_deltas ( self , InstrumentId instrument_id ) void

Unsubscribe from OrderBookDeltas data for the given instrument ID.

Parameters :

instrument_id ( InstrumentId ) – The order book instrument to unsubscribe from.

unsubscribe_order_book_snapshots ( self , InstrumentId instrument_id ) void

Unsubscribe from OrderBookSnapshot data for the given instrument ID.

Parameters :

instrument_id ( InstrumentId ) – The order book instrument to unsubscribe from.

unsubscribe_quote_ticks ( self , InstrumentId instrument_id ) void

Unsubscribe from QuoteTick data for the given instrument ID.

Parameters :

instrument_id ( InstrumentId ) – The tick instrument to unsubscribe from.

unsubscribe_ticker ( self , InstrumentId instrument_id ) void

Unsubscribe from Ticker data for the given instrument ID.

Parameters :

instrument_id ( InstrumentId ) – The ticker instrument to unsubscribe from.

unsubscribe_trade_ticks ( self , InstrumentId instrument_id ) void

Unsubscribe from TradeTick data for the given instrument ID.

Parameters :

instrument_id ( InstrumentId ) – The tick instrument to unsubscribe from.

unsubscribe_venue_status_updates ( self , Venue venue ) void

Unsubscribe from InstrumentStatusUpdate data for the given venue.

Parameters :

venue ( Venue ) – The venue to unsubscribe from.

venue

The clients venue ID (if not a routing client).

Returns :

Venue or None

Data Types

class SubscriptionStatus ( value , names = None , * , module = None , qualname = None , type = None , start = 1 , boundary = None )

Bases: Enum

Represents a Betfair subscription status.

class BSPOrderBookDeltas

Bases: OrderBookDeltas

Represents a batch of Betfair BSP order book delta.

book_type

The order book type (L1_TBBO, L2_MBP, L3_MBO).

Returns :

BookType

deltas

The order book deltas.

Returns :

list[OrderBookDelta]

static from_dict ( dict values ) OrderBookDeltas

Return order book deltas from the given dict values.

Parameters :

values ( dict [ str , object ] ) – The values for initialization.

Returns :

OrderBookDeltas

classmethod fully_qualified_name ( type cls ) str

Return the fully qualified name for the Data class.

Returns :

str

References

https://www.python.org/dev/peps/pep-3155/

instrument_id

The instrument ID for the order book.

Returns :

InstrumentId

sequence

The unique sequence number.

Returns :

uint64

time_in_force

The time in force for this update.

Returns :

TimeInForce

static to_dict ( OrderBookDeltas obj )

Return a dictionary representation of this object.

Returns :

dict[str, object]

ts_event

The UNIX timestamp (nanoseconds) when the data event occurred.

Returns :

uint64_t

ts_init

The UNIX timestamp (nanoseconds) when the object was initialized.

Returns :

uint64_t

class BSPOrderBookDelta

Bases: OrderBookDelta

Represents a Betfair BSP order book delta.

static from_dict ( dict values ) OrderBookDelta

Return an order book delta from the given dict values.

Parameters :

values ( dict [ str , object ] ) – The values for initialization.

Returns :

OrderBookDelta

static to_dict ( OrderBookDelta obj )

Return a dictionary representation of this object.

Returns :

dict[str, object]

action

The order book delta action { ADD , UPDATED , DELETE , CLEAR }.

Returns :

BookAction

book_type

The order book type (L1_TBBO, L2_MBP, L3_MBO).

Returns :

BookType

classmethod fully_qualified_name ( type cls ) str

Return the fully qualified name for the Data class.

Returns :

str

References

https://www.python.org/dev/peps/pep-3155/

instrument_id

The instrument ID for the order book.

Returns :

InstrumentId

order

The order to apply.

Returns :

Order

sequence

The unique sequence number.

Returns :

uint64

time_in_force

The time in force for this update.

Returns :

TimeInForce

ts_event

The UNIX timestamp (nanoseconds) when the data event occurred.

Returns :

uint64_t

ts_init

The UNIX timestamp (nanoseconds) when the object was initialized.

Returns :

uint64_t

class BetfairTicker ( instrument_id : InstrumentId , ts_event : int , ts_init : int , last_traded_price : float = None , traded_volume : float = None , starting_price_near : float = None , starting_price_far : float = None )

Bases: Ticker

Represents a Betfair ticker.

classmethod from_dict ( dict values ) Ticker

Return a ticker from the given dict values.

Parameters :

values ( dict [ str , object ] ) – The values for initialization.

Returns :

Ticker

to_dict ( Ticker obj )

Return a dictionary representation of this object.

Returns :

dict[str, object]

classmethod fully_qualified_name ( type cls ) str

Return the fully qualified name for the Data class.

Returns :

str

References

https://www.python.org/dev/peps/pep-3155/

instrument_id

The ticker instrument ID.

Returns :

InstrumentId

ts_event

The UNIX timestamp (nanoseconds) when the data event occurred.

Returns :

uint64_t

ts_init

The UNIX timestamp (nanoseconds) when the object was initialized.

Returns :

uint64_t

class BetfairStartingPrice ( instrument_id : InstrumentId , ts_event : int , ts_init : int , bsp : float = None )

Bases: Data

Represents the realised Betfair Starting Price.

classmethod fully_qualified_name ( type cls ) str

Return the fully qualified name for the Data class.

Returns :

str

References

https://www.python.org/dev/peps/pep-3155/

ts_event

The UNIX timestamp (nanoseconds) when the data event occurred.

Returns :

uint64_t

ts_init

The UNIX timestamp (nanoseconds) when the object was initialized.

Returns :

uint64_t

Execution

class BetfairExecutionClient ( loop : AbstractEventLoop , client : BetfairClient , base_currency : Currency , msgbus : MessageBus , cache : Cache , clock : LiveClock , logger : Logger , market_filter : dict , instrument_provider : BetfairInstrumentProvider )

Bases: LiveExecutionClient

Provides an execution client for Betfair.

Parameters :
  • loop ( asyncio.AbstractEventLoop ) – The event loop for the client.

  • client ( BetfairClient ) – The Betfair HttpClient.

  • base_currency ( Currency ) – The account base currency for the client.

  • msgbus ( MessageBus ) – The message bus for the client.

  • cache ( Cache ) – The cache for the client.

  • clock ( LiveClock ) – The clock for the client.

  • logger ( Logger ) – The logger for the client.

  • market_filter ( dict ) – The market filter.

  • instrument_provider ( BetfairInstrumentProvider ) – The instrument provider.

async watch_stream ( )

Ensure socket stream is connected

async generate_order_status_report ( instrument_id : InstrumentId , client_order_id : Optional [ ClientOrderId ] = None , venue_order_id : Optional [ VenueOrderId ] = None ) Optional [ OrderStatusReport ]

Generate an OrderStatusReport for the given order identifier parameter(s).

If the order is not found, or an error occurs, then logs and returns None .

Parameters :
  • instrument_id ( InstrumentId ) – The instrument ID for the report.

  • client_order_id ( ClientOrderId , optional ) – The client order ID for the report.

  • venue_order_id ( VenueOrderId , optional ) – The venue order ID for the report.

Returns :

OrderStatusReport or None

Raises :

ValueError – If both the client_order_id and venue_order_id are None .

async generate_order_status_reports ( instrument_id : InstrumentId = None , start : Optional [ Timestamp ] = None , end : Optional [ Timestamp ] = None , open_only : bool = False ) list [ nautilus_trader.execution.reports.OrderStatusReport ]

Generate a list of ` OrderStatusReport`s with optional query filters.

The returned list may be empty if no orders match the given parameters.

Parameters :
  • instrument_id ( InstrumentId , optional ) – The instrument ID query filter.

  • start ( pd.Timestamp , optional ) – The start datetime query filter.

  • end ( pd.Timestamp , optional ) – The end datetime query filter.

  • open_only ( bool , default False ) – If the query is for open orders only.

Returns :

list[OrderStatusReport]

async generate_trade_reports ( instrument_id : InstrumentId = None , venue_order_id : VenueOrderId = None , start : Optional [ Timestamp ] = None , end : Optional [ Timestamp ] = None ) list [ nautilus_trader.execution.reports.TradeReport ]

Generate a list of ` TradeReport`s with optional query filters.

The returned list may be empty if no trades match the given parameters.

Parameters :
  • instrument_id ( InstrumentId , optional ) – The instrument ID query filter.

  • venue_order_id ( VenueOrderId , optional ) – The venue order ID (assigned by the venue) query filter.

  • start ( pd.Timestamp , optional ) – The start datetime query filter.

  • end ( pd.Timestamp , optional ) – The end datetime query filter.

Returns :

list[TradeReport]

async generate_position_status_reports ( instrument_id : InstrumentId = None , start : Optional [ Timestamp ] = None , end : Optional [ Timestamp ] = None ) list [ nautilus_trader.execution.reports.PositionStatusReport ]

Generate a list of ` PositionStatusReport`s with optional query filters.

The returned list may be empty if no positions match the given parameters.

Parameters :
  • instrument_id ( InstrumentId , optional ) – The instrument ID query filter.

  • start ( pd.Timestamp , optional ) – The start datetime query filter.

  • end ( pd.Timestamp , optional ) – The end datetime query filter.

Returns :

list[PositionStatusReport]

async check_account_currency ( )

Check account currency against BetfairClient

handle_order_stream_update ( raw : bytes ) None

Handle an update from the order stream socket

async wait_for_order ( venue_order_id : VenueOrderId , timeout_seconds = 10.0 ) Optional [ ClientOrderId ]

We may get an order update from the socket before our submit_order response has come back (with our betId).

As a precaution, wait up to timeout_seconds for the betId to be added to self.order_id_to_client_order_id .

account_id

The clients account ID.

Returns :

AccountId or None

account_type

The clients account type.

Returns :

AccountType

base_currency

The clients account base currency (None for multi-currency accounts).

Returns :

Currency or None

cancel_all_orders ( self , CancelAllOrders command ) void

Cancel all orders for the instrument ID contained in the given command.

Parameters :

command ( CancelAllOrders ) – The command to execute.

cancel_order ( self , CancelOrder command ) void

Cancel the order with the client order ID contained in the given command.

Parameters :

command ( CancelOrder ) – The command to execute.

connect ( ) None

Connect the client.

create_task ( coro : Coroutine , log_msg : Optional [ str ] = None , actions : Optional [ Callable ] = None , success : Optional [ str ] = None ) Task

Run the given coroutine with error handling and optional callback actions when done.

Parameters :
  • coro ( Coroutine ) – The coroutine to run.

  • log_msg ( str , optional ) – The log message for the task.

  • actions ( Callable , optional ) – The actions callback to run when the coroutine is done.

  • success ( str , optional ) – The log message to write on actions success.

Returns :

asyncio.Task

degrade ( self ) void

Degrade the component.

While executing on_degrade() , any exception will be logged and reraised. The component will remain in a DEGRADING state.

Warning

Do not override.

If the component is not in a valid state from which to execute this method, then the component state will not change, and an error will be logged.

disconnect ( ) None

Disconnect the client.

dispose ( self ) void

Dispose of the component.

While executing on_dispose() , any exception will be logged and reraised. The component will remain in a DISPOSING state.

Warning

Do not override.

If the component is not in a valid state from which to execute this method, then the component state will not change, and an error will be logged.

fault ( self ) void

Fault the component.

This method is idempotent and irreversible. No other methods should be called after faulting.

While executing on_fault() , any exception will be logged and reraised. The component will remain in a FAULTING state.

Warning

Do not override.

If the component is not in a valid state from which to execute this method, then the component state will not change, and an error will be logged.

classmethod fully_qualified_name ( type cls ) str

Return the fully qualified name for the components class.

Returns :

str

References

https://www.python.org/dev/peps/pep-3155/

generate_account_state ( self , list balances , list margins , bool reported , uint64_t ts_event , dict info=None ) void

Generate an AccountState event and publish on the message bus.

Parameters :
  • balances ( list [ AccountBalance ] ) – The account balances.

  • margins ( list [ MarginBalance ] ) – The margin balances.

  • reported ( bool ) – If the balances are reported directly from the exchange.

  • ts_event ( uint64_t ) – The UNIX timestamp (nanoseconds) when the account state event occurred.

  • info ( dict [ str , object ] ) – The additional implementation specific account information.

async generate_mass_status ( lookback_mins : Optional [ int ] = None ) ExecutionMassStatus

Generate an ExecutionMassStatus report.

Parameters :

lookback_mins ( int , optional ) – The maximum lookback for querying closed orders, trades and positions.

Returns :

ExecutionMassStatus

generate_order_accepted ( self , StrategyId strategy_id , InstrumentId instrument_id , ClientOrderId client_order_id , VenueOrderId venue_order_id , uint64_t ts_event ) void

Generate an OrderAccepted event and send it to the ExecutionEngine .

Parameters :
  • strategy_id ( StrategyId ) – The strategy ID associated with the event.

  • instrument_id ( InstrumentId ) – The instrument ID.

  • client_order_id ( ClientOrderId ) – The client order ID.

  • venue_order_id ( VenueOrderId ) – The venue order ID (assigned by the venue).

  • ts_event ( uint64_t ) – The UNIX timestamp (nanoseconds) when the order accepted event occurred.

generate_order_cancel_rejected ( self , StrategyId strategy_id , InstrumentId instrument_id , ClientOrderId client_order_id , VenueOrderId venue_order_id , unicode reason , uint64_t ts_event ) void

Generate an OrderCancelRejected event and send it to the ExecutionEngine .

Parameters :
  • strategy_id ( StrategyId ) – The strategy ID associated with the event.

  • instrument_id ( InstrumentId ) – The instrument ID.

  • client_order_id ( ClientOrderId ) – The client order ID.

  • venue_order_id ( VenueOrderId ) – The venue order ID (assigned by the venue).

  • reason ( str ) – The order cancel rejected reason.

  • ts_event ( uint64_t ) – The UNIX timestamp (nanoseconds) when the order cancel rejected event occurred.

generate_order_canceled ( self , StrategyId strategy_id , InstrumentId instrument_id , ClientOrderId client_order_id , VenueOrderId venue_order_id , uint64_t ts_event ) void

Generate an OrderCanceled event and send it to the ExecutionEngine .

Parameters :
  • strategy_id ( StrategyId ) – The strategy ID associated with the event.

  • instrument_id ( InstrumentId ) – The instrument ID.

  • client_order_id ( ClientOrderId ) – The client order ID.

  • venue_order_id ( VenueOrderId ) – The venue order ID (assigned by the venue).

  • ts_event ( uint64_t ) – The UNIX timestamp (nanoseconds) when order canceled event occurred.

generate_order_expired ( self , StrategyId strategy_id , InstrumentId instrument_id , ClientOrderId client_order_id , VenueOrderId venue_order_id , uint64_t ts_event ) void

Generate an OrderExpired event and send it to the ExecutionEngine .

Parameters :
  • strategy_id ( StrategyId ) – The strategy ID associated with the event.

  • instrument_id ( InstrumentId ) – The instrument ID.

  • client_order_id ( ClientOrderId ) – The client order ID.

  • venue_order_id ( VenueOrderId ) – The venue order ID (assigned by the venue).

  • ts_event ( uint64_t ) – The UNIX timestamp (nanoseconds) when the order expired event occurred.

generate_order_filled ( self, StrategyId strategy_id, InstrumentId instrument_id, ClientOrderId client_order_id, VenueOrderId venue_order_id, PositionId venue_position_id: Optional[PositionId], TradeId trade_id, OrderSide order_side, OrderType order_type, Quantity last_qty, Price last_px, Currency quote_currency, Money commission, LiquiditySide liquidity_side, uint64_t ts_event ) void

Generate an OrderFilled event and send it to the ExecutionEngine .

Parameters :
  • strategy_id ( StrategyId ) – The strategy ID associated with the event.

  • instrument_id ( InstrumentId ) – The instrument ID.

  • client_order_id ( ClientOrderId ) – The client order ID.

  • venue_order_id ( VenueOrderId ) – The venue order ID (assigned by the venue).

  • trade_id ( TradeId ) – The trade ID.

  • venue_position_id (PositionId, optional with no default so None must be passed explicitly) – The venue position ID associated with the order. If the trading venue has assigned a position ID / ticket then pass that here, otherwise pass None and the execution engine OMS will handle position ID resolution.

  • order_side (OrderSide { BUY , SELL }) – The execution order side.

  • order_type ( OrderType ) – The execution order type.

  • last_qty ( Quantity ) – The fill quantity for this execution.

  • last_px ( Price ) – The fill price for this execution (not average price).

  • quote_currency ( Currency ) – The currency of the price.

  • commission ( Money ) – The fill commission.

  • liquidity_side (LiquiditySide { NO_LIQUIDITY_SIDE , MAKER , TAKER }) – The execution liquidity side.

  • ts_event ( uint64_t ) – The UNIX timestamp (nanoseconds) when the order filled event occurred.

generate_order_modify_rejected ( self , StrategyId strategy_id , InstrumentId instrument_id , ClientOrderId client_order_id , VenueOrderId venue_order_id , unicode reason , uint64_t ts_event ) void

Generate an OrderModifyRejected event and send it to the ExecutionEngine .

Parameters :
  • strategy_id ( StrategyId ) – The strategy ID associated with the event.

  • instrument_id ( InstrumentId ) – The instrument ID.

  • client_order_id ( ClientOrderId ) – The client order ID.

  • venue_order_id ( VenueOrderId ) – The venue order ID (assigned by the venue).

  • reason ( str ) – The order update rejected reason.

  • ts_event ( uint64_t ) – The UNIX timestamp (nanoseconds) when the order update rejection event occurred.

generate_order_rejected ( self , StrategyId strategy_id , InstrumentId instrument_id , ClientOrderId client_order_id , unicode reason , uint64_t ts_event ) void

Generate an OrderRejected event and send it to the ExecutionEngine .

Parameters :
  • strategy_id ( StrategyId ) – The strategy ID associated with the event.

  • instrument_id ( InstrumentId ) – The instrument ID.

  • client_order_id ( ClientOrderId ) – The client order ID.

  • reason ( datetime ) – The order rejected reason.

  • ts_event ( uint64_t ) – The UNIX timestamp (nanoseconds) when the order rejected event occurred.

generate_order_submitted ( self , StrategyId strategy_id , InstrumentId instrument_id , ClientOrderId client_order_id , uint64_t ts_event ) void

Generate an OrderSubmitted event and send it to the ExecutionEngine .

Parameters :
  • strategy_id ( StrategyId ) – The strategy ID associated with the event.

  • instrument_id ( InstrumentId ) – The instrument ID.

  • client_order_id ( ClientOrderId ) – The client order ID.

  • ts_event ( uint64_t ) – The UNIX timestamp (nanoseconds) when the order submitted event occurred.

generate_order_triggered ( self , StrategyId strategy_id , InstrumentId instrument_id , ClientOrderId client_order_id , VenueOrderId venue_order_id , uint64_t ts_event ) void

Generate an OrderTriggered event and send it to the ExecutionEngine .

Parameters :
  • strategy_id ( StrategyId ) – The strategy ID associated with the event.

  • instrument_id ( InstrumentId ) – The instrument ID.

  • client_order_id ( ClientOrderId ) – The client order ID.

  • venue_order_id ( VenueOrderId ) – The venue order ID (assigned by the venue).

  • ts_event ( uint64_t ) – The UNIX timestamp (nanoseconds) when the order triggered event occurred.

generate_order_updated ( self , StrategyId strategy_id , InstrumentId instrument_id , ClientOrderId client_order_id , VenueOrderId venue_order_id , Quantity quantity , Price price , Price trigger_price , uint64_t ts_event , bool venue_order_id_modified=False ) void

Generate an OrderUpdated event and send it to the ExecutionEngine .

Parameters :
  • strategy_id ( StrategyId ) – The strategy ID associated with the event.

  • instrument_id ( InstrumentId ) – The instrument ID.

  • client_order_id ( ClientOrderId ) – The client order ID.

  • venue_order_id ( VenueOrderId ) – The venue order ID (assigned by the venue).

  • quantity ( Quantity ) – The orders current quantity.

  • price ( Price ) – The orders current price.

  • trigger_price (Price, optional with no default so None must be passed explicitly) – The orders current trigger price.

  • ts_event ( uint64_t ) – The UNIX timestamp (nanoseconds) when the order update event occurred.

  • venue_order_id_modified ( bool ) – If the ID was modified for this event.

get_account ( self ) Account

Return the account for the client (if registered).

Returns :

Account or None

id

The components ID.

Returns :

ComponentId

is_connected

If the client is connected.

Returns :

bool

is_degraded

Return whether the current component state is DEGRADED .

Returns :

bool

is_disposed

Return whether the current component state is DISPOSED .

Returns :

bool

is_faulted

Return whether the current component state is FAULTED .

Returns :

bool

is_initialized

Return whether the component has been initialized (component.state >= INITIALIZED ).

Returns :

bool

is_running

Return whether the current component state is RUNNING .

Returns :

bool

is_stopped

Return whether the current component state is STOPPED .

Returns :

bool

modify_order ( self , ModifyOrder command ) void

Modify the order with parameters contained in the command.

Parameters :

command ( ModifyOrder ) – The command to execute.

oms_type

The venues order management system type.

Returns :

OmsType

query_order ( self , QueryOrder command ) void

Initiate a reconciliation for the queried order which will generate an OrderStatusReport .

Parameters :

command ( QueryOrder ) – The command to execute.

reset ( self ) void

Reset the component.

All stateful fields are reset to their initial value.

While executing on_reset() , any exception will be logged and reraised. The component will remain in a RESETTING state.

Warning

Do not override.

If the component is not in a valid state from which to execute this method, then the component state will not change, and an error will be logged.

resume ( self ) void

Resume the component.

While executing on_resume() , any exception will be logged and reraised. The component will remain in a RESUMING state.

Warning

Do not override.

If the component is not in a valid state from which to execute this method, then the component state will not change, and an error will be logged.

async run_after_delay ( delay : float , coro : Coroutine ) None

Run the given coroutine after a delay.

Parameters :
  • delay ( float ) – The delay (seconds) before running the coroutine.

  • coro ( Coroutine ) – The coroutine to run after the initial delay.

start ( self ) void

Start the component.

While executing on_start() , any exception will be logged and reraised. The component will remain in a STARTING state.

Warning

Do not override.

If the component is not in a valid state from which to execute this method, then the component state will not change, and an error will be logged.

state

Return the components current state.

Returns :

ComponentState

stop ( self ) void

Stop the component.

While executing on_stop() , any exception will be logged and reraised. The component will remain in a STOPPING state.

Warning

Do not override.

If the component is not in a valid state from which to execute this method, then the component state will not change, and an error will be logged.

submit_order ( self , SubmitOrder command ) void

Submit the order contained in the given command for execution.

Parameters :

command ( SubmitOrder ) – The command to execute.

submit_order_list ( self , SubmitOrderList command ) void

Submit the order list contained in the given command for execution.

Parameters :

command ( SubmitOrderList ) – The command to execute.

trader_id

The trader ID associated with the component.

Returns :

TraderId

type

The components type.

Returns :

type

venue

The clients venue ID (if not a routing client).

Returns :

Venue or None

Factories

get_cached_betfair_client ( loop : AbstractEventLoop , logger : Logger , username : Optional [ str ] = None , password : Optional [ str ] = None , app_key : Optional [ str ] = None , cert_dir : Optional [ str ] = None ) BetfairClient

Cache and return a Betfair HTTP client with the given credentials.

If a cached client with matching credentials already exists, then that cached client will be returned.

Parameters :
  • loop ( asyncio.AbstractEventLoop ) – The event loop for the client.

  • logger ( Logger ) – The logger for the client.

  • username ( str , optional ) – The API username for the client. If None then will source from the BETFAIR_USERNAME env var.

  • password ( str , optional ) – The API password for the client. If None then will source from the BETFAIR_PASSWORD env var.

  • app_key ( str , optional ) – The API application key for the client. If None then will source from the BETFAIR_APP_KEY env var.

  • cert_dir ( str , optional ) – The API SSL certificate directory for the client. If None then will source from the BETFAIR_CERT_DIR env var.

Returns :

BetfairClient

get_cached_betfair_instrument_provider ( client : BetfairClient , logger : Logger , market_filter : tuple ) BetfairInstrumentProvider

Cache and return a BetfairInstrumentProvider.

If a cached provider already exists, then that cached provider will be returned.

Parameters :
  • client ( BinanceHttpClient ) – The client for the instrument provider.

  • logger ( Logger ) – The logger for the instrument provider.

  • market_filter ( tuple ) – The market filter to load into the instrument provider.

Returns :

BinanceInstrumentProvider

class BetfairLiveDataClientFactory

Bases: LiveDataClientFactory

Provides a Betfair live data client factory.

static create ( loop : AbstractEventLoop , name : str , config : BetfairDataClientConfig , msgbus : MessageBus , cache : Cache , clock : LiveClock , logger : Logger )

Create a new Betfair data client.

Parameters :
  • loop ( asyncio.AbstractEventLoop ) – The event loop for the client.

  • name ( str ) – The client name.

  • config ( dict [ str , Any ] ) – The configuration dictionary.

  • msgbus ( MessageBus ) – The message bus for the client.

  • cache ( Cache ) – The cache for the client.

  • clock ( LiveClock ) – The clock for the client.

  • logger ( Logger ) – The logger for the client.

Returns :

BetfairDataClient

class BetfairLiveExecClientFactory

Bases: LiveExecClientFactory

Provides data and execution clients for Betfair.

static create ( loop : AbstractEventLoop , name : str , config : BetfairExecClientConfig , msgbus : MessageBus , cache : Cache , clock : LiveClock , logger : Logger )

Create a new Betfair execution client.

Parameters :
  • loop ( asyncio.AbstractEventLoop ) – The event loop for the client.

  • name ( str ) – The client name.

  • config ( dict [ str , Any ] ) – The configuration for the client.

  • msgbus ( MessageBus ) – The message bus for the client.

  • cache ( Cache ) – The cache for the client.

  • clock ( LiveClock ) – The clock for the client.

  • logger ( Logger ) – The logger for the client.

Returns :

BetfairExecutionClient

Parsing

Providers

class BetfairInstrumentProvider ( client : Optional [ BetfairClient ] , logger : Logger , filters : Optional [ dict ] = None , config : Optional [ InstrumentProviderConfig ] = None )

Bases: InstrumentProvider

Provides a means of loading BettingInstruments from the Betfair APIClient.

Parameters :
  • client ( BetfairClient , optional ) – The client for the provider.

  • logger ( Logger ) – The logger for the provider.

  • config ( InstrumentProviderConfig , optional ) – The configuration for the provider.

async load_ids_async ( instrument_ids : list [ nautilus_trader.model.identifiers.InstrumentId ] , filters : Optional [ dict ] = None ) None

Load the instruments for the given IDs into the provider, optionally applying the given filters.

Parameters :
  • instrument_ids ( list [ InstrumentId ] ) – The instrument IDs to load.

  • filters ( dict , optional ) – The venue specific instrument loading filters to apply.

Raises :

ValueError – If any instrument_id.venue is not equal to self.venue .

async load_async ( instrument_id : InstrumentId , filters : Optional [ dict ] = None )

Load the instrument for the given ID into the provider asynchronously, optionally applying the given filters.

Parameters :
  • instrument_id ( InstrumentId ) – The instrument ID to load.

  • filters ( dict , optional ) – The venue specific instrument loading filters to apply.

Raises :

ValueError – If instrument_id.venue is not equal to self.venue .

async load_all_async ( market_filter : Optional [ dict ] = None )

Load the latest instruments into the provider asynchronously, optionally applying the given filters.

load_markets ( market_filter : Optional [ dict ] = None )

Search for betfair markets. Useful for debugging / interactive use

search_instruments ( instrument_filter : Optional [ dict ] = None )

Search for instruments within the cache. Useful for debugging / interactive use

get_betting_instrument ( market_id : str , selection_id : str , handicap : str ) BettingInstrument

Return a betting instrument with performance friendly lookup.

add ( instrument : Instrument ) None

Add the given instrument to the provider.

Parameters :

instrument ( Instrument ) – The instrument to add.

add_bulk ( instruments : list [ nautilus_trader.model.instruments.base.Instrument ] ) None

Add the given instruments bulk to the provider.

Parameters :

instruments ( list [ Instrument ] ) – The instruments to add.

add_currency ( currency : Currency ) None

Add the given currency to the provider.

Parameters :

currency ( Currency ) – The currency to add.

property count : int

Return the count of instruments held by the provider.

Returns :

int

currencies ( ) dict [ str , nautilus_trader.model.currency.Currency ]

Return all currencies held by the instrument provider.

Returns :

dict[str, Currency]

currency ( code : str ) Optional [ Currency ]

Return the currency with the given code (if found).

Parameters :

code ( str ) – The currency code.

Returns :

Currency or None

Raises :

ValueError – If code is not a valid string.

find ( instrument_id : InstrumentId ) Optional [ Instrument ]

Return the instrument for the given instrument ID (if found).

Parameters :

instrument_id ( InstrumentId ) – The ID for the instrument

Returns :

Instrument or None

get_all ( ) dict [ nautilus_trader.model.identifiers.InstrumentId , nautilus_trader.model.instruments.base.Instrument ]

Return all loaded instruments as a map keyed by instrument ID.

If no instruments loaded, will return an empty dict.

Returns :

dict[InstrumentId, Instrument]

async initialize ( ) None

Initialize the instrument provider.

If initialize() then will immediately return.

list_all ( ) list [ nautilus_trader.model.instruments.base.Instrument ]

Return all loaded instruments.

Returns :

list[Instrument]

load ( instrument_id : InstrumentId , filters : Optional [ dict ] = None )

Load the instrument for the given ID into the provider, optionally applying the given filters.

Parameters :
  • instrument_id ( InstrumentId ) – The instrument ID to load.

  • filters ( dict , optional ) – The venue specific instrument loading filters to apply.

load_all ( filters : Optional [ dict ] = None ) None

Load the latest instruments into the provider, optionally applying the given filters.

Parameters :

filters ( dict , optional ) – The venue specific instrument loading filters to apply.

load_ids ( instrument_ids : list [ nautilus_trader.model.identifiers.InstrumentId ] , filters : Optional [ dict ] = None )

Load the instruments for the given IDs into the provider, optionally applying the given filters.

Parameters :
  • instrument_ids ( list [ InstrumentId ] ) – The instrument IDs to load.

  • filters ( dict , optional ) – The venue specific instrument loading filters to apply.

property venue : Venue

Return the providers venue.

Returns :

Venue

Sockets

class BetfairStreamClient ( client : BetfairClient , logger_adapter : LoggerAdapter , message_handler , loop : Optional [ AbstractEventLoop ] = None , host : Optional [ str ] = None , port : Optional [ int ] = None , crlf : Optional [ bytes ] = None , encoding : Optional [ str ] = None )

Bases: SocketClient

Provides a streaming client for Betfair .

async connect ( self )
async disconnect ( self )
host

The host for the socket client.

Returns :

str

is_connected

If the client is connected.

Returns :

bool

is_running

If the client is running.

Returns :

bool

is_stopping

If the client is stopping.

Returns :

bool

port

The port for the socket client.

Returns :

int

async post_connection ( self )

The actions to perform post-connection. i.e. sending further connection messages.

async post_disconnection ( self ) None

Actions to be performed post disconnection.

async post_reconnection ( self ) None

Actions to be performed post reconnection.

async reconnect ( self )
async send ( self , bytes raw )
ssl

If the socket client is using SSL.

Returns :

bool

async start ( self )
class BetfairOrderStreamClient ( client : BetfairClient , logger : Logger , message_handler , partition_matched_by_strategy_ref : bool = True , include_overall_position : Optional [ str ] = None , customer_strategy_refs : Optional [ str ] = None , ** kwargs )

Bases: BetfairStreamClient

Provides an order stream client for Betfair .

async post_connection ( self )

The actions to perform post-connection. i.e. sending further connection messages.

async connect ( self )
async disconnect ( self )
host

The host for the socket client.

Returns :

str

is_connected

If the client is connected.

Returns :

bool

is_running

If the client is running.

Returns :

bool

is_stopping

If the client is stopping.

Returns :

bool

port

The port for the socket client.

Returns :

int

async post_disconnection ( self ) None

Actions to be performed post disconnection.

async post_reconnection ( self ) None

Actions to be performed post reconnection.

async reconnect ( self )
async send ( self , bytes raw )
ssl

If the socket client is using SSL.

Returns :

bool

async start ( self )
class BetfairMarketStreamClient ( client : BetfairClient , logger : Logger , message_handler : Callable , ** kwargs )

Bases: BetfairStreamClient

Provides a Betfair market stream client.

async post_connection ( self )

The actions to perform post-connection. i.e. sending further connection messages.

async connect ( self )
async disconnect ( self )
host

The host for the socket client.

Returns :

str

is_connected

If the client is connected.

Returns :

bool

is_running

If the client is running.

Returns :

bool

is_stopping

If the client is stopping.

Returns :

bool

port

The port for the socket client.

Returns :

int

async post_disconnection ( self ) None

Actions to be performed post disconnection.

async post_reconnection ( self ) None

Actions to be performed post reconnection.

async reconnect ( self )
async send ( self , bytes raw )
ssl

If the socket client is using SSL.

Returns :

bool

async start ( self )

Utility