This document describes the properties that can be used to construct FX Volatility Surface.
For the general guidelines on how to structure a request to construct a volatility surface please refer to the Volatility Surfaces Getting Started page.
This page explains how to build the underlying definition section, define your own surface parameters and layout preferences, and what fields can be returned for ETI Volatility Surface.
The table below lists the root object properties that should be defined in the request body.
Input Name | Type | Description | Importance | Default Value |
outputs | Array of strings | The list of requested output analytics. The possible values are:
|
Optional | The default values are based on the value of surface layout format. By default, surfaceTag and properties that apply to the constructed volatility surface are returned. |
universe | Array of objects | The array of objects that describe the volatility surface and the surface preferences. For a detailed breakdown, please refer here. |
Mandatory | No default value applies. |
The table below lists the properties that can be requested in the universe object.
Input Name | Type | Description | Importance | Default Value |
underlyingType |
String (enumeration) | The type of underlying used to generate the volatility surface. The possible value is:
|
Mandatory | No default value applies. |
surfaceTag | String | A user-defined string to identify the volatility surface. It can be used to link output results to the requested definition. Limited to 40 characters. Only alphabetic, numeric and '- _.#=@' characters are supported. | Optional | No default value applies. |
underlyingDefinition | Object | The definition of the volatility surface. For a detailed breakdown, please refer here. | Mandatory | No default value applies. |
surfaceParameters | Object | The pricing parameters to be applied to the volatility surface. For a detailed breakdown, please refer here. | Optional | If not provided, default values of parameters are used. |
surfaceLayout | Object | The list of properties used to modify the layout of the volatility surface in outputs. For a detailed breakdown, please refer here. | Optional | If not provided, default values of parameters are used. |
The table below lists the properties that can be requested in the underlyingDefinition object.
Input Name | Type | Description | Importance | Default Value |
instrumentCode | String | The code used to define the underlying asset, expressed in ISO 4217 alphabetical format (e.g., 'EURCHF'). |
Mandatory | No default value applies. |
The table below lists the properties that can be requested in the surfaceParameters object.
Note:
Input Name | Type | Description | Importance | Default value |
xAxis | String (enumeration) | The list of properties that can be set for the 'x' axis. The possible values are:
|
Optional | The default value is 'Date'. |
yAxis | String (enumeration) | The list of properties that can be set for the 'y' axis. The possible values are:
|
Optional | The default value is 'Delta'. |
valuationDate | DateTime | The date at which the volatility surface is constructed. The value is expressed in ISO 8601 format: YYYY-MM-DDT[hh]:[mm]:[ssZ (e.g., '2021-01-01T00:00:00Z'). It should be less or equal to today's date. | Optional | The default value is today's date. |
volatilityModel | String (enumeration) | The model used to build the surface. The possible values are:
|
Optional | The default value is 'SVI'. |
fxSwapCalculationMethod | String (enumeration) | The method used to calculate an outright price or deposit rates. The possible values are:
|
Optional | The default value is 'DepositCcy2ImpliedFromFxSwap'. |
priceSide | String (enumeration) | The quoted price side of the volatility constituents used to construct the surface. The possible values are:
|
Optional | The default value is 'Mid'. |
deltaConvention | String (enumeration) | The convention of how delta is defined (the ratio of change in FX option value to the change in exchange rate of the underlying currency pair) when constructing the volatility surface. The possible values are:
Note: It can be used if xAxis or yAxis is set to 'Delta' or 'Moneyness'. |
Optional | The default value is 'Spot'. |
deltaPremiumConvention | String (enumeration) | The convention used to compute delta. Possible values are:
|
Optional | The default value is 'PA'. |
returnAtm | Boolean | An indicator of whether the ATM volatility is returned in the surface constructed. The possible values are:
Note: It can be used if xAxis or yAxis is set to 'Delta' or 'Moneyness'. |
Optional | The default value is 'true'. |
The table below lists the properties that can be requested in the surfaceLayout object.
Input Name | Type | Description | Importance | Default value |
format | String (enumeration) | The format of the returned volatility surface. The possible values are:
|
Optional | The default value is 'Matrix'. |
xValues | Array of strings | The list of values of discrete data points on the x-axis. The possible values are determined by value of xAxis. It is used only if format = 'Matrix'. |
Optional | No default value applies. |
yValues | Array of strings | The list of values of discrete data points on the y-axis. The possible values are determined by the value of yAxis. It is used only if format = 'Matrix'. |
Optional | No default value applies. |
xPointCount | Integer | The number of data points that will be generated along the x-axis. These values will be distributed depending on the available input data and the type of volatility. It is used only if format = 'Matrix'. This parameter is ignored if xValues parameter is used. |
Optional | No default value applies. |
yPointCount | Integer | The number of data points that will be generated along the y-axis. These values will distributed depending on the available input data and the type of volatility. It is used only if format = 'Matrix'. This parameter is ignored if yValues parameter is used. |
Optional | No default value applies. |
dataPoints | Array of objects | The list of specific data points to be returned. For a detailed breakdown, please refer here. |
Optional | No default value applies. |
The table below lists the properties of surfaceLayout → dataPoints object.
Input Name | Type | Description | Importance | Default value |
x | String | A value of a point to be returned on x-axis. | Optional | No default value applies. |
y | String | A value of a point to be returned on y-axis. | Optional | No default value applies. |
The table below lists properties returned in the response, including properties requested in the outputs object.
Output Name | Type | Description |
surfaceTag | String | A user-defined string to identify the volatility surface. |
surface | Array of arrays | The values of the properties that apply to the constructed volatility surface. |
headers | Array of strings | The names of the properties that apply to the constructed volatility surface. It is returned if the surface layout's format is set to 'List'. |
crossCurrencyCurves | Array of objects | The parameters of curves used to construct the volatility surface. For a detailed breakdown, please refer here. |
Error Code | Error Message | Description |
QPS-DPS.Error_InvalidInput_UnbindableJsonPayload | Invalid input: Unbindable json Error converting value \"expiry\" to type 'TR.Qps.Models.Messages.VolSurfApi.VolatilitySurfaceAxis'. Path 'surfaceParameters.YAxis', line 1, position 164 | Wrong y-axis. |
VolSurf.10200 | Market data: The service failed to retrieve the necessary data to build the volatility surface. | Global DPS error. |
VolSurf.10300 | The service failed to build the volatility surface. | Global VolSurf error. |
8007 | Pricer: The service failed to build the volatility surface. | Pricer error. |
The table below lists the deprecated properties.
Data Model Type | Deprecated Name | New Name |
underlyingDefinition | fxCrossCode | instrumentCode |