Instruments

Defines tradable asset/contract instruments with specific properties dependent on the asset class and instrument class.

class BettingInstrument ( unicode venue_name , int event_type_id , unicode event_type_name , int competition_id , unicode competition_name , int event_id , unicode event_name , unicode event_country_code , datetime event_open_date , unicode betting_type , unicode market_id , unicode market_name , datetime market_start_time , unicode market_type , int selection_id , unicode selection_name , unicode currency , float selection_handicap , int8_t price_precision , int8_t size_precision , uint64_t ts_event , uint64_t ts_init , unicode tick_scheme_name=None , Price min_price=None , Price max_price=None , dict info=None )

Bases: Instrument

Represents an instrument in a betting market.

asset_class

The asset class of the instrument.

Returns :

AssetClass

static base_from_dict ( dict values ) Instrument

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

Instrument

static base_to_dict ( Instrument obj )

Return a dictionary representation of this object.

Returns :

dict[str, object]

calculate_base_quantity ( self , Quantity quantity , Price last_px ) Quantity

Calculate the base asset quantity from the given quote asset quantity and last price.

Parameters :
  • quantity ( Quantity ) – The quantity to convert from.

  • last_px ( Price ) – The last price for the instrument.

Returns :

Quantity

static from_dict ( dict values ) BettingInstrument

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

BettingInstrument

classmethod fully_qualified_name ( cls ) str

Return the fully qualified name for the Data class.

Returns :

str

References

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

get_base_currency ( self ) Currency

Return the instruments base currency (if applicable).

Returns :

Currency or None

get_settlement_currency ( self ) Currency

Return the currency used to settle a trade of the instrument.

  • Standard linear instruments = quote_currency

  • Inverse instruments = base_currency

  • Quanto instruments = settlement_currency

Returns :

Currency

id

The instrument ID.

Returns :

InstrumentId

info

The raw info for the instrument.

Returns :

dict[str, object]

instrument_class

The class of the instrument.

Returns :

InstrumentClass

is_inverse

If the quantity is expressed in quote currency.

Returns :

Currency

lot_size

The rounded lot unit size (standard/board) for the instrument.

Returns :

Quantity or None

make_price ( self , value ) Price

Return a new price from the given value using the instruments price precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the price.

Returns :

Price

make_qty ( self , value ) Quantity

Return a new quantity from the given value using the instruments size precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the quantity.

Returns :

Quantity

maker_fee

The fee rate for liquidity makers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

margin_init

The initial (order) margin rate for the instrument.

Returns :

Decimal

margin_maint

The maintenance (position) margin rate for the instrument.

Returns :

Decimal

max_notional

The maximum notional order value for the instrument.

Returns :

Money or None

max_price

The maximum printable price for the instrument.

Returns :

Price or None

max_quantity

The maximum order quantity for the instrument.

Returns :

Quantity or None

min_notional

The minimum notional order value for the instrument.

Returns :

Money or None

min_price

The minimum printable price for the instrument.

Returns :

Price or None

min_quantity

The minimum order quantity for the instrument.

Returns :

Quantity or None

multiplier

The contract multiplier for the instrument (determines tick value).

Returns :

Quantity

next_ask_price ( self , double value , int num_ticks=0 ) Price

Return the price n ask ticks away from value.

If a given price is between two ticks, n=0 will find the nearest ask tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

next_bid_price ( self , double value , int num_ticks=0 ) Price

Return the price n bid ticks away from value.

If a given price is between two ticks, n=0 will find the nearest bid tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

notional_value ( self , Quantity quantity , Price price , bool use_quote_for_inverse=False ) Money
price_increment

The minimum price increment or tick size for the instrument.

Returns :

Price

price_precision

The price precision of the instrument.

Returns :

int

quote_currency

The quote currency for the instrument.

Returns :

Currency

raw_symbol

The raw/local/native symbol for the instrument, assigned by the venue.

Returns :

Symbol

size_increment

The minimum size increment for the instrument.

Returns :

Quantity

size_precision

The size precision of the instrument.

Returns :

int

symbol

Return the instruments ticker symbol.

Returns :

Symbol

taker_fee

The fee rate for liquidity takers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

tick_scheme_name

The tick scheme name.

Returns :

str or None

static to_dict ( BettingInstrument obj ) dict [ str , object ]

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

venue

Return the instruments trading venue.

Returns :

Venue

make_symbol ( unicode market_id: str , int selection_id: int , double selection_handicap: float ) Symbol

Make symbol.

>>> make_symbol(market_id="1.201070830", selection_id=123456, selection_handicap=null_handicap())
Symbol('1.201070830-123456-None')
null_handicap ( ) double
class CryptoPerpetual ( InstrumentId instrument_id , Symbol raw_symbol , Currency base_currency , Currency quote_currency , Currency settlement_currency , bool is_inverse , int price_precision , int size_precision , Price price_increment , Quantity size_increment , margin_init: Decimal , margin_maint: Decimal , maker_fee: Decimal , taker_fee: Decimal , uint64_t ts_event , uint64_t ts_init , Quantity max_quantity: Quantity | None = None , Quantity min_quantity: Quantity | None = None , Money max_notional: Money | None = None , Money min_notional: Money | None = None , Price max_price: Price | None = None , Price min_price: Price | None = None , dict info=None )

Bases: Instrument

Represents a Crypto Perpetual Futures contract instrument (a.k.a. Perpetual Swap ).

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

  • raw_symbol ( Symbol ) – The raw/local/native symbol for the instrument, assigned by the venue.

  • base_currency ( Currency , optional ) – The base currency.

  • quote_currency ( Currency ) – The quote currency.

  • settlement_currency ( Currency ) – The settlement currency.

  • is_inverse ( Currency ) – If the instrument costing is inverse (quantity expressed in quote currency units).

  • price_precision ( int ) – The price decimal precision.

  • size_precision ( int ) – The trading size decimal precision.

  • price_increment ( Price ) – The minimum price increment (tick size).

  • size_increment ( Quantity ) – The minimum size increment.

  • margin_init ( Decimal ) – The initial (order) margin requirement in percentage of order value.

  • margin_maint ( Decimal ) – The maintenance (position) margin in percentage of position value.

  • maker_fee ( Decimal ) – The fee rate for liquidity makers as a percentage of order value.

  • taker_fee ( Decimal ) – The fee rate for liquidity takers as a percentage of order value.

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

  • ts_init ( uint64_t ) – The UNIX timestamp (nanoseconds) when the data object was initialized.

  • max_quantity ( Quantity , optional ) – The maximum allowable order quantity.

  • min_quantity ( Quantity , optional ) – The minimum allowable order quantity.

  • max_notional ( Money , optional ) – The maximum allowable order notional value.

  • min_notional ( Money , optional ) – The minimum allowable order notional value.

  • max_price ( Price , optional ) – The maximum allowable quoted price.

  • min_price ( Price , optional ) – The minimum allowable quoted price.

  • info ( dict [ str , object ] , optional ) – The additional instrument information.

