Total Performance with Profit & Loss

Daily trading outcomes per security can be provided to the Omega Point platform. By providing these values per security, all platform features are instantaneously updated and can be used for analysis and reporting using true profit & loss accounting.

Methodology

The platform captures the difference between Profit & Loss data and risk model information as Trading return.

Per Security Dollar P&L -  (Modeled Security Factor Attribution + Security Alpha attribution) = Security Trading Attribution

These security P&L values are aggregated, such that
Total Portfolio P&L Return = Factor Returns + Alpha Return + Trading Returns

Upload Position Files with P&L columns

To provide P&L information to the Omega Point Platform via the web app, visit the position uploader and select the CSV or excel file with daily positions and profit & loss columns. 

The platform will scan the file and report back on any irregularities. If previous position data was uploaded without P&L data, then the file that includes P&L columns would need to be re-uploaded. Another suggestion would be to create a new portfolio that would be populated with historic data that include P&L.

Providing P&L Through API

Uploading P&L data can be programmatically updated using the Omega Point Developers Platform, using the mutation.uploadPnlDate node (not to be confused with mutation.uploadDailyPnl, which is a node for daily total profit & loss, not per security).

Note, this only updates one date at a time. Please loop through your P&L to supply the platform with each set of daily values.

Upload Query

mutation {
  uploadPnlDate(
    portfolioId: "port_id",
    data: {
      date: "2019-06-01",
      equities: [
        {
          id: {ticker: "aapl", mic: "xnas"},
          amount: 1000.02
        }, {
          id: {sedol:"12ABC34"},
          amount: 1000.10
        }
      ]
    }) {
    ok
  }
}


Retrieval Query
The query.portfolio.perSecurityPnl node is a way to retrieve the daily, per security profit & loss values that were provided to the platform.

query {
  portfolio(id: "port_id") {
    perSecurityPnl(from: "2019-06-05", to: "2019-06-30") {
      date
      equities {
        id {
          ticker
        }
        amount
      }
    }
  }
}


Delete Reported P&L
Deleting profit & loss information can be one of two ways:

  1. Supplying new P&L data on a specific date, which would overwrite existing information for provided date
  2. Using the mutation.deletePnlDates node to target a specific date using the from, to  inputs, or deleting all supplied information by using the allDates: true  input.
mutation {
  deletePnlDates(
    portfolioId:"port_id"
    # target specific dates, using from, to inputs
    from: "2019-06-05"
    to: "2019-06-30"
    # or delete all dates using
    allDates:true
  ){
    count
  }
}

Did this answer your question?