MarkPriceUpdate

July 28, 2026 ยท View on GitHub

MarkPriceUpdate represents an instrument's mark price. Derivatives venues commonly use mark prices for margining, liquidation checks, and unrealized PnL calculations.

Fields

FieldRust typePython typeRequired/defaultNotes
instrument_idInstrumentIdInstrumentIdRequiredInstrument for the mark price.
valuePricePriceRequiredCurrent mark price.
ts_eventUnixNanosintRequiredEvent timestamp in nanoseconds.
ts_initUnixNanosintRequiredInitialization timestamp in nanoseconds.

Behavior

  • Mark prices are cached by instrument when received.
  • Backtests can feed mark prices to align margin and PnL behavior with venues that publish reference prices separately from trades.
  • The catalog stores mark prices with instrument ID and price precision metadata.

Example

use nautilus_core::UnixNanos;
use nautilus_model::{
    data::MarkPriceUpdate,
    identifiers::InstrumentId,
    types::Price,
};

let mark = MarkPriceUpdate::new(
    InstrumentId::from("BTCUSDT-PERP.BINANCE"),
    Price::from("65000.10"),
    UnixNanos::from(1_000_000_000),
    UnixNanos::from(1_000_000_100),
);
from nautilus_trader.model import InstrumentId
from nautilus_trader.model import MarkPriceUpdate
from nautilus_trader.model import Price

mark = MarkPriceUpdate(
    instrument_id=InstrumentId.from_str("BTCUSDT-PERP.BINANCE"),
    value=Price.from_str("65000.10"),
    ts_event=1_000_000_000,
    ts_init=1_000_000_100,
)