Raises :
  • ValueError – If price_precision is negative (< 0).

  • ValueError – If size_precision is negative (< 0).

  • ValueError – If price_increment is not positive (> 0).

  • ValueError – If size_increment is not positive (> 0).

  • ValueError – If price_precision is not equal to price_increment.precision.

  • ValueError – If size_increment is not equal to size_increment.precision.

  • ValueError – If lot size is not positive (> 0).

  • ValueError – If max_quantity is not positive (> 0).

  • ValueError – If min_quantity is negative (< 0).

  • ValueError – If max_notional is not positive (> 0).

  • ValueError – If min_notional is negative (< 0).

  • ValueError – If max_price is not positive (> 0).

  • ValueError – If min_price is negative (< 0).

asset_class

The asset class of the instrument.

Returns :

AssetClass

base_currency

The base currency for the instrument.

Returns :

Currency

static base_from_dict ( dict values ) Instrument

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

Instrument

static base_to_dict ( Instrument obj )

Return a dictionary representation of this object.

Returns :

dict[str, object]

calculate_base_quantity ( self , Quantity quantity , Price last_px ) Quantity

Calculate the base asset quantity from the given quote asset quantity and last price.

Parameters :
  • quantity ( Quantity ) – The quantity to convert from.

  • last_px ( Price ) – The last price for the instrument.

Returns :

Quantity

static from_dict ( dict values ) CryptoPerpetual

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

CryptoPerpetual

static from_pyo3 ( pyo3_instrument )
classmethod fully_qualified_name ( cls ) str

Return the fully qualified name for the Data class.

Returns :

str

References

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

get_base_currency ( self ) Currency

Return the instruments base currency.

Returns :

Currency

get_settlement_currency ( self ) Currency

Return the currency used to settle a trade of the instrument.

  • Standard linear instruments = quote_currency

  • Inverse instruments = base_currency

  • Quanto instruments = settlement_currency

Returns :

Currency

id

The instrument ID.

Returns :

InstrumentId

info

The raw info for the instrument.

Returns :

dict[str, object]

instrument_class

The class of the instrument.

Returns :

InstrumentClass

is_inverse

If the quantity is expressed in quote currency.

Returns :

Currency

is_quanto

If the instrument is quanto.

Returns :

bool

lot_size

The rounded lot unit size (standard/board) for the instrument.

Returns :

Quantity or None

make_price ( self , value ) Price

Return a new price from the given value using the instruments price precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the price.

Returns :

Price

make_qty ( self , value ) Quantity

Return a new quantity from the given value using the instruments size precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the quantity.

Returns :

Quantity

maker_fee

The fee rate for liquidity makers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

margin_init

The initial (order) margin rate for the instrument.

Returns :

Decimal

margin_maint

The maintenance (position) margin rate for the instrument.

Returns :

Decimal

max_notional

The maximum notional order value for the instrument.

Returns :

Money or None

max_price

The maximum printable price for the instrument.

Returns :

Price or None

max_quantity

The maximum order quantity for the instrument.

Returns :

Quantity or None

min_notional

The minimum notional order value for the instrument.

Returns :

Money or None

min_price

The minimum printable price for the instrument.

Returns :

Price or None

min_quantity

The minimum order quantity for the instrument.

Returns :

Quantity or None

multiplier

The contract multiplier for the instrument (determines tick value).

Returns :

Quantity

next_ask_price ( self , double value , int num_ticks=0 ) Price

Return the price n ask ticks away from value.

If a given price is between two ticks, n=0 will find the nearest ask tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

next_bid_price ( self , double value , int num_ticks=0 ) Price

Return the price n bid ticks away from value.

If a given price is between two ticks, n=0 will find the nearest bid tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

notional_value ( self , Quantity quantity , Price price , bool use_quote_for_inverse=False ) Money

Calculate the notional value.

Result will be in quote currency for standard instruments, or base currency for inverse instruments.

Parameters :
  • quantity ( Quantity ) – The total quantity.

  • price ( Price ) – The price for the calculation.

  • use_quote_for_inverse ( bool ) – If inverse instrument calculations use quote currency (instead of base).

Returns :

Money

price_increment

The minimum price increment or tick size for the instrument.

Returns :

Price

price_precision

The price precision of the instrument.

Returns :

int

quote_currency

The quote currency for the instrument.

Returns :

Currency

raw_symbol

The raw/local/native symbol for the instrument, assigned by the venue.

Returns :

Symbol

settlement_currency

The settlement currency for the instrument.

Returns :

Currency

size_increment

The minimum size increment for the instrument.

Returns :

Quantity

size_precision

The size precision of the instrument.

Returns :

int

symbol

Return the instruments ticker symbol.

Returns :

Symbol

taker_fee

The fee rate for liquidity takers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

tick_scheme_name

The tick scheme name.

Returns :

str or None

static to_dict ( CryptoPerpetual obj ) dict [ str , object ]

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

venue

Return the instruments trading venue.

Returns :

Venue

class CryptoFuture ( InstrumentId instrument_id , Symbol raw_symbol , Currency underlying , Currency quote_currency , Currency settlement_currency , uint64_t activation_ns , uint64_t expiration_ns , int price_precision , int size_precision , Price price_increment , Quantity size_increment , margin_init: Decimal , margin_maint: Decimal , maker_fee: Decimal , taker_fee: Decimal , uint64_t ts_event , uint64_t ts_init , multiplier=Quantity.from_int_c(1) , lot_size=Quantity.from_int_c(1) , Quantity max_quantity: Quantity | None = None , Quantity min_quantity: Quantity | None = None , Money max_notional: Money | None = None , Money min_notional: Money | None = None , Price max_price: Price | None = None , Price min_price: Price | None = None , dict info=None )

Bases: Instrument

Represents a Deliverable Futures Contract instrument, with crypto assets as underlying and for settlement.

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

  • raw_symbol ( Symbol ) – The raw/local/native symbol for the instrument, assigned by the venue.

  • underlying ( Currency ) – The underlying asset.

  • quote_currency ( Currency ) – The contract quote currency.

  • activation_ns ( uint64_t ) – The UNIX timestamp (nanoseconds) for contract activation.

  • expiration_ns ( uint64_t ) – The UNIX timestamp (nanoseconds) for contract expiration.

  • price_precision ( int ) – The price decimal precision.

  • size_precision ( int ) – The trading size decimal precision.

  • price_increment ( Price ) – The minimum price increment (tick size).

  • size_increment ( Quantity ) – The minimum size increment.

  • margin_init ( Decimal ) – The initial (order) margin requirement in percentage of order value.

  • margin_maint ( Decimal ) – The maintenance (position) margin in percentage of position value.

  • maker_fee ( Decimal ) – The fee rate for liquidity makers as a percentage of order value.

  • taker_fee ( Decimal ) – The fee rate for liquidity takers as a percentage of order value.

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

  • ts_init ( uint64_t ) – The UNIX timestamp (nanoseconds) when the data object was initialized.

  • max_quantity ( Quantity , optional ) – The maximum allowable order quantity.

  • min_quantity ( Quantity , optional ) – The minimum allowable order quantity.

  • max_notional ( Money , optional ) – The maximum allowable order notional value.

  • min_notional ( Money , optional ) – The minimum allowable order notional value.

  • max_price ( Price , optional ) – The maximum allowable quoted price.

  • min_price ( Price , optional ) – The minimum allowable quoted price.

  • info ( dict [ str , object ] , optional ) – The additional instrument information.

