NautilusTrader
ConceptsInstruments

Equity

Equity represents a listed share, ETF, or similar cash-market security. Nautilus uses this type for instruments that trade in whole units, quote in one currency, and have no contract expiry.

Examples include AAPL.XNAS, MSFT.XNAS, and venue-specific ETF symbols.

Fields

<Tabs items={["Rust", "Python"]}>

FieldTypeRequired/defaultNotes
instrument_idInstrumentIdRequiredStored as id in Rust.
raw_symbolSymbolRequiredNative venue symbol.
currencyCurrencyRequiredQuote and settlement currency.
price_precisionu8RequiredDecimal places allowed for prices.
price_incrementPriceRequiredSmallest valid price step.
lot_sizeOption<Quantity>NoneBoard lot or whole‑share lot size.
ts_eventUnixNanosRequiredEvent timestamp in nanoseconds.
ts_initUnixNanosRequiredInitialization timestamp in nanoseconds.
isinOption<Ustr>NoneInternational Securities ID when known.
max_quantityOption<Quantity>NoneMaximum order quantity.
min_quantityOption<Quantity>NoneMinimum order quantity.
max_priceOption<Price>NoneMaximum valid quote or order price.
min_priceOption<Price>NoneMinimum valid quote or order price.
margin_initOption<Decimal>0Initial margin rate.
margin_maintOption<Decimal>0Maintenance margin rate.
maker_feeOption<Decimal>0Maker fee rate. Negative values rebate.
taker_feeOption<Decimal>0Taker fee rate. Negative values rebate.
tick_schemeOption<Ustr>NoneRegistered variable tick scheme name.
infoOption<Params>NoneAdapter metadata.
FieldTypeRequired/defaultNotes
instrument_idInstrumentIdRequired
raw_symbolSymbolRequiredNative venue symbol.
currencyCurrencyRequiredQuote and settlement currency.
price_precisionintRequiredDecimal places allowed for prices.
price_incrementPriceRequiredSmallest valid price step.
lot_sizeQuantity | NoneNoneBoard lot or whole‑share lot size.
ts_eventintRequiredEvent timestamp in nanoseconds.
ts_initintRequiredInitialization timestamp in nanoseconds.
isinstr | NoneNoneInternational Securities ID when known.
max_quantityQuantity | NoneNoneMaximum order quantity.
min_quantityQuantity | NoneNoneMinimum order quantity.
max_pricePrice | NoneNoneMaximum valid quote or order price.
min_pricePrice | NoneNoneMinimum valid quote or order price.
margin_initDecimal | None0Initial margin rate.
margin_maintDecimal | None0Maintenance margin rate.
maker_feeDecimal | None0Maker fee rate. Negative values rebate.
taker_feeDecimal | None0Taker fee rate. Negative values rebate.
tick_schemestr | NoneNoneRegistered variable tick scheme name.
infodict | NoneNoneAdapter metadata.

Note: Python constructors use instrument_id; Rust stores the same value as id.

Behavior

  • Equity has asset class Equity and instrument class Spot.
  • Quantity precision is always zero, so orders use whole-share quantities.
  • The multiplier and size increment are one.
  • It has no base currency, expiry, strike, option kind, or inverse costing flag.
  • Use price limits only when the venue publishes them.

Example

use nautilus_core::UnixNanos;
use nautilus_model::{
    identifiers::{InstrumentId, Symbol},
    instruments::Equity,
    types::{Currency, Price, Quantity},
};
use ustr::Ustr;

let aapl = Equity::builder()
    .instrument_id(InstrumentId::from("AAPL.XNAS"))
    .raw_symbol(Symbol::from("AAPL"))
    .isin(Ustr::from("US0378331005"))
    .currency(Currency::from("USD"))
    .price_precision(2)
    .price_increment(Price::from("0.01"))
    .lot_size(Quantity::from("100"))
    .ts_event(UnixNanos::default())
    .ts_init(UnixNanos::default())
    .build()
    .unwrap();

Adapters

Representative adapters that create or consume Equity instruments include:

  • Data explains market data that references instruments.
  • Value types explains Price, Quantity, and Money.

On this page