Risk API
This topic lists Risk API specifications relevant to:
Futures and Options trade/position and portfolio definition
Outputs relevant to Futures and Options for SPAN
CME Group's new Futures and Options Margin Model, SPAN 2
Contents
Revision History
Risk API Integration
The Risk API reflects the data structure for integration with two of our margin services as defined below. CME Group will make additional functional and non-functional requirements available to users integrating with the Java API at: Margin Software.
Margin API: A CME Hosted REST Web-Service API. Users will leverage REST methods for PUT, POST, GET and DELETE to margin portfolios. Users will send CME JSON messages through https web service as defined in this document following the workflows outlined in CME Group's Margin Service API documentation.
Java API: A CME Deployed Library for interaction with CME Group's Margin Models. Users will directly integrate their systems with the CME .jar by building Java portfolio objects and processing margin results objects.
Inputs
Inputs for a futures and options portfolio will contain the following data definitions for the Risk Portfolio Message. The Risk Portfolio Message structure will be organized by categories and further detailed through a subset of attributes within each category.
Portfolio Data Model
Category | Attribute | Description | json field names and examples | Presence | Data Type | Data Rules |
|---|---|---|---|---|---|---|
Header | RequestID | User generated Request ID for margin request | requestId | Optional | string |
|
| Version | Version of risk API | Version | Optional | decimal | Users should specifiy the version of the Risk API they are using |
| Sent Time | User generated system create time for message | sentTime"2018-03-01T17:43:09.422Z" | Optional | dateTime |
|
Point In Time | Business Date | Business date of margin run | businessDt"2018-02-28" | Required | date | Date format expressed as: YYYY-MM-DD |
| Cycle Code | Defined description to distinguish between different point in time | cycleCode | Optional | string | Acceptable values are: AM, EARLY, ITD, or EOD |
| Run Number | Run Number field will increment if used multiple times within a specific CycleCode | runNumber"1" | Optional | integer |
|
| Time | Populated with the current timestamp when the market data file gets created | time | Optional | time |
|
Portfolio | id | User-defined ID for the portfolio, margin results at portfolio level will correspond to this id | id"PORTFOLIO_1" | Conditional | string | Optional for non-omnibus portfolios |
| Currency | User Defined Portfoio Currency. | currency"USD" | Required | string | See Appendix for complete list of acceptable values |
| Customer Account Type | Account Type considerations impacting the margin ratio | customerAccountType"HEDGE" | Required | string | Users set the default account type for the portfolio through this attribute Acceptable values are MEMBER, HEDGE, SPECULATOR, HEIGHTENED*, NON_HEIGHTENED*. Omnibus accounts can only be HEDGE, SPEC, HEIGHTENED*, or NON_HEIGHTENED*. *(Note: Values Heightened and Non_Heightened are not yet supported. The values SPECULATOR and HEDGE are implied as HEIGHTENED and NON_HEIGHTENED , respectively.) |
| Omnibus Indicator | Omnibus Indicator | omnibusInd"NO" | Optional | string | Acceptable values are YES or No; Defaults to NO |
| Parent Portfolio ID | ID of the parent portfolio | parentPortfolioId"1.0" | Optional | string | Used for omnibus child portfolios |
| Memo | Free form field which can be used to pass through any information to the response message | Memo | Optional | string | Used to pass additional portfolio referential data between the margin request and margin response |
Entities | Clearing Firm ID | User defined Clearing firm alphanumeric Id | firmId"001" | Required | string |
|
| Account ID | User defined account alphanumeric ID | accountId | Required | string |
|
| Account Name | User defined name for account | accountName"John Doe" | Optional | string |
|
| Origin Type | Used to designate the manner in which transactions, postions, and funds are segregated as required by requlators | originType | Required | string | Acceptable values are: HOUS, CUST, CUSTOMER, HOUSE |
| Fund Segregation Type | Fund segregation type | segregationType"CSEG" | Optional | string | Acceptable values are CSEG, CNSEG, COTC, NSEG, SECURED |
Positions | Customer Account Type | Account Type considerations impacting the margin ratio | customerAccountType"MEMBER" | Optional | string | Acceptable values are MEMBER, HEDGE, SPECULATOR, HEIGHTENED*, NON_HEIGHTENED*. Omnibus accounts can only be HEDGE, SPEC, HEIGHTENED*, or NON_HEIGHTENED*. *(Note: Values Heightened and Non_Heightened are not yet supported. The values SPECULATOR and HEDGE are implied as HEIGHTENED and NON_HEIGHTENED , respectively.)Users can override the default customer account type that was supplied at the Portfolio level. Acount Override is applied at the Pod, not position, level. If multiple over-rides are present within the same Pod, the deployable software will first prioritize MEMBER type for the Pod if any positions are MEMBER, then prioritize HEDGE, and finally SPECULATOR. |
| Net Position | Net quantity is expressed as either positive (long) and negative (short) | netQty"1.0" | Conditional | decimal (can be negative) | Required if portfolio AccountType is not Omnibus |
| Naked Long Quantity | Buy quantity for naked margin treatment (see omnibus/PID notes) | nakedLongQty"1.0" | Conditional | decimal (cannot be negative) | Only allowable for Omnibus account types, but never required |
| Naked Short Quantity | Sell Quantity for naked margin treatment (See omnibus/PID notes) | nakedShortQty"1.0" | Conditional | decimal (cannot be negative) | Only allowable for Omnibus account types, but never required |
Instrument | Clearing Organization Id | User defined clearing organization | clearingOrganizationId | Required | string |
|
| Exchange ID | Name of Exchange in which the contracts are listed | exchangeId"CBT" | Required | string | For CME Group Exchanges, acceptable values are CME, CBT, NYMEX, COMEX, NYM, CMX |
| Product Code | CME Clearing House Product Code | productCode"17" | Required | string |
|
| Product Type | Name of the product type | productType"FUT" | Required | string | Acceptable values are FUT, OOF, OOP, OOC, FWD |
| Contract Period Code | Maturity Date of Product | periodCode"201809" | Required | string | Example values are: YYYYMM, YYYYMMDD, YYYYMMW1, YYYYMMW2, YYYYMMW3, YYYYMMW4, |
| Put/Call Indicator | Whether the option trade is a PUT or CALL | putCallInd"C" | Conditional | string | Required if ProductType = OOF, OOC, OOP |
| Strike | Strike Price for options | strike"80.00" | Conditional |
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.