Raises :
  • ValueError – If price_precision is negative (< 0).

  • ValueError – If size_precision is negative (< 0).

  • ValueError – If price_increment is not positive (> 0).

  • ValueError – If size_increment is not positive (> 0).

  • ValueError – If price_precision is not equal to price_increment.precision.

  • ValueError – If size_increment is not equal to size_increment.precision.

  • ValueError – If lot size is not positive (> 0).

  • ValueError – If max_quantity is not positive (> 0).

  • ValueError – If min_quantity is negative (< 0).

  • ValueError – If max_notional is not positive (> 0).

  • ValueError – If min_notional is negative (< 0).

  • ValueError – If max_price is not positive (> 0).

  • ValueError – If min_price is negative (< 0).

activation_ns

The UNIX timestamp (nanoseconds) for contract activation.

Returns :

unit64_t

activation_utc

pd.Timestamp

Return the contract activation timestamp (UTC).

Returns :

pd.Timestamp – tz-aware UTC.

Type :

CryptoFuture.activation_utc

asset_class

The asset class of the instrument.

Returns :

AssetClass

static base_from_dict ( dict values ) Instrument

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

Instrument

static base_to_dict ( Instrument obj )

Return a dictionary representation of this object.

Returns :

dict[str, object]

calculate_base_quantity ( self , Quantity quantity , Price last_px ) Quantity

Calculate the base asset quantity from the given quote asset quantity and last price.

Parameters :
  • quantity ( Quantity ) – The quantity to convert from.

  • last_px ( Price ) – The last price for the instrument.

Returns :

Quantity

expiration_ns

The UNIX timestamp (nanoseconds) for contract expiration.

Returns :

unit64_t

expiration_utc

pd.Timestamp

Return the contract expriation timestamp (UTC).

Returns :

pd.Timestamp – tz-aware UTC.

Type :

CryptoFuture.expiration_utc

static from_dict ( dict values ) CryptoFuture

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

CryptoFuture

static from_pyo3 ( pyo3_instrument )
classmethod fully_qualified_name ( cls ) str

Return the fully qualified name for the Data class.

Returns :

str

References

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

get_base_currency ( self ) Currency

Return the instruments base currency.

Returns :

Currency

get_settlement_currency ( self ) Currency

Return the currency used to settle a trade of the instrument.

  • Standard linear instruments = quote_currency

  • Inverse instruments = base_currency

  • Quanto instruments = settlement_currency

Returns :

Currency

id

The instrument ID.

Returns :

InstrumentId

info

The raw info for the instrument.

Returns :

dict[str, object]

instrument_class

The class of the instrument.

Returns :

InstrumentClass

is_inverse

If the quantity is expressed in quote currency.

Returns :

Currency

lot_size

The rounded lot unit size (standard/board) for the instrument.

Returns :

Quantity or None

make_price ( self , value ) Price

Return a new price from the given value using the instruments price precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the price.

Returns :

Price

make_qty ( self , value ) Quantity

Return a new quantity from the given value using the instruments size precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the quantity.

Returns :

Quantity

maker_fee

The fee rate for liquidity makers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

margin_init

The initial (order) margin rate for the instrument.

Returns :

Decimal

margin_maint

The maintenance (position) margin rate for the instrument.

Returns :

Decimal

max_notional

The maximum notional order value for the instrument.

Returns :

Money or None

max_price

The maximum printable price for the instrument.

Returns :

Price or None

max_quantity

The maximum order quantity for the instrument.

Returns :

Quantity or None

min_notional

The minimum notional order value for the instrument.

Returns :

Money or None

min_price

The minimum printable price for the instrument.

Returns :

Price or None

min_quantity

The minimum order quantity for the instrument.

Returns :

Quantity or None

multiplier

The contract multiplier for the instrument (determines tick value).

Returns :

Quantity

next_ask_price ( self , double value , int num_ticks=0 ) Price

Return the price n ask ticks away from value.

If a given price is between two ticks, n=0 will find the nearest ask tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

next_bid_price ( self , double value , int num_ticks=0 ) Price

Return the price n bid ticks away from value.

If a given price is between two ticks, n=0 will find the nearest bid tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

notional_value ( self , Quantity quantity , Price price , bool use_quote_for_inverse=False ) Money

Calculate the notional value.

Result will be in quote currency for standard instruments, or base currency for inverse instruments.

Parameters :
  • quantity ( Quantity ) – The total quantity.

  • price ( Price ) – The price for the calculation.

  • use_quote_for_inverse ( bool ) – If inverse instrument calculations use quote currency (instead of base).

Returns :

Money

price_increment

The minimum price increment or tick size for the instrument.

Returns :

Price

price_precision

The price precision of the instrument.

Returns :

int

quote_currency

The quote currency for the instrument.

Returns :

Currency

raw_symbol

The raw/local/native symbol for the instrument, assigned by the venue.

Returns :

Symbol

settlement_currency

The settlement currency for the contract.

Returns :

Currency

size_increment

The minimum size increment for the instrument.

Returns :

Quantity

size_precision

The size precision of the instrument.

Returns :

int

symbol

Return the instruments ticker symbol.

Returns :

Symbol

taker_fee

The fee rate for liquidity takers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

tick_scheme_name

The tick scheme name.

Returns :

str or None

static to_dict ( CryptoFuture obj ) dict [ str , object ]

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

underlying

The underlying asset for the contract.

Returns :

Currency

venue

Return the instruments trading venue.

Returns :

Venue

class CurrencyPair ( InstrumentId instrument_id , Symbol raw_symbol , Currency base_currency , Currency quote_currency , int price_precision , int size_precision , Price price_increment , Quantity size_increment , margin_init: Decimal , margin_maint: Decimal , maker_fee: Decimal , taker_fee: Decimal , uint64_t ts_event , uint64_t ts_init , Quantity lot_size: Quantity | None = None , Quantity max_quantity: Quantity | None = None , Quantity min_quantity: Quantity | None = None , Money max_notional: Money | None = None , Money min_notional: Money | None = None , Price max_price: Price | None = None , Price min_price: Price | None = None , unicode tick_scheme_name=None , dict info=None )

Bases: Instrument

Represents a generic currency pair instrument in a spot/cash market.

Can represent both Fiat FX and Cryptocurrency pairs.

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

  • raw_symbol ( Symbol ) – The raw/local/native symbol for the instrument, assigned by the venue.

  • base_currency ( Currency ) – The base currency.

  • quote_currency ( Currency ) – The quote currency.

  • price_precision ( int ) – The price decimal precision.

  • size_precision ( int ) – The trading size decimal precision.

  • price_increment ( Price ) – The minimum price increment (tick size).

  • size_increment ( Quantity ) – The minimum size increment.

  • margin_init ( Decimal ) – The initial (order) margin requirement in percentage of order value.

  • margin_maint ( Decimal ) – The maintenance (position) margin in percentage of position value.

  • maker_fee ( Decimal ) – The fee rate for liquidity makers as a percentage of order value.

  • taker_fee ( Decimal ) – The fee rate for liquidity takers as a percentage of order value.

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

  • ts_init ( uint64_t ) – The UNIX timestamp (nanoseconds) when the data object was initialized.

  • lot_size ( Quantity , optional ) – The rounded lot unit size.

  • max_quantity ( Quantity , optional ) – The maximum allowable order quantity.

  • min_quantity ( Quantity , optional ) – The minimum allowable order quantity.

  • max_notional ( Money , optional ) – The maximum allowable order notional value.

  • min_notional ( Money , optional ) – The minimum allowable order notional value.

  • max_price ( Price , optional ) – The maximum allowable quoted price.

  • min_price ( Price , optional ) – The minimum allowable quoted price.

  • tick_scheme_name ( str , optional ) – The name of the tick scheme.

  • info ( dict [ str , object ] , optional ) – The additional instrument information.

