openapi: 3.0.0 info: title: A7 Analytics Platform - Algo management Algo management API Pace of the Roll API description: 'A7 Analytics Platform for the main T7 trading venues of Deutsche Börse Group and for the MDP feed of CME Group. The platform enables clients to perform pre/at/post trade analysis and to interact with market data and analytics.It provides clients access to the most granular un-normalized/genuine historical order book data (EOBI, MDP) as well as constructed order books, off-the-shelf analytics and allows them to build their own custom analytics utilizing algo functionality, which is a flexible high-performance framework based on historical order book data.

The A7 data can be accessed either via the user interface or via RESTful API.

The algo management API provides access to the A7 algos and their results. With the API it is possible to create, update, delete and run algos and to access the results of the algo runs. All available endpoints are described in detail below.

Security measures:
In order to prevent unauthorized access to the API an authentication token must be used. A7 utilises the bearer authentication scheme for this purpose. The authentication token must be added to the header of each request message. Depending on the implementation it might be necessary to add the keyword "Bearer" to the token string as a prefix followed by a space.

A token can be generated at the A7 user interface. After login the user has to click on the user icon in the upper right corner, click on API token generation and finally click on Request API key. The generated token will be displayed directly in the user interface.

' contact: name: Deutsche Börse Data & Analytics url: https://www.mds.deutsche-boerse.com email: analytics@deutsche-boerse.com version: 1.0.2 servers: - url: /api/v1 description: A7 production environment security: - bearerAuth: [] tags: - name: Pace of the Roll paths: /insights/por: get: tags: - Pace of the Roll summary: Retrieve list of market segments description: The request delivers all available market segments as a list of strings. operationId: getMarketSegments responses: '200': description: successful operation content: application/json: schema: type: object properties: MarketSegments: type: array items: $ref: '#/components/schemas/MarketSegment' required: - MarketSegments application/gzip: schema: type: object properties: MarketSegments: type: array items: $ref: '#/components/schemas/MarketSegment' required: - MarketSegments '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '404': $ref: '#/components/responses/404' /insights/por/{MarketSegment}: get: tags: - Pace of the Roll summary: Retrieve list of rolls description: The request delivers all available rolls for the selected market segment as a list of dates (format = YYYYMM). operationId: getRolls parameters: - $ref: '#/components/parameters/MarketSegment' responses: '200': description: successful operation content: application/json: schema: type: object properties: Rolls: type: array items: $ref: '#/components/schemas/Roll' required: - Rolls application/gzip: schema: type: object properties: Rolls: type: array items: $ref: '#/components/schemas/Roll' required: - Rolls '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '404': $ref: '#/components/responses/404' /insights/por/{MarketSegment}/{Roll}: get: tags: - Pace of the Roll summary: Retrieve roll details description: "The request delivers the detailes for the selected roll as a JSON object.

The details contain the current `r_0`, previous `r_1` and the one before the previous roll `r_2` as well as other previous rolls upto `n` (`r_3`, ..., `r_n`). The roll is defined as a ratio of adjusted open interest of a back-month contract to a sum of back- and front-month contract, for example Dec-2012 / (Sep-2012 + Dec-2012) for September 2012 roll. For each roll this ratio is calculated for a given number of days till expiry (`days`). The corresponding number of days till expiry `dte` is also provided in the output. Additionally, six quantiles (`q_0 = min`, `q_1 = 10%`, `q_2 = 25%`, `q_3 = 75%`, `q_4 = 90%`, `q_5 = max`) based on `n` previous rolls. In the selection of past rolls two alternative comparison methods can be used: consecutive (`comp=c`, i.e. Jun-2012, Mar-2012, Dec-2011, Sep-2011 etc. for Sep-2012 roll) or the same month (`comp=s`, i.e. Sep-2011, Sep-2010, Sep-2009, Sep-2008 for Sep-2012 roll).

Quantile `q` is the value of the largest `m`-th element such that `m / n <= q`, where `n` is the number of elements in an ordered list (in other words, `int index = q(double) * (n(int) - 1)`, where `index` is 0-based index of an element in an sorted list).\n\n Example: `n = 30`:\n\n `q_0 = min`: `m = 1` (`index = 0`, always the 1st element)\n \n `q_1 = 10%`: `m = 3` (`index = 2`, the 3rd element)\n \n `q_2 = 25%`: `m = 8` (`index = 7`, the 8th element)\n \n `q_3 = 75%`: `m = 22` (`index = 21`, the 22rd element)\n \n `q_4 = 90%`: `m = 27` (`index = 26`, the 27th element)\n \n `q_5 = max`: `m = n = 30` (`index = 29`, always the last element)\n" operationId: getRollDetails parameters: - $ref: '#/components/parameters/MarketSegment' - $ref: '#/components/parameters/Roll' - $ref: '#/components/parameters/days' - $ref: '#/components/parameters/n' - $ref: '#/components/parameters/comp' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/RollDetails' application/gzip: schema: $ref: '#/components/schemas/RollDetails' format: binary '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '404': $ref: '#/components/responses/404' components: schemas: MarketSegment: description: market segment represented by a product type: string example: FDAX Ratio: description: ratio of adjusted open interest of a back-month contract to a sum of back- and front-month contract type: number format: float nullable: true minimum: 0 maximum: 1 example: 0.887223 Roll: description: roll represented by a date (format = YYYYMM) type: integer format: int32 pattern: ^\d{6}$ example: 202103 RollDetails: type: object required: - dte - r_0 - q_0 - q_1 - q_2 - q_3 - q_4 - q_5 properties: dte: description: days till expiry type: array items: type: integer minimum: 0 example: 1 r_0: description: current roll type: array items: $ref: '#/components/schemas/Ratio' r_1: description: previous roll type: array items: $ref: '#/components/schemas/Ratio' r_2: description: one before the previous roll type: array items: $ref: '#/components/schemas/Ratio' r_n: description: n-th previous roll type: array items: $ref: '#/components/schemas/Ratio' q_0: description: 0% quantile (minimum) type: array items: $ref: '#/components/schemas/Ratio' q_1: description: 10% quantile type: array items: $ref: '#/components/schemas/Ratio' q_2: description: 25% quantile type: array items: $ref: '#/components/schemas/Ratio' q_3: description: 25% quantile type: array items: $ref: '#/components/schemas/Ratio' q_4: description: 90% quantile type: array items: $ref: '#/components/schemas/Ratio' q_5: description: 100% quantile (maximum) type: array items: $ref: '#/components/schemas/Ratio' parameters: days: name: days in: query description: Number of days till expiry including the expiry day example: 15 required: false schema: type: integer minimum: 1 maximum: 31 default: 10 MarketSegment: name: MarketSegment in: path description: Name of the market segment example: FDAX required: true schema: $ref: '#/components/schemas/MarketSegment' Roll: name: Roll in: path description: Roll in the format YYYYMM example: 202103 required: true schema: $ref: '#/components/schemas/Roll' n: name: n in: query description: Maximal number of previous rolls for quantile calculation example: 20 required: false schema: type: integer minimum: 1 maximum: 99 default: 30 comp: name: comp in: query description: "Comparison parameter to control which past rolls are considered for the calculation.
\n * `s` = Data from the same expiration month from previous years\n * `c` = Data from `n` consecutive months prior to the selected roll\n" required: false schema: type: string default: c enum: - c - s securitySchemes: bearerAuth: type: http scheme: bearer