Skip to content
All library documents

How Index Prices Support Derivatives Valuation and Settlement

Article NautilusTrader

Summary

An index price is an external reference value associated with an instrument. Derivatives venues may use it when calculating mark prices, funding, or settlement values. The update described here records the instrument, current price, event time, and initialization time, with both timestamps expressed in nanoseconds.

The document explains that received index prices are cached by instrument and stored with instrument identification and price precision metadata. It distinguishes this reference data from trade data: an index update does not indicate that a transaction occurred. Perpetual and futures venues may publish index and mark prices as separate data types. The material defines the data fields and their intended role, but provides no pricing methodology, source-combination rules, market examples beyond a sample instrument, or analysis of how index construction affects trading decisions.

Key ideas

  • Index prices are external reference values that venues may use for mark prices, funding, or settlement.
  • An update contains an instrument identifier, price, event timestamp, and initialization timestamp.
  • Index updates are reference data and do not establish that a trade took place.
  • The document distinguishes index prices from mark prices but does not explain how either is calculated.

Tags

Full text
# IndexPriceUpdate


# IndexPriceUpdate

`IndexPriceUpdate` represents an external index price used by a derivatives market. Venues often
use index prices to calculate mark prices, funding, or settlement values.

## Fields

| Field           | Rust type      | Python type    | Required/default | Notes                                    |
| --------------- | -------------- | -------------- | ---------------- | ---------------------------------------- |
| `instrument_id` | `InstrumentId` | `InstrumentId` | Required         | Instrument for the index price.          |
| `value`         | `Price`        | `Price`        | Required         | Current index price.                     |
| `ts_event`      | `UnixNanos`    | `int`          | Required         | Event timestamp in nanoseconds.          |
| `ts_init`       | `UnixNanos`    | `int`          | Required         | Initialization timestamp in nanoseconds. |

## Behavior

- Index prices are cached by instrument when received.
- Index prices are reference data and do not imply a trade occurred.
- Perpetual and futures venues may publish both mark and index prices.
- The catalog stores index prices with instrument ID and price precision metadata.

## Example

```rust tab="Rust"
use nautilus_core::UnixNanos;
use nautilus_model::{
    data::IndexPriceUpdate,
    identifiers::InstrumentId,
    types::Price,
};

let index = IndexPriceUpdate::new(
    InstrumentId::from("BTCUSDT-PERP.BINANCE"),
    Price::from("64995.50"),
    UnixNanos::from(1_000_000_000),
    UnixNanos::from(1_000_000_100),
);
```

```python tab="Python"
from nautilus_trader.model import IndexPriceUpdate
from nautilus_trader.model import InstrumentId
from nautilus_trader.model import Price

index = IndexPriceUpdate(
    instrument_id=InstrumentId.from_str("BTCUSDT-PERP.BINANCE"),
    value=Price.from_str("64995.50"),
    ts_event=1_000_000_000,
    ts_init=1_000_000_100,
)
```

## Related guides

- [MarkPriceUpdate](mark_price_update.md) covers mark prices.
- [FundingRateUpdate](funding_rate_update.md) covers perpetual funding metadata.
- [Python API reference](/docs/python-api-latest/model/data.html) lists Python members.

Shown in full with attribution under the source's licence. Licence: LGPL-3.0

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.