Raises :
  • ValueError – If tick_scheme_name is not a valid string.

  • ValueError – If price_precision is negative (< 0).

  • ValueError – If size_precision is negative (< 0).

  • ValueError – If price_increment is not positive (> 0).

  • ValueError – If size_increment is not positive (> 0).

  • ValueError – If price_precision is not equal to price_increment.precision.

  • ValueError – If size_increment is not equal to size_increment.precision.

  • ValueError – If lot_size is not positive (> 0).

  • ValueError – If max_quantity is not positive (> 0).

  • ValueError – If min_quantity is negative (< 0).

  • ValueError – If max_notional is not positive (> 0).

  • ValueError – If min_notional is negative (< 0).

  • ValueError – If max_price is not positive (> 0).

  • ValueError – If min_price is negative (< 0).

asset_class

The asset class of the instrument.

Returns :

AssetClass

base_currency

The base currency for the instrument.

Returns :

Currency

static base_from_dict ( dict values ) Instrument

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

Instrument

static base_to_dict ( Instrument obj )

Return a dictionary representation of this object.

Returns :

dict[str, object]

calculate_base_quantity ( self , Quantity quantity , Price last_px ) Quantity

Calculate the base asset quantity from the given quote asset quantity and last price.

Parameters :
  • quantity ( Quantity ) – The quantity to convert from.

  • last_px ( Price ) – The last price for the instrument.

Returns :

Quantity

static from_dict ( dict values ) CurrencyPair

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

CurrencyPair

static from_pyo3 ( pyo3_instrument )
classmethod fully_qualified_name ( cls ) str

Return the fully qualified name for the Data class.

Returns :

str

References

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

get_base_currency ( self ) Currency

Return the instruments base currency.

Returns :

Currency

get_settlement_currency ( self ) Currency

Return the currency used to settle a trade of the instrument.

  • Standard linear instruments = quote_currency

  • Inverse instruments = base_currency

  • Quanto instruments = settlement_currency

Returns :

Currency

id

The instrument ID.

Returns :

InstrumentId

info

The raw info for the instrument.

Returns :

dict[str, object]

instrument_class

The class of the instrument.

Returns :

InstrumentClass

is_inverse

If the quantity is expressed in quote currency.

Returns :

Currency

lot_size

The rounded lot unit size (standard/board) for the instrument.

Returns :

Quantity or None

make_price ( self , value ) Price

Return a new price from the given value using the instruments price precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the price.

Returns :

Price

make_qty ( self , value ) Quantity

Return a new quantity from the given value using the instruments size precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the quantity.

Returns :

Quantity

maker_fee

The fee rate for liquidity makers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

margin_init

The initial (order) margin rate for the instrument.

Returns :

Decimal

margin_maint

The maintenance (position) margin rate for the instrument.

Returns :

Decimal

max_notional

The maximum notional order value for the instrument.

Returns :

Money or None

max_price

The maximum printable price for the instrument.

Returns :

Price or None

max_quantity

The maximum order quantity for the instrument.

Returns :

Quantity or None

min_notional

The minimum notional order value for the instrument.

Returns :

Money or None

min_price

The minimum printable price for the instrument.

Returns :

Price or None

min_quantity

The minimum order quantity for the instrument.

Returns :

Quantity or None

multiplier

The contract multiplier for the instrument (determines tick value).

Returns :

Quantity

next_ask_price ( self , double value , int num_ticks=0 ) Price

Return the price n ask ticks away from value.

If a given price is between two ticks, n=0 will find the nearest ask tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

next_bid_price ( self , double value , int num_ticks=0 ) Price

Return the price n bid ticks away from value.

If a given price is between two ticks, n=0 will find the nearest bid tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

notional_value ( self , Quantity quantity , Price price , bool use_quote_for_inverse=False ) Money

Calculate the notional value.

Result will be in quote currency for standard instruments, or base currency for inverse instruments.

Parameters :
  • quantity ( Quantity ) – The total quantity.

  • price ( Price ) – The price for the calculation.

  • use_quote_for_inverse ( bool ) – If inverse instrument calculations use quote currency (instead of base).

Returns :

Money

price_increment

The minimum price increment or tick size for the instrument.

Returns :

Price

price_precision

The price precision of the instrument.

Returns :

int

quote_currency

The quote currency for the instrument.

Returns :

Currency

raw_symbol

The raw/local/native symbol for the instrument, assigned by the venue.

Returns :

Symbol

size_increment

The minimum size increment for the instrument.

Returns :

Quantity

size_precision

The size precision of the instrument.

Returns :

int

symbol

Return the instruments ticker symbol.

Returns :

Symbol

taker_fee

The fee rate for liquidity takers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

tick_scheme_name

The tick scheme name.

Returns :

str or None

static to_dict ( CurrencyPair obj ) dict [ str , object ]

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

venue

Return the instruments trading venue.

Returns :

Venue

class Equity ( InstrumentId instrument_id , Symbol raw_symbol , Currency currency , int price_precision , Price price_increment , Quantity lot_size , uint64_t ts_event , uint64_t ts_init , unicode isin: str | None = None , margin_init: Decimal | None = None , margin_maint: Decimal | None = None , maker_fee: Decimal | None = None , taker_fee: Decimal | None = None , max_quantity: Quantity | None = None , min_quantity: Quantity | None = None , dict info=None )

Bases: Instrument

Represents a generic Equity instrument.

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

  • raw_symbol ( Symbol ) – The raw/local/native symbol for the instrument, assigned by the venue.

  • currency ( Currency ) – The futures contract currency.

  • price_precision ( int ) – The price decimal precision.

  • price_increment ( Decimal ) – The minimum price increment (tick size).

  • lot_size ( Quantity ) – The rounded lot unit size (standard/board).

  • isin ( str , optional ) – The instruments International Securities Identification Number (ISIN).

  • margin_init ( Decimal , optional ) – The initial (order) margin requirement in percentage of order value.

  • margin_maint ( Decimal , optional ) – The maintenance (position) margin in percentage of position value.

  • maker_fee ( Decimal , optional ) – The fee rate for liquidity makers as a percentage of order value.

  • taker_fee ( Decimal , optional ) – The fee rate for liquidity takers as a percentage of order value.

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

  • ts_init ( uint64_t ) – The UNIX timestamp (nanoseconds) when the data object was initialized.

  • info ( dict [ str , object ] , optional ) – The additional instrument information.

Raises :
  • ValueError – If price_precision is negative (< 0).

  • ValueError – If price_increment is not positive (> 0).

  • ValueError – If lot_size is not positive (> 0).

  • ValueError – If isin is not None and not a valid string.

