Model
The model subpackage defines a rich trading domain model.
The domain model is agnostic of any system design, seeking to represent the logic and state transitions of trading in a generic way. Many system implementations could be built around this domain model.
class AccountBalance
Bases: object
AccountBalance(Money total, Money locked, Money free) -> None
Represents an account balance denominated in a particular currency.
- Parameters:
- Raises:
- ValueError – If money currencies are not equal.
- ValueError – If any money is negative (< 0).
- ValueError – If total - locked != free.
currency
The currency of the account.
- Returns: Currency
free
The account balance free for trading.
- Returns: Money
static from_dict(dict values) → AccountBalance
Return an account balance from the given dict values.
- Parameters: values (dict *[*str , object ]) – The values for initialization.
- Return type: AccountBalance
locked
The account balance locked (assigned to pending orders).
- Returns: Money
to_dict(self) → dict
Return a dictionary representation of this object.
- Return type: dict[str, object]
total
The total account balance.
- Returns: Money
class AccountId
Bases: Identifier
AccountId(unicode value) -> None
Represents a valid account ID.
Must be correctly formatted with two valid strings either side of a hyphen. It is expected an account ID is the name of the issuer with an account number separated by a hyphen.
Example: “IB-D02851908”.
- Parameters: value (str) – The account ID value.
- Raises: ValueError – If value is not a valid string containing a hyphen.
WARNING
The issuer and number ID combination must be unique at the firm level.
get_id(self) → unicode
Return the account ID without issuer name.
- Return type: str
get_issuer(self) → unicode
Return the account issuer for this ID.
- Return type: str
class Bar
Bases: Data
Bar(BarType bar_type, Price open, Price high, Price low, Price close, Quantity volume, uint64_t ts_event, uint64_t ts_init, bool is_revision=False) -> None
Represents an aggregated bar.
- Parameters:
- bar_type (BarType) – The bar type for this bar.
- open (Price) – The bars open price.
- high (Price) – The bars high price.
- low (Price) – The bars low price.
- close (Price) – The bars close price.
- volume (Quantity) – The bars volume.
- ts_event (uint64_t) – UNIX timestamp (nanoseconds) when the data event occurred.
- ts_init (uint64_t) – UNIX timestamp (nanoseconds) when the data object was initialized.
- is_revision (bool , default False) – If this bar is a revision of a previous bar with the same ts_event.
- Raises:
- ValueError – If high is not >= low.
- ValueError – If high is not >= close.
- ValueError – If low is not <= close.
bar_type
BarType
Return the bar type of bar.
- Return type: BarType
- Type: Bar.bar_type
close
Price
Return the close price of the bar.
- Return type: Price
- Type: Bar.close
static from_dict(dict values) → Bar
Return a bar parsed from the given values.
- Parameters: values (dict *[*str , object ]) – The values for initialization.
- Return type: Bar
static from_pyo3(pyo3_bar) → Bar
Return a legacy Cython bar converted from the given pyo3 Rust object.
- Parameters: pyo3_bar (nautilus_pyo3.Bar) – The pyo3 Rust bar to convert from.
- Return type: Bar
static from_pyo3_list(list pyo3_bars) → list[Bar]
Return legacy Cython bars converted from the given pyo3 Rust objects.
- Parameters: pyo3_bars (list *[*nautilus_pyo3.Bar ]) – The pyo3 Rust bars to convert from.
- Return type: list[Bar]
static from_raw(BarType bar_type, int64_t open, int64_t high, int64_t low, int64_t close, uint8_t price_prec, uint64_t volume, uint8_t size_prec, uint64_t ts_event, uint64_t ts_init) → Bar
static from_raw_arrays_to_list(BarType bar_type, uint8_t price_prec, uint8_t size_prec, int64_t[:] opens, int64_t[:] highs, int64_t[:] lows, int64_t[:] closes, uint64_t[:] volumes, uint64_t[:] ts_events, uint64_t[:] ts_inits) → list[Bar]
high
Price
Return the high price of the bar.
- Return type: Price
- Type: Bar.high
is_revision
If this bar is a revision for a previous bar with the same ts_event.
- Returns: bool
is_single_price(self) → bool
If the OHLC are all equal to a single price.
- Return type: bool
low
Price
Return the low price of the bar.
- Return type: Price
- Type: Bar.low
open
Price
Return the open price of the bar.
- Return type: Price
- Type: Bar.open
static to_dict(Bar obj)
Return a dictionary representation of this object.
- Return type: dict[str, object]
to_pyo3(self) → nautilus_pyo3.Bar
Return a pyo3 object from this legacy Cython instance.
- Return type: nautilus_pyo3.Bar
static to_pyo3_list(list bars) → list[nautilus_pyo3.Bar]
Return pyo3 Rust bars converted from the given legacy Cython objects.
- Parameters: bars (list [Bar ]) – The legacy Cython bars to convert from.
- Return type: list[nautilus_pyo3.Bar]
ts_event
int
UNIX timestamp (nanoseconds) when the data event occurred.
- Return type: int
- Type: Bar.ts_event
ts_init
int
UNIX timestamp (nanoseconds) when the object was initialized.
- Return type: int
- Type: Bar.ts_init
volume
Quantity
Return the volume of the bar.
- Return type: Quantity
- Type: Bar.volume
class BarSpecification
Bases: object
BarSpecification(int step, BarAggregation aggregation, PriceType price_type) -> None
Represents a bar aggregation specification including a step, aggregation method/rule and price type.
- Parameters:
- step (int) – The step for binning samples for bar aggregation (> 0).
- aggregation (BarAggregation) – The type of bar aggregation.
- price_type (PriceType) – The price type to use for aggregation.
- Raises: ValueError – If step is not positive (> 0).
aggregation
BarAggregation
Return the aggregation for the specification.
- Return type: BarAggregation
- Type: BarSpecification.aggregation
static check_information_aggregated(BarAggregation aggregation)
Check the given aggregation is a type of information aggregation.
- Parameters: aggregation (BarAggregation) – The aggregation type to check.
- Returns: True if information aggregated, else False.
- Return type: bool
static check_threshold_aggregated(BarAggregation aggregation)
Check the given aggregation is a type of threshold aggregation.
- Parameters: aggregation (BarAggregation) – The aggregation type to check.
- Returns: True if threshold aggregated, else False.
- Return type: bool
static check_time_aggregated(BarAggregation aggregation)
Check the given aggregation is a type of time aggregation.
- Parameters: aggregation (BarAggregation) – The aggregation type to check.
- Returns: True if time aggregated, else False.
- Return type: bool
static from_str(unicode value) → BarSpecification
Return a bar specification parsed from the given string.
-
Parameters: value (str) – The bar specification string to parse.
-
Return type: BarSpecification
-
Raises: ValueError – If value is not a valid string.
static from_timedelta(timedelta duration, PriceType price_type) → BarSpecification
Return a bar specification parsed from the given timedelta and price_type.
-
Parameters:
- duration (timedelta) – The bar specification timedelta to parse.
- price_type (PriceType) – The bar specification price_type.
-
Return type: BarSpecification
-
Raises: ValueError – If duration is not rounded step of aggregation.
is_information_aggregated(self) → bool
Return a value indicating whether the aggregation method is information-driven.
TICK_RUNS
VOLUME_RUNS
VALUE_RUNS
- Return type: bool
is_threshold_aggregated(self) → bool
Return a value indicating whether the bar aggregation method is threshold-driven.
TICK
TICK_IMBALANCE
VOLUME
VOLUME_IMBALANCE
VALUE
VALUE_IMBALANCE
- Return type: bool
is_time_aggregated(self) → bool
Return a value indicating whether the aggregation method is time-driven.
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
- Return type: bool
price_type
PriceType
Return the price type for the specification.
- Return type: PriceType
- Type: BarSpecification.price_type
step
int
Return the step size for the specification.
- Return type: int
- Type: BarSpecification.step
timedelta
timedelta
Return the timedelta for the specification.
- Return type: timedelta
- Raises: ValueError – If aggregation is not a time aggregation, or is``MONTH`` (which is ambiguous).
- Type: BarSpecification.timedelta
class BarType
Bases: object
BarType(InstrumentId instrument_id, BarSpecification bar_spec, AggregationSource aggregation_source=AggregationSource.EXTERNAL) -> None
Represents a bar type including the instrument ID, bar specification and aggregation source.
- Parameters:
- instrument_id (InstrumentId) – The bar type’s instrument ID.
- bar_spec (BarSpecification) – The bar type’s specification.
- aggregation_source (AggregationSource , default EXTERNAL) – The bar type aggregation source. If
INTERNAL
the DataEngine will subscribe to the necessary ticks and aggregate bars accordingly. Else ifEXTERNAL
then bars will be subscribed to directly from the venue / data provider.
aggregation_source
AggregationSource
Return the aggregation source for the bar type.
- Return type: AggregationSource
- Type: BarType.aggregation_source
composite(self) → BarType
static from_str(unicode value) → BarType
Return a bar type parsed from the given string.
- Parameters: value (str) – The bar type string to parse.
- Return type: BarType
- Raises: ValueError – If value is not a valid string.
instrument_id
InstrumentId
Return the instrument ID for the bar type.
- Return type: InstrumentId
- Type: BarType.instrument_id
is_composite(self) → bool
Return a value indicating whether the bar type corresponds to BarType::Composite in Rust.
- Return type: bool
is_externally_aggregated(self) → bool
Return a value indicating whether the bar aggregation source is EXTERNAL
.
- Return type: bool
is_internally_aggregated(self) → bool
Return a value indicating whether the bar aggregation source is INTERNAL
.
- Return type: bool
is_standard(self) → bool
Return a value indicating whether the bar type corresponds to BarType::Standard in Rust.
- Return type: bool
static new_composite(InstrumentId instrument_id, BarSpecification bar_spec, AggregationSource aggregation_source, int composite_step, BarAggregation composite_aggregation, AggregationSource composite_aggregation_source) → BarType
spec
BarSpecification
Return the specification for the bar type.
- Return type: BarSpecification
- Type: BarType.spec
standard(self) → BarType
class BookLevel
Bases: object
Represents an order book price level.
A price level on one side of the order book with one or more individual orders.
This class is read-only and cannot be initialized from Python.
- Parameters:
- Raises: ValueError – If orders is empty.
exposure(self) → double
Return the exposure at this level (price * volume).
- Return type: double
orders(self) → list
Return the orders for the level.
- Return type: list[BookOrder]
price
Price
Return the price for the level.
- Return type: Price
- Type: BookLevel.price
size(self) → double
Return the size at this level.
- Return type: double
class BookOrder
Bases: object
BookOrder(OrderSide side, Price price, Quantity size, uint64_t order_id) -> None
Represents an order in a book.
- Parameters:
exposure(self) → double
Return the total exposure for this order (price * size).
- Return type: double
static from_dict(dict values) → BookOrder
Return an order from the given dict values.
- Parameters: values (dict *[*str , object ]) – The values for initialization.
- Return type: BookOrder
static from_raw(OrderSide side, int64_t price_raw, uint8_t price_prec, uint64_t size_raw, uint8_t size_prec, uint64_t order_id) → BookOrder
Return an book order from the given raw values.
- Parameters:
- side (OrderSide {
BUY
,SELL
}) – The order side. - price_raw (int64_t) – The order raw price (as a scaled fixed-point integer).
- price_prec (uint8_t) – The order price precision.
- size_raw (uint64_t) – The order raw size (as a scaled fixed-point integer).
- size_prec (uint8_t) – The order size precision.
- order_id (uint64_t) – The order ID.
- side (OrderSide {
- Return type: BookOrder
order_id
uint64_t
Return the book orders side.
- Return type: uint64_t
- Type: BookOrder.order_id
price
Price
Return the book orders price.
- Return type: Price
- Type: BookOrder.price
side
OrderSide
Return the book orders side.
- Return type: OrderSide
- Type: BookOrder.side
signed_size(self) → double
Return the signed size of the order (negative for SELL
).
- Return type: double
size
Quantity
Return the book orders size.
- Return type: Quantity
- Type: BookOrder.size
static to_dict(BookOrder obj)
Return a dictionary representation of this object.
- Return type: dict[str, object]
class ClientId
Bases: Identifier
ClientId(unicode value) -> None
Represents a system client ID.
- Parameters: value (str) – The client ID value.
- Raises: ValueError – If value is not a valid string.
WARNING
The ID value must be unique at the trader level.
class ClientOrderId
Bases: Identifier
ClientOrderId(unicode value) -> None
Represents a valid client order ID (assigned by the Nautilus system).
- Parameters: value (str) – The client order ID value.
- Raises: ValueError – If value is not a valid string.
WARNING
The ID value must be unique at the firm level.
class ComponentId
Bases: Identifier
ComponentId(unicode value) -> None
Represents a valid component ID.
- Parameters: value (str) – The component ID value.
- Raises: ValueError – If value is not a valid string.
WARNING
The ID value must be unique at the trader level.
class Currency
Bases: object
Currency(unicode code, uint8_t precision, uint16_t iso4217, unicode name, CurrencyType currency_type) -> None
Represents a medium of exchange in a specified denomination with a fixed decimal precision.
Handles up to 9 decimals of precision.
- Parameters:
- code (str) – The currency code.
- precision (uint8_t) – The currency decimal precision.
- iso4217 (uint16) – The currency ISO 4217 code.
- name (str) – The currency name.
- currency_type (CurrencyType) – The currency type.
- Raises:
- ValueError – If code is not a valid string.
- OverflowError – If precision is negative (< 0).
- ValueError – If precision greater than 9.
- ValueError – If name is not a valid string.
code
str
Return the currency code.
- Return type: str
- Type: Currency.code
currency_type
CurrencyType
Return the currency type.
- Return type: CurrencyType
- Type: Currency.currency_type
static from_internal_map(unicode code)
Return the currency with the given code from the built-in internal map (if found).
- Parameters: code (str) – The code of the currency.
- Return type:
Currency or
None
static from_str(unicode code, bool strict=False)
Parse a currency from the given string (if found).
- Parameters:
- code (str) – The code of the currency.
- strict (bool , default False) – If not strict mode then an unknown currency will very likely be a Cryptocurrency, so for robustness will then return a new Currency object using the given code with a default precision of 8.
- Return type:
Currency or
None
static is_crypto(unicode code)
Return whether a currency with the given code is CRYPTO
.
- Parameters: code (str) – The code of the currency.
- Returns:
True if
CRYPTO
, else False. - Return type: bool
- Raises: ValueError – If code is not a valid string.
static is_fiat(unicode code)
Return whether a currency with the given code is FIAT
.
- Parameters: code (str) – The code of the currency.
- Returns:
True if
FIAT
, else False. - Return type: bool
- Raises: ValueError – If code is not a valid string.
iso4217
int
Return the currency ISO 4217 code.
- Return type: str
- Type: Currency.iso4217
name
str
Return the currency name.
- Return type: str
- Type: Currency.name
precision
int
Return the currency decimal precision.
- Return type: uint8
- Type: Currency.precision
static register(Currency currency, bool overwrite=False)
Register the given currency.
Will override the internal currency map.
- Parameters:
- currency (Currency) – The currency to register
- overwrite (bool) – If the currency in the internal currency map should be overwritten.
class CustomData
Bases: Data
CustomData(DataType data_type, Data data) -> None
Provides a wrapper for custom data which includes data type information.
data
The data.
- Returns: Data
data_type
The data type.
- Returns: DataType
ts_event
int
UNIX timestamp (nanoseconds) when the data event occurred.
- Return type: int
- Type: CustomData.ts_event
ts_init
int
UNIX timestamp (nanoseconds) when the object was initialized.
- Return type: int
- Type: CustomData.ts_init
class DataType
Bases: object
DataType(type type, dict metadata=None) -> None
Represents a data type including metadata.
- Parameters:
- type (type) – The Data type of the data.
- metadata (dict) – The data types metadata.
- Raises:
- ValueError – If type is not either a subclass of Data or meets the Data contract.
- TypeError – If metadata contains a key or value which is not hashable.
WARNING
This class may be used as a key in hash maps throughout the system, thus the key and value contents of metadata must themselves be hashable.
metadata
The data types metadata.
- Returns: dict[str, object]
topic
The data types topic string.
- Returns: str
type
The Data type of the data.
- Returns: type
class ExecAlgorithmId
Bases: Identifier
ExecAlgorithmId(unicode value) -> None
Represents a valid execution algorithm ID.
- Parameters: value (str) – The execution algorithm ID value.
- Raises: ValueError – If value is not a valid string.
class InstrumentClose
Bases: Data
InstrumentClose(InstrumentId instrument_id, Price close_price, InstrumentCloseType close_type, uint64_t ts_event, uint64_t ts_init) -> None
Represents an instrument close at a venue.
- Parameters:
- instrument_id (InstrumentId) – The instrument ID.
- close_price (Price) – The closing price for the instrument.
- close_type (InstrumentCloseType) – The type of closing price.
- ts_event (uint64_t) – UNIX timestamp (nanoseconds) when the close price event occurred.
- ts_init (uint64_t) – UNIX timestamp (nanoseconds) when the object was initialized.
close_price
The instrument close price.
- Returns: Price
close_type
The instrument close type.
- Returns: InstrumentCloseType
static from_dict(dict values) → InstrumentClose
Return an instrument close price event from the given dict values.
- Parameters: values (dict *[*str , object ]) – The values for initialization.
- Return type: InstrumentClose
instrument_id
The event instrument ID.
- Returns: InstrumentId
static to_dict(InstrumentClose obj)
Return a dictionary representation of this object.
- Return type: dict[str, object]
ts_event
UNIX timestamp (nanoseconds) when the data event occurred.
- Returns: uint64_t
ts_init
UNIX timestamp (nanoseconds) when the object was initialized.
- Returns: uint64_t
class InstrumentId
Bases: Identifier
InstrumentId(Symbol symbol, Venue venue) -> None
Represents a valid instrument ID.
The symbol and venue combination should uniquely identify the instrument.
- Parameters:
static from_str(unicode value: str) → InstrumentId
Return an instrument ID parsed from the given string value. Must be correctly formatted including symbol and venue components either side of a single period.
Examples: ‘AUD/USD.IDEALPRO’, ‘BTCUSDT.BINANCE’
- Parameters: value (str) – The instrument ID string value to parse.
- Return type: InstrumentId
- Raises: ValueError – If value is not a valid instrument ID string.
is_synthetic(self) → bool
Return whether the instrument ID is a synthetic instrument (with venue of ‘SYNTH’).
- Return type: bool
symbol
Symbol
Returns the instrument ticker symbol.
- Return type: Symbol
- Type: InstrumentId.symbol
venue
Venue
Returns the instrument trading venue.
- Return type: Venue
- Type: InstrumentId.venue
class InstrumentStatus
Bases: Data
InstrumentStatus(InstrumentId instrument_id, MarketStatusAction action, uint64_t ts_event, uint64_t ts_init, unicode reason=None, unicode trading_event=None, is_trading: bool | None = None, is_quoting: bool | None = None, is_short_sell_restricted: bool | None = None) -> None
Represents an event that indicates a change in an instrument market status.
- Parameters:
- instrument_id (InstrumentId) – The instrument ID for the status change.
- action (MarketStatusAction) – The instrument market status action.
- ts_event (uint64_t) – UNIX timestamp (nanoseconds) when the status event occurred.
- ts_init (uint64_t) – UNIX timestamp (nanoseconds) when the object was initialized.
- reason (str , optional) – Additional details about the cause of the status change.
- trading_event (str , optional) – Further information about the status change (if provided).
- is_trading (bool , optional) – The state of trading in the instrument.
- is_quoting (bool , optional) – The state of quoting in the instrument.
- is_short_sell_restricted (bool , optional) – The state of short sell restrictions for the instrument (if applicable).
action
The instrument market status action.
- Returns: MarketStatusAction
static from_dict(dict values) → InstrumentStatus
Return an instrument status update from the given dict values.
- Parameters: values (dict *[*str , object ]) – The values for initialization.
- Return type: InstrumentStatus
static from_pyo3(pyo3_status) → InstrumentStatus
Return a legacy Cython quote tick converted from the given pyo3 Rust object.
- Parameters: pyo3_status (nautilus_pyo3.InstrumentStatus) – The pyo3 Rust instrument status to convert from.
- Return type: InstrumentStatus
static from_pyo3_list(list pyo3_status_list) → list[QuoteTick]
Return legacy Cython instrument status converted from the given pyo3 Rust objects.
- Parameters: pyo3_status_list (list *[*nautilus_pyo3.InstrumentStatus ]) – The pyo3 Rust instrument status list to convert from.
- Return type: list[InstrumentStatus]
instrument_id
The instrument ID.
- Returns: InstrumentId
is_quoting
bool | None
Return the state of quoting in the instrument (if known).
- Return type:
bool or
None
- Type: InstrumentStatus.is_quoting
is_short_sell_restricted
bool | None
Return the state of short sell restrictions for the instrument (if known and applicable).
- Return type:
bool or
None
- Type: InstrumentStatus.is_short_sell_restricted
is_trading
bool | None
Return the state of trading in the instrument (if known).
- Return type:
bool or
None
- Type: InstrumentStatus.is_trading
reason
Additional details about the cause of the status change.
- Returns:
str or
None
static to_dict(InstrumentStatus obj)
Return a dictionary representation of this object.
- Return type: dict[str, object]
to_pyo3(self) → nautilus_pyo3.InstrumentStatus
Return a pyo3 object from this legacy Cython instance.
- Return type: nautilus_pyo3.InstrumentStatus
trading_event
Further information about the status change (if provided).
- Returns:
str or
None
ts_event
UNIX timestamp (nanoseconds) when the data event occurred.
- Returns: uint64_t
ts_init
UNIX timestamp (nanoseconds) when the object was initialized.
- Returns: uint64_t
class MarginBalance
Bases: object
MarginBalance(Money initial, Money maintenance, InstrumentId instrument_id=None) -> None
Represents a margin balance optionally associated with a particular instrument.
- Parameters:
- initial (Money) – The initial (order) margin requirement for the instrument.
- maintenance (Money) – The maintenance (position) margin requirement for the instrument.
- instrument_id (InstrumentId , optional) – The instrument ID associated with the margin.
- Raises:
- ValueError – If margin_init currency does not equal currency.
- ValueError – If margin_maint currency does not equal currency.
- ValueError – If any margin is negative (< 0).
currency
The currency of the margin.
- Returns: Currency
static from_dict(dict values) → MarginBalance
Return a margin balance from the given dict values.
- Parameters: values (dict *[*str , object ]) – The values for initialization.
- Return type: MarginAccountBalance
initial
The initial margin requirement.
- Returns: Money
instrument_id
The instrument ID associated with the margin.
- Returns:
InstrumentId or
None
maintenance
The maintenance margin requirement.
- Returns: Money
to_dict(self) → dict
Return a dictionary representation of this object.
- Return type: dict[str, object]
class Money
Bases: object
Money(value, Currency currency) -> None
Represents an amount of money in a specified currency denomination.
MONEY_MAX
= 9_223_372_036MONEY_MIN
= -9_223_372_036
- Parameters:
- value (integer , float , string or Decimal) – The amount of money in the currency denomination.
- currency (Currency) – The currency of the money.
- Raises:
- ValueError – If value is greater than 9_223_372_036.
- ValueError – If value is less than -9_223_372_036.
as_decimal(self)
Return the value as a built-in Decimal.
- Return type: Decimal
as_double(self) → double
Return the value as a double.
- Return type: double
currency
Currency
Return the currency for the money.
- Return type: Currency
- Type: Money.currency
static from_raw(int64_t raw, Currency currency) → Money
Return money from the given raw fixed-point integer and currency.
- Parameters:
- raw (int64_t) – The raw fixed-point money amount.
- currency (Currency) – The currency of the money.
- Return type: Money
WARNING
Small raw values can produce a zero money amount depending on the precision of the currency.
static from_str(unicode value) → Money
Return money parsed from the given string.
Must be correctly formatted with a value and currency separated by a whitespace delimiter.
Example: “1000000.00 USD”.
- Parameters: value (str) – The value to parse.
- Return type: Money
- Raises:
- ValueError – If inferred currency precision is greater than 9.
- OverflowError – If inferred currency precision is negative (< 0).
raw
int64_t
Return the raw memory representation of the money amount.
- Return type: int64_t
- Type: Money.raw
to_formatted_str(self) → unicode
Return the formatted string representation of the money.
- Return type: str
class OrderBook
Bases: Data
OrderBook(InstrumentId instrument_id, BookType book_type) -> None
Provides an order book which can handle L1/L2/L3 granularity data.
add(self, BookOrder order, uint64_t ts_event, uint8_t flags=0, uint64_t sequence=0) → void
Add the given order to the book.
- Parameters:
- order (BookOrder) – The order to add.
- ts_event (uint64_t) – UNIX timestamp (nanoseconds) when the book event occurred.
- flags (uint8_t , default 0) – The record flags bit field, indicating event end and data information.
- sequence (uint64_t , default 0) – The unique sequence number for the update. If default 0 then will increment the sequence.
- Raises: RuntimeError – If the book type is L1_MBP.
apply(self, Data data) → void
Apply the given data to the order book.
- Parameters: delta (OrderBookDelta , OrderBookDeltas) – The data to apply.
apply_delta(self, OrderBookDelta delta) → void
Apply the order book delta.
- Parameters: delta (OrderBookDelta) – The delta to apply.
- Raises: ValueError – If delta.book_type is not equal to self.type.
apply_deltas(self, OrderBookDeltas deltas) → void
Apply the bulk deltas to the order book.
- Parameters: deltas (OrderBookDeltas) – The deltas to apply.
apply_depth(self, OrderBookDepth10 depth) → void
Apply the depth update to the order book.
- Parameters: depth (OrderBookDepth10) – The depth update to apply.
asks(self) → list
Return the bid levels for the order book.
- Returns: Sorted in ascending order of price.
- Return type: list[BookLevel]
best_ask_price(self)
Return the best ask price in the book (if no asks then returns None
).
- Return type: double
best_ask_size(self)
Return the best ask size in the book (if no asks then returns None
).
- Return type:
double or
None
best_bid_price(self)
Return the best bid price in the book (if no bids then returns None
).
- Return type: double
best_bid_size(self)
Return the best bid size in the book (if no bids then returns None
).
- Return type: double
bids(self) → list
Return the bid levels for the order book.
- Returns: Sorted in descending order of price.
- Return type: list[BookLevel]
book_type
BookType
Return the order book type.
- Return type: BookType
- Type: OrderBook.book_type
check_integrity(self) → void
Check book integrity.
For all order books:
- The bid side price should not be greater than the ask side price.
- Raises: RuntimeError – If book integrity check fails.
clear(self, uint64_t ts_event, uint64_t sequence=0) → void
Clear the entire order book.
clear_asks(self, uint64_t ts_event, uint64_t sequence=0) → void
Clear the asks from the order book.
clear_bids(self, uint64_t ts_event, uint64_t sequence=0) → void
Clear the bids from the order book.
count
int
Return the books update count.
- Return type: int
- Type: OrderBook.count
delete(self, BookOrder order, uint64_t ts_event, uint8_t flags=0, uint64_t sequence=0) → void
Cancel the given order in the book.
- Parameters:
- order (Order) – The order to delete.
- ts_event (uint64_t) – UNIX timestamp (nanoseconds) when the book event occurred.
- flags (uint8_t , default 0) – The record flags bit field, indicating event end and data information.
- sequence (uint64_t , default 0) – The unique sequence number for the update. If default 0 then will increment the sequence.
get_avg_px_for_quantity(self, Quantity quantity, OrderSide order_side) → double
Return the average price expected for the given quantity based on the current state of the order book.
- Parameters:
- quantity (Quantity) – The quantity for the calculation.
- order_side (OrderSide) – The order side for the calculation.
- Return type: double
- Raises:
ValueError – If order_side is equal to
NO_ORDER_SIDE
WARNING
If no average price can be calculated then will return 0.0 (zero).
get_quantity_for_price(self, Price price, OrderSide order_side) → double
Return the current total quantity for the given price based on the current state of the order book.
- Parameters:
- price (Price) – The quantity for the calculation.
- order_side (OrderSide) – The order side for the calculation.
- Return type: double
- Raises:
ValueError – If order_side is equal to
NO_ORDER_SIDE
instrument_id
InstrumentId
Return the books instrument ID.
- Return type: InstrumentId
- Type: OrderBook.instrument_id
midpoint(self)
Return the mid point (if no market exists then returns None
).
- Return type:
double or
None
pprint(self, int num_levels=3) → unicode
Return a string representation of the order book in a human-readable table format.
- Parameters: num_levels (int) – The number of levels to include.
- Return type: str
reset(self) → void
Reset the order book (clear all stateful values).
sequence
int
Return the last sequence number for the book.
- Return type: int
- Type: OrderBook.sequence
simulate_fills(self, Order order, uint8_t price_prec, bool is_aggressive) → list
Simulate filling the book with the given order.
- Parameters:
- order (Order) – The order to simulate fills for.
- price_prec (uint8_t) – The price precision for the fills.
spread(self)
Return the top-of-book spread (if no bids or asks then returns None
).
- Return type:
double or
None
ts_event
int
UNIX timestamp (nanoseconds) when the data event occurred.
- Return type: int
- Type: OrderBook.ts_event
ts_init
int
UNIX timestamp (nanoseconds) when the object was initialized.
- Return type: int
- Type: OrderBook.ts_init
ts_last
int
Return the UNIX timestamp (nanoseconds) when the order book was last updated.
- Return type: int
- Type: OrderBook.ts_last
update(self, BookOrder order, uint64_t ts_event, uint8_t flags=0, uint64_t sequence=0) → void
Update the given order in the book.
- Parameters:
- order (Order) – The order to update.
- ts_event (uint64_t) – UNIX timestamp (nanoseconds) when the book event occurred.
- flags (uint8_t , default 0) – The record flags bit field, indicating event end and data information.
- sequence (uint64_t , default 0) – The unique sequence number for the update. If default 0 then will increment the sequence.
update_quote_tick(self, QuoteTick tick) → void
Update the order book with the given quote tick.
This operation is only valid for L1_MBP
books maintaining a top level.
- Parameters: tick (QuoteTick) – The quote tick to update with.
- Raises:
RuntimeError – If book_type is not
L1_MBP
.
update_trade_tick(self, TradeTick tick) → void
Update the order book with the given trade tick.
This operation is only valid for L1_MBP
books maintaining a top level.
- Parameters: tick (TradeTick) – The trade tick to update with.
- Raises:
RuntimeError – If book_type is not
L1_MBP
.
class OrderBookDelta
Bases: Data
OrderBookDelta(InstrumentId instrument_id, BookAction action, BookOrder order: BookOrder | None, uint8_t flags, uint64_t sequence, uint64_t ts_event, uint64_t ts_init) -> None
Represents a single update/difference on an OrderBook.
- Parameters:
- instrument_id (InstrumentId) – The instrument ID for the book.
- action (BookAction {
ADD
,UPDATE
,DELETE
,CLEAR
}) – The order book delta action. - order (BookOrder or
None
) – The book order for the delta. - flags (uint8_t) – The record flags bit field, indicating event end and data information. A value of zero indicates no flags.
- sequence (uint64_t) – The unique sequence number for the update. If no sequence number provided in the source data then use a value of zero.
- ts_event (uint64_t) – UNIX timestamp (nanoseconds) when the data event occurred.
- ts_init (uint64_t) – UNIX timestamp (nanoseconds) when the data object was initialized.
action
BookAction
Return the deltas book action {ADD
, UPDATE
, DELETE
, CLEAR
}
- Return type: BookAction
- Type: OrderBookDelta.action
static capsule_from_list(list items)
static clear(InstrumentId instrument_id, uint64_t sequence, uint64_t ts_event, uint64_t ts_init)
Return an order book delta which acts as an initial CLEAR
.
- Return type: OrderBookDelta
flags
uint8_t
Return the flags for the delta.
- Return type: uint8_t
- Type: OrderBookDelta.flags
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.
- Return type: OrderBookDelta
static from_pyo3(pyo3_delta) → OrderBookDelta
Return a legacy Cython order book delta converted from the given pyo3 Rust object.
- Parameters: pyo3_delta (nautilus_pyo3.OrderBookDelta) – The pyo3 Rust order book delta to convert from.
- Return type: OrderBookDelta
static from_pyo3_list(list pyo3_deltas) → list[OrderBookDelta]
Return legacy Cython order book deltas converted from the given pyo3 Rust objects.
- Parameters: pyo3_deltas (list *[*nautilus_pyo3.OrderBookDelta ]) – The pyo3 Rust order book deltas to convert from.
- Return type: list[OrderBookDelta]
static from_raw(InstrumentId instrument_id, BookAction action, OrderSide side, int64_t price_raw, uint8_t price_prec, uint64_t size_raw, uint8_t size_prec, uint64_t order_id, uint8_t flags, uint64_t sequence, uint64_t ts_event, uint64_t ts_init) → OrderBookDelta
Return an order book delta from the given raw values.
- Parameters:
- instrument_id (InstrumentId) – The trade instrument ID.
- action (BookAction {
ADD
,UPDATE
,DELETE
,CLEAR
}) – The order book delta action. - side (OrderSide {
BUY
,SELL
}) – The order side. - price_raw (int64_t) – The order raw price (as a scaled fixed-point integer).
- price_prec (uint8_t) – The order price precision.
- size_raw (uint64_t) – The order raw size (as a scaled fixed-point integer).
- size_prec (uint8_t) – The order size precision.
- order_id (uint64_t) – The order ID.
- flags (uint8_t) – The record flags bit field, indicating event end and data information. A value of zero indicates no flags.
- sequence (uint64_t) – The unique sequence number for the update. If no sequence number provided in the source data then use a value of zero.
- ts_event (uint64_t) – UNIX timestamp (nanoseconds) when the tick event occurred.
- ts_init (uint64_t) – UNIX timestamp (nanoseconds) when the data object was initialized.
- Return type: OrderBookDelta
instrument_id
InstrumentId
Return the deltas book instrument ID.
- Return type: InstrumentId
- Type: OrderBookDelta.instrument_id
is_add
BookAction
If the deltas book action is an ADD
.
- Return type: bool
- Type: OrderBookDelta.is_add
is_clear
BookAction
If the deltas book action is a CLEAR
.
- Return type: bool
- Type: OrderBookDelta.is_clear
is_delete
BookAction
If the deltas book action is a DELETE
.
- Return type: bool
- Type: OrderBookDelta.is_delete
is_update
BookAction
If the deltas book action is an UPDATE
.
- Return type: bool
- Type: OrderBookDelta.is_update
static list_from_capsule(capsule) → list[OrderBookDelta]
order
BookOrder | None
Return the deltas book order for the action.
- Return type: BookOrder
- Type: OrderBookDelta.order
sequence
uint64_t
Return the sequence number for the delta.
- Return type: uint64_t
- Type: OrderBookDelta.sequence
static to_dict(OrderBookDelta obj)
Return a dictionary representation of this object.
- Return type: dict[str, object]
static to_pyo3_list(list deltas) → list[nautilus_pyo3.OrderBookDelta]
Return pyo3 Rust order book deltas converted from the given legacy Cython objects.
- Parameters: pyo3_deltas (list [OrderBookDelta ]) – The pyo3 Rust order book deltas to convert from.
- Return type: list[nautilus_pyo3.OrderBookDelta]
ts_event
int
UNIX timestamp (nanoseconds) when the data event occurred.
- Return type: int
- Type: OrderBookDelta.ts_event
ts_init
int
UNIX timestamp (nanoseconds) when the object was initialized.
- Return type: int
- Type: OrderBookDelta.ts_init
class OrderBookDeltas
Bases: Data
OrderBookDeltas(InstrumentId instrument_id, list deltas) -> None
Represents a batch of OrderBookDelta updates for an OrderBook.
- Parameters:
- instrument_id (InstrumentId) – The instrument ID for the book.
- deltas (list [OrderBookDelta ]) – The batch of order book changes.
- Raises: ValueError – If deltas is an empty list.
static batch(list data: list[OrderBookDelta]) → list[OrderBookDeltas]
Groups the given list of OrderBookDelta records into batches, creating OrderBookDeltas objects when an F_LAST flag is encountered.
The method iterates through the data list and appends each OrderBookDelta to the current batch. When an F_LAST flag is found, it indicates the end of a batch. The batch is then appended to the list of completed batches and a new batch is started.
- Return type: list[OrderBookDeltas]
- Raises:
- ValueError – If data is empty.
- TypeError – If data is not a list of OrderBookDelta.
WARNING
UserWarning : If there are remaining deltas in the final batch after the last F_LAST flag.
deltas
list[OrderBookDelta]
Return the contained deltas.
- Return type: list[OrderBookDeltas]
- Type: OrderBookDeltas.deltas
flags
uint8_t
Return the flags for the last delta.
- Return type: uint8_t
- Type: OrderBookDeltas.flags
static from_dict(dict values) → OrderBookDeltas
Return order book deltas from the given dict values.
- Parameters: values (dict *[*str , object ]) – The values for initialization.
- Return type: OrderBookDeltas
instrument_id
InstrumentId
Return the deltas book instrument ID.
- Return type: InstrumentId
- Type: OrderBookDeltas.instrument_id
is_snapshot
bool
If the deltas is a snapshot.
- Return type: bool
- Type: OrderBookDeltas.is_snapshot
sequence
uint64_t
Return the sequence number for the last delta.
- Return type: uint64_t
- Type: OrderBookDeltas.sequence
to_capsule(self)
static to_dict(OrderBookDeltas obj)
Return a dictionary representation of this object.
- Return type: dict[str, object]
to_pyo3(self)
Return a pyo3 object from this legacy Cython instance.
- Return type: nautilus_pyo3.OrderBookDeltas
ts_event
int
UNIX timestamp (nanoseconds) when the data event occurred.
- Return type: int
- Type: OrderBookDeltas.ts_event
ts_init
int
UNIX timestamp (nanoseconds) when the object was initialized.
- Return type: int
- Type: OrderBookDeltas.ts_init
class OrderBookDepth10
Bases: Data
OrderBookDepth10(InstrumentId instrument_id, list bids, list asks, list bid_counts, list ask_counts, uint8_t flags, uint64_t sequence, uint64_t ts_event, uint64_t ts_init) -> None
Represents a self-contained order book update with a fixed depth of 10 levels per side.
- Parameters:
- instrument_id (InstrumentId) – The instrument ID for the book.
- bids (list [BookOrder ]) – The bid side orders for the update.
- asks (list [BookOrder ]) – The ask side orders for the update.
- bid_counts (list *[*uint32_t ]) – The count of bid orders per level for the update. Can be zeros if data not available.
- ask_counts (list *[*uint32_t ]) – The count of ask orders per level for the update. Can be zeros if data not available.
- flags (uint8_t) – The record flags bit field, indicating event end and data information. A value of zero indicates no flags.
- sequence (uint64_t) – The unique sequence number for the update. If no sequence number provided in the source data then use a value of zero.
- ts_event (uint64_t) – UNIX timestamp (nanoseconds) when the tick event occurred.
- ts_init (uint64_t) – UNIX timestamp (nanoseconds) when the data object was initialized.
- Raises:
- ValueError – If bids, asks, bid_counts, ask_counts lengths are greater than 10.
- ValueError – If bids, asks, bid_counts, ask_counts lengths are not equal.
ask_counts
list[uint32_t]
Return the count of ask orders level for the update.
- Return type: list[uint32_t]
- Type: OrderBookDepth10.ask_counts
asks
list[BookOrder]
Return the ask orders for the update.
- Return type: list[BookOrder]
- Type: OrderBookDepth10.asks
bid_counts
list[uint32_t]
Return the count of bid orders per level for the update.
- Return type: list[uint32_t]
- Type: OrderBookDepth10.bid_counts
bids
list[BookOrder]
Return the bid orders for the update.
- Return type: list[BookOrder]
- Type: OrderBookDepth10.bids
static capsule_from_list(list items)
flags
uint8_t
Return the flags for the depth update.
- Return type: uint8_t
- Type: OrderBookDepth10.flags
static from_dict(dict values) → OrderBookDepth10
Return order book depth from the given dict values.
- Parameters: values (dict *[*str , object ]) – The values for initialization.
- Return type: OrderBookDepth10
static from_pyo3(pyo3_depth) → OrderBookDepth10
Return a legacy Cython order book depth converted from the given pyo3 Rust object.
- Parameters: pyo3_depth (nautilus_pyo3.OrderBookDepth10) – The pyo3 Rust order book depth to convert from.
- Return type: OrderBookDepth10
static from_pyo3_list(pyo3_depths) → list[OrderBookDepth10]
Return legacy Cython order book depths converted from the given pyo3 Rust objects.
- Parameters: pyo3_depths (nautilus_pyo3.OrderBookDepth10) – The pyo3 Rust order book depths to convert from.
- Return type: list[OrderBookDepth10]
instrument_id
InstrumentId
Return the depth updates book instrument ID.
- Return type: InstrumentId
- Type: OrderBookDepth10.instrument_id
static list_from_capsule(capsule) → list[OrderBookDepth10]
sequence
uint64_t
Return the sequence number for the depth update.
- Return type: uint64_t
- Type: OrderBookDepth10.sequence
static to_dict(OrderBookDepth10 obj)
Return a dictionary representation of this object.
- Return type: dict[str, object]
ts_event
int
UNIX timestamp (nanoseconds) when the data event occurred.
- Return type: int
- Type: OrderBookDepth10.ts_event
ts_init
int
UNIX timestamp (nanoseconds) when the object was initialized.
- Return type: int
- Type: OrderBookDepth10.ts_init
class OrderListId
Bases: Identifier
OrderListId(unicode value) -> None
Represents a valid order list ID (assigned by the Nautilus system).
- Parameters: value (str) – The order list ID value.
- Raises: ValueError – If value is not a valid string.
class Position
Bases: object
Position(Instrument instrument, OrderFilled fill) -> None
Represents a position in a market.
The position ID may be assigned at the trading venue, or can be system generated depending on a strategies OMS (Order Management System) settings.
- Parameters:
- instrument (Instrument) – The trading instrument for the position.
- fill (OrderFilled) – The order fill event which opened the position.
- Raises:
- ValueError – If instrument.id is not equal to fill.instrument_id.
- ValueError – If event.position_id is
None
.
account_id
The account ID associated with the position.
- Returns: AccountId
apply(self, OrderFilled fill) → void
Applies the given order fill event to the position.
- Parameters: fill (OrderFilled) – The order fill event to apply.
- Raises: KeyError – If fill.trade_id already applied to the position.
avg_px_close
The average close price.
- Returns: double
avg_px_open
The average open price.
- Returns: double
base_currency
The position base currency (if applicable).
- Returns:
Currency or
None
calculate_pnl(self, double avg_px_open, double avg_px_close, Quantity quantity) → Money
Return a calculated PnL.
Result will be in quote currency for standard instruments, or base currency for inverse instruments.
- Parameters:
- avg_px_open (double) – The average open price.
- avg_px_close (double) – The average close price.
- quantity (Quantity) – The quantity for the calculation.
- Returns: In settlement currency.
- Return type: Money
client_order_ids
Return the client order IDs associated with the position.
- Return type: list[VenueOrderId]
closing_order_id
The client order ID for the order which closed the position.
- Returns:
ClientOrderId or
None
commissions(self) → list
Return the total commissions generated by the position.
- Return type: list[Money]
duration_ns
The total open duration (nanoseconds).
- Returns: uint64_t
entry
The position entry order side.
- Returns: OrderSide
event_count
Return the count of order fill events applied to the position.
- Return type: int
events
Return the order fill events for the position.
- Return type: list[Event]
id
The position ID.
- Returns: PositionId
info(self) → unicode
Return a summary description of the position.
- Return type: str
instrument_id
The position instrument ID.
- Returns: InstrumentId
is_closed
Return whether the position side is FLAT
.
- Return type: bool
is_inverse
If the quantity is expressed in quote currency.
- Returns: bool
is_long
Return whether the position side is LONG
.
- Return type: bool
is_open
Return whether the position side is not FLAT
.
- Return type: bool
is_opposite_side(self, OrderSide side) → bool
Return a value indicating whether the given order side is opposite to the current position side.
- Parameters:
side (OrderSide {
BUY
,SELL
}) - Returns: True if side is opposite, else False.
- Return type: bool
is_short
Return whether the position side is SHORT
.
- Return type: bool
last_event
Return the last order fill event.
- Return type: OrderFilled
last_trade_id
Return the last trade match ID for the position.
- Return type: TradeId
multiplier
The multiplier for the positions instrument.
- Returns: Quantity
notional_value(self, Price last) → Money
Return the current notional value of the position.
- Parameters: last (Price) – The last close price for the position.
- Returns: In quote currency.
- Return type: Money
opening_order_id
The client order ID for the order which opened the position.
- Returns: ClientOrderId
peak_qty
The peak directional quantity reached by the position.
- Returns: Quantity
price_precision
The price precision for the position.
- Returns: uint8
quantity
The current open quantity.
- Returns: Quantity
quote_currency
The position quote currency.
- Returns: Currency
realized_pnl
The current realized PnL for the position (including commissions).
- Returns:
Money or
None
realized_return
The current realized return for the position.
- Returns: double
settlement_currency
The position settlement currency (for PnL).
- Returns: Currency
side
The current position side.
- Returns: PositionSide
static side_from_order_side(OrderSide side)
Return the position side resulting from the given order side (from FLAT
).
- Parameters:
side (OrderSide {
BUY
,SELL
}) – The order side - Return type: PositionSide
signed_decimal_qty(self)
Return a signed decimal representation of the position quantity.
- If the position is LONG, the value is positive (e.g. Decimal(‘10.25’))
- If the position is SHORT, the value is negative (e.g. Decimal(‘-10.25’))
- If the position is FLAT, the value is zero (e.g. Decimal(‘0’))
- Return type: Decimal
signed_qty
The current signed quantity (positive for position side LONG
, negative for SHORT
).
- Returns: double
size_precision
The size precision for the position.
- Returns: uint8
strategy_id
The strategy ID associated with the position.
- Returns: StrategyId
symbol
Return the positions ticker symbol.
- Return type: Symbol
to_dict(self) → dict
Return a dictionary representation of this object.
- Return type: dict[str, object]
total_pnl(self, Price last) → Money
Return the total PnL from the given last quote tick.
Result will be in quote currency for standard instruments, or base currency for inverse instruments.
trade_ids
Return the trade match IDs associated with the position.
- Return type: list[TradeId]
trader_id
The trader ID associated with the position.
- Returns: TraderId
ts_closed
UNIX timestamp (nanoseconds) when the position was closed.
- Returns: uint64_t
ts_init
UNIX timestamp (nanoseconds) when the object was initialized.
- Returns: uint64_t
ts_last
UNIX timestamp (nanoseconds) when the last event occurred.
- Returns: uint64_t
ts_opened
UNIX timestamp (nanoseconds) when the position was opened.
- Returns: uint64_t
unrealized_pnl(self, Price last) → Money
Return the unrealized PnL from the given last quote tick.
Result will be in quote currency for standard instruments, or base currency for inverse instruments.
venue
Return the positions trading venue.
- Return type: Venue
venue_order_ids
Return the venue order IDs associated with the position.
- Return type: list[VenueOrderId]
class PositionId
Bases: Identifier
PositionId(unicode value) -> None
Represents a valid position ID.
- Parameters: value (str) – The position ID value.
- Raises: ValueError – If value is not a valid string containing a hyphen.
class Price
Bases: object
Price(double value, uint8_t precision) -> None
Represents a price in a market.
The number of decimal places may vary. For certain asset classes, prices may have negative values. For example, prices for options instruments can be negative under certain conditions.
Handles up to 9 decimals of precision.
PRICE_MAX
= 9_223_372_036PRICE_MIN
= -9_223_372_036
- Parameters:
- value (integer , float , string or Decimal) – The value of the price.
- precision (uint8_t) – The precision for the price. Use a precision of 0 for whole numbers (no fractional units).
- Raises:
- ValueError – If value is greater than 9_223_372_036.
- ValueError – If value is less than -9_223_372_036.
- ValueError – If precision is greater than 9.
- OverflowError – If precision is negative (< 0).
as_decimal(self)
Return the value as a built-in Decimal.
- Return type: Decimal
as_double(self) → double
Return the value as a double.
- Return type: double
static from_int(int value) → Price
Return a price from the given integer value.
A precision of zero will be inferred.
- Parameters: value (int) – The value for the price.
- Return type: Price
static from_raw(int64_t raw, uint8_t precision) → Price
Return a price from the given raw fixed-point integer and precision.
Handles up to 9 decimals of precision.
- Parameters:
- raw (int64_t) – The raw fixed-point price value.
- precision (uint8_t) – The precision for the price. Use a precision of 0 for whole numbers (no fractional units).
- Return type: Price
- Raises:
- ValueError – If precision is greater than 9.
- OverflowError – If precision is negative (< 0).
WARNING
Small raw values can produce a zero price depending on the precision.
static from_str(unicode value) → Price
Return a price parsed from the given string.
Handles up to 9 decimals of precision.
- Parameters: value (str) – The value to parse.
- Return type: Price
WARNING
The decimal precision will be inferred from the number of digits following the ‘.’ point (if no point then precision zero).
- Raises:
- ValueError – If inferred precision is greater than 9.
- OverflowError – If inferred precision is negative (< 0).
precision
int
Return the precision for the price.
- Return type: uint8_t
- Type: Price.precision
raw
int64_t
Return the raw memory representation of the price value.
- Return type: int64_t
- Type: Price.raw
to_formatted_str(self) → unicode
Return the formatted string representation of the price.
- Return type: str
class Quantity
Bases: object
Quantity(double value, uint8_t precision) -> None
Represents a quantity with a non-negative value.
Capable of storing either a whole number (no decimal places) of ‘contracts’ or ‘shares’ (instruments denominated in whole units) or a decimal value containing decimal places for instruments denominated in fractional units.
Handles up to 9 decimals of precision.
QUANTITY_MAX
= 18_446_744_073QUANTITY_MIN
= 0
- Parameters:
- value (integer , float , string , Decimal) – The value of the quantity.
- precision (uint8_t) – The precision for the quantity. Use a precision of 0 for whole numbers (no fractional units).
- Raises:
- ValueError – If value is greater than 18_446_744_073.
- ValueError – If value is negative (< 0).
- ValueError – If precision is greater than 9.
- OverflowError – If precision is negative (< 0).
as_decimal(self)
Return the value as a built-in Decimal.
- Return type: Decimal
as_double(self) → double
Return the value as a double.
- Return type: double
static from_int(int value) → Quantity
Return a quantity from the given integer value.
A precision of zero will be inferred.
- Parameters: value (int) – The value for the quantity.
- Return type: Quantity
static from_raw(int64_t raw, uint8_t precision) → Quantity
Return a quantity from the given raw fixed-point integer and precision.
Handles up to 9 decimals of precision.
- Parameters:
- raw (int64_t) – The raw fixed-point quantity value.
- precision (uint8_t) – The precision for the quantity. Use a precision of 0 for whole numbers (no fractional units).
- Return type: Quantity
- Raises:
- ValueError – If precision is greater than 9.
- OverflowError – If precision is negative (< 0).
WARNING
Small raw values can produce a zero quantity depending on the precision.
static from_str(unicode value) → Quantity
Return a quantity parsed from the given string.
Handles up to 9 decimals of precision.
- Parameters: value (str) – The value to parse.
- Return type: Quantity
- Raises:
- ValueError – If inferred precision is greater than 9.
- OverflowError – If inferred precision is negative (< 0).
WARNING
The decimal precision will be inferred from the number of digits following the ‘.’ point (if no point then precision zero).
precision
int
Return the precision for the quantity.
- Return type: uint8_t
- Type: Quantity.precision
raw
uint64_t
Return the raw memory representation of the quantity value.
- Return type: uint64_t
- Type: Quantity.raw
static raw_to_f64(raw) → float
to_formatted_str(self) → unicode
Return the formatted string representation of the quantity.
- Return type: str
static zero(uint8_t precision=0) → Quantity
Return a quantity with a value of zero.
precision : The precision for the quantity.
- Return type: Quantity
- Raises:
- ValueError – If precision is greater than 9.
- OverflowError – If precision is negative (< 0).
WARNING
The default precision is zero.
class QuoteTick
Bases: Data
QuoteTick(InstrumentId instrument_id, Price bid_price, Price ask_price, Quantity bid_size, Quantity ask_size, uint64_t ts_event, uint64_t ts_init) -> None
Represents a single quote tick in a market.
Contains information about the best top-of-book bid and ask.
- Parameters:
- instrument_id (InstrumentId) – The quotes instrument ID.
- bid_price (Price) – The top-of-book bid price.
- ask_price (Price) – The top-of-book ask price.
- bid_size (Quantity) – The top-of-book bid size.
- ask_size (Quantity) – The top-of-book ask size.
- ts_event (uint64_t) – UNIX timestamp (nanoseconds) when the tick event occurred.
- ts_init (uint64_t) – UNIX timestamp (nanoseconds) when the data object was initialized.
- Raises:
- ValueError – If bid.precision != ask.precision.
- ValueError – If bid_size.precision != ask_size.precision.
ask_price
Price
Return the top-of-book ask price.
- Return type: Price
- Type: QuoteTick.ask_price
ask_size
Quantity
Return the top-of-book ask size.
- Return type: Quantity
- Type: QuoteTick.ask_size
bid_price
Price
Return the top-of-book bid price.
- Return type: Price
- Type: QuoteTick.bid_price
bid_size
Quantity
Return the top-of-book bid size.
- Return type: Quantity
- Type: QuoteTick.bid_size
static capsule_from_list(list items)
extract_price(self, PriceType price_type) → Price
Extract the price for the given price type.
- Parameters: price_type (PriceType) – The price type to extract.
- Return type: Price
extract_size(self, PriceType price_type) → Quantity
Extract the size for the given price type.
- Parameters: price_type (PriceType) – The price type to extract.
- Return type: Quantity
static from_dict(dict values) → QuoteTick
Return a quote tick parsed from the given values.
- Parameters: values (dict *[*str , object ]) – The values for initialization.
- Return type: QuoteTick
static from_pyo3(pyo3_quote) → QuoteTick
Return a legacy Cython quote tick converted from the given pyo3 Rust object.
- Parameters: pyo3_quote (nautilus_pyo3.QuoteTick) – The pyo3 Rust quote tick to convert from.
- Return type: QuoteTick
static from_pyo3_list(list pyo3_quotes) → list[QuoteTick]
Return legacy Cython quotes converted from the given pyo3 Rust objects.
- Parameters: pyo3_quotes (list *[*nautilus_pyo3.QuoteTick ]) – The pyo3 Rust quotes to convert from.
- Return type: list[QuoteTick]
static from_raw(InstrumentId instrument_id, int64_t bid_price_raw, int64_t ask_price_raw, uint8_t bid_price_prec, uint8_t ask_price_prec, uint64_t bid_size_raw, uint64_t ask_size_raw, uint8_t bid_size_prec, uint8_t ask_size_prec, uint64_t ts_event, uint64_t ts_init) → QuoteTick
Return a quote tick from the given raw values.
- Parameters:
- instrument_id (InstrumentId) – The quotes instrument ID.
- bid_price_raw (int64_t) – The raw top-of-book bid price (as a scaled fixed-point integer).
- ask_price_raw (int64_t) – The raw top-of-book ask price (as a scaled fixed-point integer).
- bid_price_prec (uint8_t) – The bid price precision.
- ask_price_prec (uint8_t) – The ask price precision.
- bid_size_raw (uint64_t) – The raw top-of-book bid size (as a scaled fixed-point integer).
- ask_size_raw (uint64_t) – The raw top-of-book ask size (as a scaled fixed-point integer).
- bid_size_prec (uint8_t) – The bid size precision.
- ask_size_prec (uint8_t) – The ask size precision.
- ts_event (uint64_t) – UNIX timestamp (nanoseconds) when the tick event occurred.
- ts_init (uint64_t) – UNIX timestamp (nanoseconds) when the data object was initialized.
- Return type: QuoteTick
- Raises:
- ValueError – If bid_price_prec != ask_price_prec.
- ValueError – If bid_size_prec != ask_size_prec.
static from_raw_arrays_to_list(InstrumentId instrument_id: InstrumentId, int price_prec: int, int size_prec: int, bid_prices_raw: np.ndarray, ask_prices_raw: np.ndarray, bid_sizes_raw: np.ndarray, ask_sizes_raw: np.ndarray, ts_events: np.ndarray, ts_inits: np.ndarray) → list[QuoteTick]
instrument_id
InstrumentId
Return the tick instrument ID.
- Return type: InstrumentId
- Type: QuoteTick.instrument_id
static list_from_capsule(capsule) → list[QuoteTick]
static to_dict(QuoteTick obj)
Return a dictionary representation of this object.
- Return type: dict[str, object]
to_pyo3(self) → nautilus_pyo3.QuoteTick
Return a pyo3 object from this legacy Cython instance.
- Return type: nautilus_pyo3.QuoteTick
static to_pyo3_list(list quotes) → list[nautilus_pyo3.QuoteTick]
Return pyo3 Rust quotes converted from the given legacy Cython objects.
- Parameters: quotes (list [QuoteTick ]) – The legacy Cython quotes to convert from.
- Return type: list[nautilus_pyo3.QuoteTick]
ts_event
int
UNIX timestamp (nanoseconds) when the data event occurred.
- Return type: int
- Type: QuoteTick.ts_event
ts_init
int
UNIX timestamp (nanoseconds) when the object was initialized.
- Return type: int
- Type: QuoteTick.ts_init
class StrategyId
Bases: Identifier
StrategyId(unicode value) -> None
Represents a valid strategy ID.
Must be correctly formatted with two valid strings either side of a hyphen. It is expected a strategy ID is the class name of the strategy, with an order ID tag number separated by a hyphen.
Example: “EMACross-001”.
The reason for the numerical component of the ID is so that order and position IDs do not collide with those from another strategy within the node instance.
- Parameters: value (str) – The strategy ID value.
- Raises: ValueError – If value is not a valid string containing a hyphen.
WARNING
The name and tag combination must be unique at the trader level.
get_tag(self) → unicode
Return the order ID tag value for this ID.
- Return type: str
is_external(self) → bool
If the strategy ID is the global ‘external’ strategy. This represents the strategy for all orders interacting with this instance of the system which did not originate from any strategy being managed by the system.
- Return type: bool
class Symbol
Bases: Identifier
Symbol(unicode value) -> None
Represents a valid ticker symbol ID for a tradable instrument.
- Parameters: value (str) – The ticker symbol ID value.
- Raises: ValueError – If value is not a valid string.
WARNING
The ID value must be unique for a trading venue.
is_composite(self) → bool
Returns true if the symbol string contains a period (‘.’).
- Return type: str
root(self) → unicode
Return the symbol root.
The symbol root is the substring that appears before the first period (‘.’) in the full symbol string. It typically represents the underlying asset for futures and options contracts. If no period is found, the entire symbol string is considered the root.
- Return type: str
topic(self) → unicode
Return the symbol topic.
The symbol topic is the root symbol with a wildcard ‘*’ appended if the symbol has a root, otherwise returns the full symbol string.
- Return type: str
class TradeId
Bases: Identifier
TradeId(unicode value) -> None
Represents a valid trade match ID (assigned by a trading venue).
Maximum length is 36 characters. Can correspond to the TradeID <1003> field of the FIX protocol.
The unique ID assigned to the trade entity once it is received or matched by the exchange or central counterparty.
- Parameters: value (str) – The trade match ID value.
- Raises:
- ValueError – If value is not a valid string.
- ValueError – If value length exceeds maximum 36 characters.
class TradeTick
Bases: Data
TradeTick(InstrumentId instrument_id, Price price, Quantity size, AggressorSide aggressor_side, TradeId trade_id, uint64_t ts_event, uint64_t ts_init) -> None
Represents a single trade tick in a market.
Contains information about a single unique trade which matched buyer and seller counterparties.
- Parameters:
- instrument_id (InstrumentId) – The trade instrument ID.
- price (Price) – The traded price.
- size (Quantity) – The traded size.
- aggressor_side (AggressorSide) – The trade aggressor side.
- trade_id (TradeId) – The trade match ID (assigned by the venue).
- ts_event (uint64_t) – UNIX timestamp (nanoseconds) when the tick event occurred.
- ts_init (uint64_t) – UNIX timestamp (nanoseconds) when the data object was initialized.
- Raises: ValueError – If trade_id is not a valid string.
aggressor_side
AggressorSide
Return the ticks aggressor side.
- Return type: AggressorSide
- Type: TradeTick.aggressor_side
static capsule_from_list(items)
static from_dict(dict values) → TradeTick
Return a trade tick from the given dict values.
- Parameters: values (dict *[*str , object ]) – The values for initialization.
- Return type: TradeTick
static from_pyo3(pyo3_trade) → TradeTick
Return a legacy Cython trade tick converted from the given pyo3 Rust object.
- Parameters: pyo3_trade (nautilus_pyo3.TradeTick) – The pyo3 Rust trade tick to convert from.
- Return type: TradeTick
static from_pyo3_list(list pyo3_trades) → list[TradeTick]
Return legacy Cython trades converted from the given pyo3 Rust objects.
- Parameters: pyo3_trades (list *[*nautilus_pyo3.TradeTick ]) – The pyo3 Rust trades to convert from.
- Return type: list[TradeTick]
static from_raw(InstrumentId instrument_id, int64_t price_raw, uint8_t price_prec, uint64_t size_raw, uint8_t size_prec, AggressorSide aggressor_side, TradeId trade_id, uint64_t ts_event, uint64_t ts_init) → TradeTick
Return a trade tick from the given raw values.
- Parameters:
- instrument_id (InstrumentId) – The trade instrument ID.
- price_raw (int64_t) – The traded raw price (as a scaled fixed-point integer).
- price_prec (uint8_t) – The traded price precision.
- size_raw (uint64_t) – The traded raw size (as a scaled fixed-point integer).
- size_prec (uint8_t) – The traded size precision.
- aggressor_side (AggressorSide) – The trade aggressor side.
- trade_id (TradeId) – The trade match ID (assigned by the venue).
- ts_event (uint64_t) – UNIX timestamp (nanoseconds) when the tick event occurred.
- ts_init (uint64_t) – UNIX timestamp (nanoseconds) when the data object was initialized.
- Return type: TradeTick
static from_raw_arrays_to_list(InstrumentId instrument_id, uint8_t price_prec, uint8_t size_prec, int64_t[:] prices_raw, uint64_t[:] sizes_raw, uint8_t[:] aggressor_sides, list trade_ids, uint64_t[:] ts_events, uint64_t[:] ts_inits) → list[TradeTick]
instrument_id
InstrumentId
Return the ticks instrument ID.
- Return type: InstrumentId
- Type: TradeTick.instrument_id
static list_from_capsule(capsule) → list[TradeTick]
price
Price
Return the ticks price.
- Return type: Price
- Type: TradeTick.price
size
Quantity
Return the ticks size.
- Return type: Quantity
- Type: TradeTick.size
static to_dict(TradeTick obj)
Return a dictionary representation of this object.
- Return type: dict[str, object]
to_pyo3(self) → nautilus_pyo3.TradeTick
Return a pyo3 object from this legacy Cython instance.
- Return type: nautilus_pyo3.TradeTick
static to_pyo3_list(list trades) → list[nautilus_pyo3.TradeTick]
Return pyo3 Rust trades converted from the given legacy Cython objects.
- Parameters: ticks (list [TradeTick ]) – The legacy Cython Rust trades to convert from.
- Return type: list[nautilus_pyo3.TradeTick]
trade_id
InstrumentId
Return the ticks trade match ID.
- Return type: Price
- Type: TradeTick.trade_id
ts_event
int
UNIX timestamp (nanoseconds) when the data event occurred.
- Return type: int
- Type: TradeTick.ts_event
ts_init
int
UNIX timestamp (nanoseconds) when the object was initialized.
- Return type: int
- Type: TradeTick.ts_init
class TraderId
Bases: Identifier
TraderId(unicode value) -> None
Represents a valid trader ID.
Must be correctly formatted with two valid strings either side of a hyphen. It is expected a trader ID is the abbreviated name of the trader with an order ID tag number separated by a hyphen.
Example: “TESTER-001”.
The reason for the numerical component of the ID is so that order and position IDs do not collide with those from another node instance.
- Parameters: value (str) – The trader ID value.
- Raises: ValueError – If value is not a valid string containing a hyphen.
WARNING
The name and tag combination ID value must be unique at the firm level.
get_tag(self) → unicode
Return the order ID tag value for this ID.
- Return type: str
class Venue
Bases: Identifier
Venue(unicode name) -> None
Represents a valid trading venue ID.
- Parameters: name (str) – The venue ID value.
- Raises: ValueError – If name is not a valid string.
static from_code(unicode code)
Return the venue with the given code from the built-in internal map (if found).
Currency only supports CME Globex exchange ISO 10383 MIC codes.
- Parameters: code (str) – The code of the venue.
- Return type:
Venue or
None
is_synthetic(self) → bool
Return whether the venue is synthetic (‘SYNTH’).
- Return type: bool
class VenueOrderId
Bases: Identifier
VenueOrderId(unicode value) -> None
Represents a valid venue order ID (assigned by a trading venue).
- Parameters: value (str) – The venue assigned order ID value.
- Raises: ValueError – If value is not a valid string.