Using Position Sets

Learn about position sets and how they are used in the API

Edgar Nuñez avatar
Written by Edgar Nuñez
Updated over a week ago

What Is a Position Set?

A position set is a JSON structure that represents a collection of securities and position weights for a set of dates. A position set may include multiple classes such as equities, commodities, currencies, fixed income, indices, swaps, and other assets.

How Are Position Sets Used?

Position sets are used in Omega Point to store daily states of assets under management for a portfolio or strategy. Position sets can be retrieved from the API for any holding dates in the system. Additionally, position sets can be uploaded via the API to update or modify a portfolio.

What Are the Key Components of a Position Set?

Dates

Multiple position set dates can be obtained from the API in a single request, which are returned inside a “dates” array.

Date

Each item inside the dates array includes the position set date in ISO 8601 Date format.

Equity

Each date may also include the equity override value of the position set, if available. This is useful field to use if you have a custom reference value (e.g. AUM or NAV) that you would like the system use in the analytics calculations. This should be expressed in the portfolio's local currency & match the currency used for the economic exposure for each position.

GMV

The GMV of the position set. This is a calculated field and does not need to be passed when the position set is passed as an input. 

Equities

An “equities” array inside each date lists the equity holdings of the position set, including each securities:

  • ID

  • holding value, which we call the “economicExposure” expressed in the portfolio's local currency

  • lot ID (optional), where each lot can pertain to different strategies or purchases of the same security

Swaps

Previously registered baskets are listed and provided in a position set under the corresponding "swaps" array, as referenced by the ID used to register the basket.

Currencies

A “currencies” array is used to list cash positions using their ISO-4217 3-letter currency code as the ID and a weight (“economicExposure”) of each currency (all holdings should be expressed in the portfolio's local currency)

Other Assets

The "other assets" array is used to list unmodeled securities and other positions that contain an economicExposure; this weight is used in calculations that make use of unmodeled GMV.

Putting together all of the above, querying a sample position set could return the following JSON structure:

"dates": [
    {
        "date": "2016-07-01",
        "equity": 3000000,
        "gmv": 3025104.72,
        "equities": [
            {
                "id": {
                    "mic": "XPAR",
                    "ticker": "FR"
                },
                "economicExposure": 577372.75
            },
            {
                "id": {
                    "mic": "XPAR",
                    "ticker": "PUB"
                },
                "economicExposure": -202841.5,
"lotId": "PUB_123"
            },
            {
                "id": {
                    "mic": "XFRA",
                    "ticker": "SZG"
                },
                "economicExposure": 244890.47
            }
        ],
"swaps": [
{
"id": "MY_SWAP",
"economicExposure": 1000000
}
],
"currencies": [
{
"id": "USD",
"economicExposure": 1000000
}
],
"otherAssets": [
{
"id": "ASSET_ID",
"economicExposure": 1000000
}
]
    }
]

Referencing Position Sets by ID

The Omega Point API has various nodes that can be used in conjunction with position sets. These nodes can either accept an inline position set, or reference a position set that has already been uploaded. In the latter case, you can directly reference a benchmark or a portfolio in your account by using some of the optional position set fields: 

  • type 

  • id

For instance, to reference a portfolio that already exists in your account, you can pass into any function that takes a PositionSetInput :

positionSet: {
  type:  “PORTFOLIO”,
  id: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
}

Separately, to reference a benchmark, you can pass into any function that takes a PositionSetInput: 

base: {
  type: “BENCHMARK”,
  id: “SP500”
}

These are useful for comparing a portfolio to a benchmark (e.g. “active”) or comparing one portfolio or strategy to another. For more information on running comparisons in the API, please see the article on Simulation.

Did this answer your question?