asset_class

The asset class of the instrument.

Returns :

AssetClass

static base_from_dict ( dict values ) Instrument

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

Instrument

static base_to_dict ( Instrument obj )

Return a dictionary representation of this object.

Returns :

dict[str, object]

calculate_base_quantity ( self , Quantity quantity , Price last_px ) Quantity

Calculate the base asset quantity from the given quote asset quantity and last price.

Parameters :
  • quantity ( Quantity ) – The quantity to convert from.

  • last_px ( Price ) – The last price for the instrument.

Returns :

Quantity

static from_dict ( dict values ) Instrument

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

Equity

static from_pyo3 ( pyo3_instrument ) Equity

Return legacy Cython equity instrument converted from the given pyo3 Rust object.

Parameters :

pyo3_instrument ( nautilus_pyo3.Equity ) – The pyo3 Rust equity instrument to convert from.

Returns :

Equity

classmethod fully_qualified_name ( cls ) str

Return the fully qualified name for the Data class.

Returns :

str

References

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

get_base_currency ( self ) Currency

Return the instruments base currency (if applicable).

Returns :

Currency or None

get_settlement_currency ( self ) Currency

Return the currency used to settle a trade of the instrument.

  • Standard linear instruments = quote_currency

  • Inverse instruments = base_currency

  • Quanto instruments = settlement_currency

Returns :

Currency

id

The instrument ID.

Returns :

InstrumentId

info

The raw info for the instrument.

Returns :

dict[str, object]

instrument_class

The class of the instrument.

Returns :

InstrumentClass

is_inverse

If the quantity is expressed in quote currency.

Returns :

Currency

isin

The instruments International Securities Identification Number (ISIN).

Returns :

str or None

lot_size

The rounded lot unit size (standard/board) for the instrument.

Returns :

Quantity or None

make_price ( self , value ) Price

Return a new price from the given value using the instruments price precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the price.

Returns :

Price

make_qty ( self , value ) Quantity

Return a new quantity from the given value using the instruments size precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the quantity.

Returns :

Quantity

maker_fee

The fee rate for liquidity makers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

margin_init

The initial (order) margin rate for the instrument.

Returns :

Decimal

margin_maint

The maintenance (position) margin rate for the instrument.

Returns :

Decimal

max_notional

The maximum notional order value for the instrument.

Returns :

Money or None

max_price

The maximum printable price for the instrument.

Returns :

Price or None

max_quantity

The maximum order quantity for the instrument.

Returns :

Quantity or None

min_notional

The minimum notional order value for the instrument.

Returns :

Money or None

min_price

The minimum printable price for the instrument.

Returns :

Price or None

min_quantity

The minimum order quantity for the instrument.

Returns :

Quantity or None

multiplier

The contract multiplier for the instrument (determines tick value).

Returns :

Quantity

next_ask_price ( self , double value , int num_ticks=0 ) Price

Return the price n ask ticks away from value.

If a given price is between two ticks, n=0 will find the nearest ask tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

next_bid_price ( self , double value , int num_ticks=0 ) Price

Return the price n bid ticks away from value.

If a given price is between two ticks, n=0 will find the nearest bid tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

notional_value ( self , Quantity quantity , Price price , bool use_quote_for_inverse=False ) Money

Calculate the notional value.

Result will be in quote currency for standard instruments, or base currency for inverse instruments.

Parameters :
  • quantity ( Quantity ) – The total quantity.

  • price ( Price ) – The price for the calculation.

  • use_quote_for_inverse ( bool ) – If inverse instrument calculations use quote currency (instead of base).

Returns :

Money

price_increment

The minimum price increment or tick size for the instrument.

Returns :

Price

price_precision

The price precision of the instrument.

Returns :

int

quote_currency

The quote currency for the instrument.

Returns :

Currency

raw_symbol

The raw/local/native symbol for the instrument, assigned by the venue.

Returns :

Symbol

size_increment

The minimum size increment for the instrument.

Returns :

Quantity

size_precision

The size precision of the instrument.

Returns :

int

symbol

Return the instruments ticker symbol.

Returns :

Symbol

taker_fee

The fee rate for liquidity takers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

tick_scheme_name

The tick scheme name.

Returns :

str or None

static to_dict ( Instrument obj ) dict [ str , object ]

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

venue

Return the instruments trading venue.

Returns :

Venue

class FuturesContract ( InstrumentId instrument_id , Symbol raw_symbol , AssetClass asset_class , Currency currency , int price_precision , Price price_increment , Quantity multiplier , Quantity lot_size , unicode underlying , uint64_t activation_ns , uint64_t expiration_ns , uint64_t ts_event , uint64_t ts_init , unicode exchange=None , dict info=None )

Bases: Instrument

Represents a generic deliverable futures contract instrument.

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

  • raw_symbol ( Symbol ) – The raw/local/native symbol for the instrument, assigned by the venue.

  • asset_class ( AssetClass ) – The futures contract asset class.

  • currency ( Currency ) – The futures contract currency.

  • price_precision ( int ) – The price decimal precision.

  • price_increment ( Decimal ) – The minimum price increment (tick size).

  • multiplier ( Quantity ) – The contract multiplier.

  • lot_size ( Quantity ) – The rounded lot unit size (standard/board).

  • underlying ( str ) – The underlying asset.

  • activation_ns ( uint64_t ) – The UNIX timestamp (nanoseconds) for contract activation.

  • expiration_ns ( uint64_t ) – The UNIX timestamp (nanoseconds) for contract expiration.

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

  • ts_init ( uint64_t ) – The UNIX timestamp (nanoseconds) when the data object was initialized.

  • exchange ( str , optional ) – The exchange ISO 10383 Market Identifier Code (MIC) where the instrument trades.

  • info ( dict [ str , object ] , optional ) – The additional instrument information.

Raises :
  • ValueError – If multiplier is not positive (> 0).

  • ValueError – If price_precision is negative (< 0).

  • ValueError – If tick_size is not positive (> 0).

  • ValueError – If lot_size is not positive (> 0).

  • ValueError – If exchange is not None and not a valid string.

activation_ns

The UNIX timestamp (nanoseconds) for contract activation.

Returns :

unit64_t

activation_utc

pd.Timestamp

Return the contract activation timestamp (UTC).

Returns :

pd.Timestamp – tz-aware UTC.

Type :

FuturesContract.activation_utc

asset_class

The asset class of the instrument.

Returns :

AssetClass

static base_from_dict ( dict values ) Instrument

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

Instrument

static base_to_dict ( Instrument obj )

Return a dictionary representation of this object.

Returns :

dict[str, object]

calculate_base_quantity ( self , Quantity quantity , Price last_px ) Quantity

Calculate the base asset quantity from the given quote asset quantity and last price.

Parameters :
  • quantity ( Quantity ) – The quantity to convert from.

  • last_px ( Price ) – The last price for the instrument.

Returns :

Quantity

exchange

The exchange ISO 10383 Market Identifier Code (MIC) where the instrument trades.

Returns :

str or None

expiration_ns

The UNIX timestamp (nanoseconds) for contract expiration.

Returns :

unit64_t

expiration_utc

pd.Timestamp

Return the contract expriation timestamp (UTC).

Returns :

pd.Timestamp – tz-aware UTC.

Type :

FuturesContract.expiration_utc

static from_dict ( dict values ) FuturesContract

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

FuturesContract

static from_pyo3 ( pyo3_instrument ) FuturesContract

Return legacy Cython futures contract instrument converted from the given pyo3 Rust object.

Parameters :

pyo3_instrument ( nautilus_pyo3.FuturesContract ) – The pyo3 Rust futures contract instrument to convert from.

Returns :

FuturesContract

classmethod fully_qualified_name ( cls ) str

Return the fully qualified name for the Data class.

Returns :

str

References

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

get_base_currency ( self ) Currency

Return the instruments base currency (if applicable).

Returns :

Currency or None

get_settlement_currency ( self ) Currency

Return the currency used to settle a trade of the instrument.

  • Standard linear instruments = quote_currency

  • Inverse instruments = base_currency

  • Quanto instruments = settlement_currency

Returns :

Currency

id

The instrument ID.

Returns :

InstrumentId

info

The raw info for the instrument.

Returns :

dict[str, object]

instrument_class

The class of the instrument.

Returns :

InstrumentClass

is_inverse

If the quantity is expressed in quote currency.

Returns :

Currency

lot_size

The rounded lot unit size (standard/board) for the instrument.

Returns :

Quantity or None

make_price ( self , value ) Price

Return a new price from the given value using the instruments price precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the price.

Returns :

Price

make_qty ( self , value ) Quantity

Return a new quantity from the given value using the instruments size precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the quantity.

Returns :

Quantity

maker_fee

The fee rate for liquidity makers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

margin_init

The initial (order) margin rate for the instrument.

Returns :

Decimal

margin_maint

The maintenance (position) margin rate for the instrument.

Returns :

Decimal

max_notional

The maximum notional order value for the instrument.

Returns :

Money or None

max_price

The maximum printable price for the instrument.

Returns :

Price or None

max_quantity

The maximum order quantity for the instrument.

Returns :

Quantity or None

min_notional

The minimum notional order value for the instrument.

Returns :

Money or None

min_price

The minimum printable price for the instrument.

Returns :

Price or None

min_quantity

The minimum order quantity for the instrument.

Returns :

Quantity or None

multiplier

The contract multiplier for the instrument (determines tick value).

Returns :

Quantity

next_ask_price ( self , double value , int num_ticks=0 ) Price

Return the price n ask ticks away from value.

If a given price is between two ticks, n=0 will find the nearest ask tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

next_bid_price ( self , double value , int num_ticks=0 ) Price

Return the price n bid ticks away from value.

If a given price is between two ticks, n=0 will find the nearest bid tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

notional_value ( self , Quantity quantity , Price price , bool use_quote_for_inverse=False ) Money

Calculate the notional value.

Result will be in quote currency for standard instruments, or base currency for inverse instruments.

Parameters :
  • quantity ( Quantity ) – The total quantity.

  • price ( Price ) – The price for the calculation.

  • use_quote_for_inverse ( bool ) – If inverse instrument calculations use quote currency (instead of base).

Returns :

Money

price_increment

The minimum price increment or tick size for the instrument.

Returns :

Price

price_precision

The price precision of the instrument.

Returns :

int

quote_currency

The quote currency for the instrument.

Returns :

Currency

raw_symbol

The raw/local/native symbol for the instrument, assigned by the venue.

Returns :

Symbol

size_increment

The minimum size increment for the instrument.

Returns :

Quantity

size_precision

The size precision of the instrument.

Returns :

int

symbol

Return the instruments ticker symbol.

Returns :

Symbol

taker_fee

The fee rate for liquidity takers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

tick_scheme_name

The tick scheme name.

Returns :

str or None

static to_dict ( FuturesContract obj ) dict [ str , object ]

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

underlying

The underlying asset for the contract.

Returns :

str

venue

Return the instruments trading venue.

Returns :

Venue

class OptionsContract ( InstrumentId instrument_id , Symbol raw_symbol , AssetClass asset_class , Currency currency , int price_precision , Price price_increment , Quantity multiplier , Quantity lot_size , unicode underlying , OptionKind option_kind , uint64_t activation_ns , uint64_t expiration_ns , Price strike_price , uint64_t ts_event , uint64_t ts_init , unicode exchange=None , dict info=None )

Bases: Instrument

Represents a generic options contract instrument.

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

  • raw_symbol ( Symbol ) – The raw/local/native symbol for the instrument, assigned by the venue.

  • asset_class ( AssetClass ) – The options contract asset class.

  • currency ( Currency ) – The options contract currency.

  • price_precision ( int ) – The price decimal precision.

  • price_increment ( Price ) – The minimum price increment (tick size).

  • multiplier ( Quantity ) – The option multiplier.

  • lot_size ( Quantity ) – The rounded lot unit size (standard/board).

  • underlying ( str ) – The underlying asset.

  • option_kind ( OptionKind ) – The kind of option (PUT | CALL).

  • strike_price ( Price ) – The option strike price.

  • activation_ns ( uint64_t ) – The UNIX timestamp (nanoseconds) for contract activation.

  • expiration_ns ( uint64_t ) – The UNIX timestamp (nanoseconds) for contract expiration.

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

  • ts_init ( uint64_t ) – The UNIX timestamp (nanoseconds) when the data object was initialized.

  • exchange ( str , optional ) – The exchange ISO 10383 Market Identifier Code (MIC) where the instrument trades.

  • info ( dict [ str , object ] , optional ) – The additional instrument information.

Raises :
  • ValueError – If multiplier is not positive (> 0).

  • ValueError – If price_precision is negative (< 0).

  • ValueError – If tick_size is not positive (> 0).

  • ValueError – If lot_size is not positive (> 0).

activation_ns

The UNIX timestamp (nanoseconds) for contract activation.

Returns :

unit64_t

activation_utc

pd.Timestamp

Return the contract activation timestamp (UTC).

Returns :

pd.Timestamp – tz-aware UTC.

Type :

OptionsContract.activation_utc

asset_class

The asset class of the instrument.

Returns :

AssetClass

static base_from_dict ( dict values ) Instrument

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

Instrument

static base_to_dict ( Instrument obj )

Return a dictionary representation of this object.

Returns :

dict[str, object]

calculate_base_quantity ( self , Quantity quantity , Price last_px ) Quantity

Calculate the base asset quantity from the given quote asset quantity and last price.

Parameters :
  • quantity ( Quantity ) – The quantity to convert from.

  • last_px ( Price ) – The last price for the instrument.

Returns :

Quantity

exchange

The exchange ISO 10383 Market Identifier Code (MIC) where the instrument trades.

Returns :

str or None

expiration_ns

The UNIX timestamp (nanoseconds) for contract expiration.

Returns :

unit64_t

expiration_utc

pd.Timestamp

Return the contract expriation timestamp (UTC).

Returns :

pd.Timestamp – tz-aware UTC.

Type :

OptionsContract.expiration_utc

static from_dict ( dict values ) OptionsContract

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

OptionsContract

static from_pyo3 ( pyo3_instrument ) OptionsContract

Return legacy Cython options contract instrument converted from the given pyo3 Rust object.

Parameters :

pyo3_instrument ( nautilus_pyo3.OptionsContract ) – The pyo3 Rust options contract instrument to convert from.

Returns :

OptionsContract

classmethod fully_qualified_name ( cls ) str

Return the fully qualified name for the Data class.

Returns :

str

References

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

get_base_currency ( self ) Currency

Return the instruments base currency (if applicable).

Returns :

Currency or None

get_settlement_currency ( self ) Currency

Return the currency used to settle a trade of the instrument.

  • Standard linear instruments = quote_currency

  • Inverse instruments = base_currency

  • Quanto instruments = settlement_currency

Returns :

Currency

id

The instrument ID.

Returns :

InstrumentId

info

The raw info for the instrument.

Returns :

dict[str, object]

instrument_class

The class of the instrument.

Returns :

InstrumentClass

is_inverse

If the quantity is expressed in quote currency.

Returns :

Currency

lot_size

The rounded lot unit size (standard/board) for the instrument.

Returns :

Quantity or None

make_price ( self , value ) Price

Return a new price from the given value using the instruments price precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the price.

Returns :

Price

make_qty ( self , value ) Quantity

Return a new quantity from the given value using the instruments size precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the quantity.

Returns :

Quantity

maker_fee

The fee rate for liquidity makers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

margin_init

The initial (order) margin rate for the instrument.

Returns :

Decimal

margin_maint

The maintenance (position) margin rate for the instrument.

Returns :

Decimal

max_notional

The maximum notional order value for the instrument.

Returns :

Money or None

max_price

The maximum printable price for the instrument.

Returns :

Price or None

max_quantity

The maximum order quantity for the instrument.

Returns :

Quantity or None

min_notional

The minimum notional order value for the instrument.

Returns :

Money or None

min_price

The minimum printable price for the instrument.

Returns :

Price or None

min_quantity

The minimum order quantity for the instrument.

Returns :

Quantity or None

multiplier

The contract multiplier for the instrument (determines tick value).

Returns :

Quantity

next_ask_price ( self , double value , int num_ticks=0 ) Price

Return the price n ask ticks away from value.

If a given price is between two ticks, n=0 will find the nearest ask tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

next_bid_price ( self , double value , int num_ticks=0 ) Price

Return the price n bid ticks away from value.

If a given price is between two ticks, n=0 will find the nearest bid tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

notional_value ( self , Quantity quantity , Price price , bool use_quote_for_inverse=False ) Money

Calculate the notional value.

Result will be in quote currency for standard instruments, or base currency for inverse instruments.

Parameters :
  • quantity ( Quantity ) – The total quantity.

  • price ( Price ) – The price for the calculation.

  • use_quote_for_inverse ( bool ) – If inverse instrument calculations use quote currency (instead of base).

Returns :

Money

option_kind

The option kind (PUT | CALL) for the contract.

Returns :

OptionKind

price_increment

The minimum price increment or tick size for the instrument.

Returns :

Price

price_precision

The price precision of the instrument.

Returns :

int

quote_currency

The quote currency for the instrument.

Returns :

Currency

raw_symbol

The raw/local/native symbol for the instrument, assigned by the venue.

Returns :

Symbol

size_increment

The minimum size increment for the instrument.

Returns :

Quantity

size_precision

The size precision of the instrument.

Returns :

int

strike_price

The strike price for the contract.

Returns :

Price

symbol

Return the instruments ticker symbol.

Returns :

Symbol

taker_fee

The fee rate for liquidity takers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

tick_scheme_name

The tick scheme name.

Returns :

str or None

static to_dict ( OptionsContract obj ) dict [ str , object ]

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

underlying

The underlying asset for the contract.

Returns :

str

venue

Return the instruments trading venue.

Returns :

Venue

class SyntheticInstrument ( Symbol symbol , uint8_t price_precision , list components , unicode formula , uint64_t ts_event , uint64_t ts_init )

Bases: Data

Represents a synthetic instrument with prices derived from component instruments using a formula.

The id for the synthetic will become {symbol}.{SYNTH}.

Parameters :
  • symbol ( Symbol ) – The symbol for the synethic instrument.

  • price_precision ( uint8_t ) – The price precision for the synthetic instrument.

  • components ( list [ InstrumentId ] ) – The component instruments for the synthetic instrument.

  • formula ( str ) – The derivation formula for the synthetic instrument.

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

  • ts_init ( uint64_t ) – The UNIX timestamp (nanoseconds) when the data object was initialized.

Raises :
  • ValueError – If price_precision is greater than 9.

  • OverflowError – If price_precision is negative (< 0).

  • ValueError – If the components list does not contain at least 2 instrument IDs.

  • ValueError – If the formula is not a valid string.

  • ValueError – If the formula is not a valid expression.

Warning

All component instruments should already be defined and exist in the cache prior to defining a new synthetic instrument.

calculate ( self , list inputs ) Price

Calculate the price of the synthetic instrument from the given inputs .

Parameters :

inputs ( list [ double ] ) –

Returns :

Price

Raises :
  • ValueError – If inputs is empty, contains a NaN value, or length is different from components count.

  • RuntimeError – If an internal error occurs when calculating the price.

change_formula ( self , unicode formula ) void

Change the internal derivation formula for the synthetic instrument.

Parameters :

formula ( str ) – The derivation formula to change to.

Raises :
  • ValueError – If the formula is not a valid string.

  • ValueError – If the formula is not a valid expression.

components

list[InstrumentId]

Return the components of the synthetic instrument.

Returns :

list[InstrumentId]

Type :

SyntheticInstrument.components

formula

str

Return the synthetic instrument internal derivation formula.

Returns :

str

Type :

SyntheticInstrument.formula

static from_dict ( dict values ) SyntheticInstrument

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

SyntheticInstrument

classmethod fully_qualified_name ( cls ) str

Return the fully qualified name for the Data class.

Returns :

str

References

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

id

The instrument ID.

Returns :

InstrumentId

price_increment

Price

Return the minimum price increment (tick size) for the synthetic instrument.

Returns :

Price

Type :

SyntheticInstrument.price_increment

price_precision

int

Return the precision for the synthetic instrument.

Returns :

int

Type :

SyntheticInstrument.price_precision

static to_dict ( SyntheticInstrument obj ) dict [ str , object ]

Return a dictionary representation of this object.

Returns :

dict[str, object]

ts_event

int

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

Returns :

int

Type :

SyntheticInstrument.ts_event

ts_init

int

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

Returns :

int

Type :

SyntheticInstrument.ts_init

class Instrument ( InstrumentId instrument_id , Symbol raw_symbol , AssetClass asset_class , InstrumentClass instrument_class , Currency quote_currency , bool is_inverse , int price_precision , int size_precision , Quantity size_increment , Quantity multiplier , margin_init: Decimal , margin_maint: Decimal , maker_fee: Decimal , taker_fee: Decimal , uint64_t ts_event , uint64_t ts_init , Price price_increment: Price | None = None , Quantity lot_size: Quantity | None = None , Quantity max_quantity: Quantity | None = None , Quantity min_quantity: Quantity | None = None , Money max_notional: Money | None = None , Money min_notional: Money | None = None , Price max_price: Price | None = None , Price min_price: Price | None = None , unicode tick_scheme_name=None , dict info=None )

Bases: Data

The base class for all instruments.

Represents a tradable financial market instrument. This class can be used to define an instrument, or act as a parent class for more specific instruments.

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

  • raw_symbol ( Symbol ) – The raw/local/native symbol for the instrument, assigned by the venue.

  • asset_class ( AssetClass ) – The instrument asset class.

  • instrument_class ( InstrumentClass ) – The instrument class.

  • quote_currency ( Currency ) – The quote currency.

  • is_inverse ( Currency ) – If the instrument costing is inverse (quantity expressed in quote currency units).

  • price_precision ( int ) – The price decimal precision.

  • size_precision ( int ) – The trading size decimal precision.

  • size_increment ( Price ) – The minimum size increment.

  • multiplier ( Decimal ) – The contract value multiplier (determines tick value).

  • lot_size ( Quantity , optional ) – The rounded lot unit size (standard/board).

  • margin_init ( Decimal ) – The initial (order) margin requirement in percentage of order value.

  • margin_maint ( Decimal ) – The maintenance (position) margin in percentage of position value.

  • maker_fee ( Decimal ) – The fee rate for liquidity makers as a percentage of order value (where 1.0 is 100%).

  • taker_fee ( Decimal ) – The fee rate for liquidity takers as a percentage of order value (where 1.0 is 100%).

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

  • ts_init ( uint64_t ) – The UNIX timestamp (nanoseconds) when the data object was initialized.

  • price_increment ( Price , optional ) – The minimum price increment (tick size).

  • max_quantity ( Quantity , optional ) – The maximum allowable order quantity.

  • min_quantity ( Quantity , optional ) – The minimum allowable order quantity.

  • max_notional ( Money , optional ) – The maximum allowable order notional value.

  • min_notional ( Money , optional ) – The minimum allowable order notional value.

  • max_price ( Price , optional ) – The maximum allowable quoted price.

  • min_price ( Price , optional ) – The minimum allowable quoted price.

  • tick_scheme_name ( str , optional ) – The name of the tick scheme.

  • info ( dict [ str , object ] , optional ) – The additional instrument information.

Raises :
  • ValueError – If tick_scheme_name is not a valid string.

  • ValueError – If price_precision is negative (< 0).

  • ValueError – If size_precision is negative (< 0).

  • ValueError – If price_increment is not positive (> 0).

  • ValueError – If size_increment is not positive (> 0).

  • ValueError – If price_precision is not equal to price_increment.precision.

  • ValueError – If size_increment is not equal to size_increment.precision.

  • ValueError – If multiplier is not positive (> 0).

  • ValueError – If lot size is not positive (> 0).

  • ValueError – If max_quantity is not positive (> 0).

  • ValueError – If min_quantity is negative (< 0).

  • ValueError – If max_notional is not positive (> 0).

  • ValueError – If min_notional is negative (< 0).

  • ValueError – If max_price is not positive (> 0).

  • ValueError – If min_price is negative (< 0).

asset_class

The asset class of the instrument.

Returns :

AssetClass

static base_from_dict ( dict values ) Instrument

Return an instrument from the given initialization values.

Parameters :

values ( dict [ str , object ] ) – The values to initialize the instrument with.

Returns :

Instrument

static base_to_dict ( Instrument obj )

Return a dictionary representation of this object.

Returns :

dict[str, object]

calculate_base_quantity ( self , Quantity quantity , Price last_px ) Quantity

Calculate the base asset quantity from the given quote asset quantity and last price.

Parameters :
  • quantity ( Quantity ) – The quantity to convert from.

  • last_px ( Price ) – The last price for the instrument.

Returns :

Quantity

classmethod fully_qualified_name ( cls ) str

Return the fully qualified name for the Data class.

Returns :

str

References

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

get_base_currency ( self ) Currency

Return the instruments base currency (if applicable).

Returns :

Currency or None

get_settlement_currency ( self ) Currency

Return the currency used to settle a trade of the instrument.

  • Standard linear instruments = quote_currency

  • Inverse instruments = base_currency

  • Quanto instruments = settlement_currency

Returns :

Currency

id

The instrument ID.

Returns :

InstrumentId

info

The raw info for the instrument.

Returns :

dict[str, object]

instrument_class

The class of the instrument.

Returns :

InstrumentClass

is_inverse

If the quantity is expressed in quote currency.

Returns :

Currency

lot_size

The rounded lot unit size (standard/board) for the instrument.

Returns :

Quantity or None

make_price ( self , value ) Price

Return a new price from the given value using the instruments price precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the price.

Returns :

Price

make_qty ( self , value ) Quantity

Return a new quantity from the given value using the instruments size precision.

Parameters :

value ( integer , float , str or Decimal ) – The value of the quantity.

Returns :

Quantity

maker_fee

The fee rate for liquidity makers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

margin_init

The initial (order) margin rate for the instrument.

Returns :

Decimal

margin_maint

The maintenance (position) margin rate for the instrument.

Returns :

Decimal

max_notional

The maximum notional order value for the instrument.

Returns :

Money or None

max_price

The maximum printable price for the instrument.

Returns :

Price or None

max_quantity

The maximum order quantity for the instrument.

Returns :

Quantity or None

min_notional

The minimum notional order value for the instrument.

Returns :

Money or None

min_price

The minimum printable price for the instrument.

Returns :

Price or None

min_quantity

The minimum order quantity for the instrument.

Returns :

Quantity or None

multiplier

The contract multiplier for the instrument (determines tick value).

Returns :

Quantity

next_ask_price ( self , double value , int num_ticks=0 ) Price

Return the price n ask ticks away from value.

If a given price is between two ticks, n=0 will find the nearest ask tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

next_bid_price ( self , double value , int num_ticks=0 ) Price

Return the price n bid ticks away from value.

If a given price is between two ticks, n=0 will find the nearest bid tick.

Parameters :
  • value ( double ) – The reference value.

  • num_ticks ( int , default 0 ) – The number of ticks to move.

Returns :

Price

Raises :

ValueError – If tick scheme is not registered.

notional_value ( self , Quantity quantity , Price price , bool use_quote_for_inverse=False ) Money

Calculate the notional value.

Result will be in quote currency for standard instruments, or base currency for inverse instruments.

Parameters :
  • quantity ( Quantity ) – The total quantity.

  • price ( Price ) – The price for the calculation.

  • use_quote_for_inverse ( bool ) – If inverse instrument calculations use quote currency (instead of base).

Returns :

Money

price_increment

The minimum price increment or tick size for the instrument.

Returns :

Price

price_precision

The price precision of the instrument.

Returns :

int

quote_currency

The quote currency for the instrument.

Returns :

Currency

raw_symbol

The raw/local/native symbol for the instrument, assigned by the venue.

Returns :

Symbol

size_increment

The minimum size increment for the instrument.

Returns :

Quantity

size_precision

The size precision of the instrument.

Returns :

int

symbol

Return the instruments ticker symbol.

Returns :

Symbol

taker_fee

The fee rate for liquidity takers as a percentage of order value (where 1.0 is 100%).

Returns :

Decimal

tick_scheme_name

The tick scheme name.

Returns :

str or None

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

venue

Return the instruments trading venue.

Returns :

Venue

instruments_from_pyo3 ( list pyo3_instruments ) list