FX Volatility Surface

An FX volatility surface is created from FX Option underlying instruments, or from offsets.

You can enter the implied calendar day volatility for different tenors in the FX volatility surface. The option premium is calculated from the calendar day volatility and the number of calendar days until expiration.

Additionally, the FX volatility surface can calculate the trading day volatility, which remains fairly constant as time passes. While calendar days are expressed in integers, trading days can be partial days. You can weight trading days to account for differing periods of volatility in the FX markets and for each currency pair. You can input the following factors for the trading day calculation:

Assign expiration cuts
Assign multipliers and weights to holidays
Define holiday start and end time
Assign multipliers and weights to events such as the release of an economic report or a political election

 

FX Volatility Surface Quick Reference

Configuration Requirements

Currency and Currency Pair Definition – From the Calypso Navigator, navigate to Configuration > Definitions > Currency Definitions.
Factors configuration – See Trading Day Calculation and Configuration

Underlying Instruments

AN FX Volatility Surface can be created from FX Option underlying instruments.

Surface Generation

1. Click New to create a new surface.

2. Definition Panel — Select the following to define the surface: currency, quoting currency, surface type, the Derived checkbox should be checked, generator, pricing environment.

3. Underlyings Panel — Select underlying instruments.

4. Quotes Panel — Enter quotes.

5. Points Panel — Click Generate to generate the points.

6. Click Save, enter a name for the curve, and click OK.

Pricer Configuration

An FX volatility surface can be associated with a pricing environment under the FX panel of the pricer configuration.

 

 Ⓘ   [NOTE: Surfaces can be updated in real-time using the Market Data Server]

See Market Data Server Documentation for information on configuring and running the market data server.

 

From the Calypso Navigator, navigate to Market Data > Volatilities > FX Volatility Surface (menu action marketdata.FXVolatilitySurfaceWindow).

 

1. Trading Day Calculation and Configuration

The system uses the following factors when calculating the trading days for a point on the surface:

Raw Time — calculated from the surface beginning time to the point’s expiry date and time (Time 1 and Time 2, respectively). It is expressed in raw days.
Weekends — value subtracted from the raw time. Weekend Time subtracted if you assign weekend weight. Weekend Time is “weekend weight” * “weekend raw time in the trading time period”.
Cuts — cut multipliers override the raw time for weekdays.
Holidays — value subtracted (multiplier * holiday weight * holiday duration) for each holiday during the trading time period.
Events — value added (multiplier * assigned event weight) for each event that falls within the trading time period. An event is within the trading time period if Time1 < EventTimeDate <= Time2.

 

The raw time unit, a raw day, is a lapse of 86400 seconds. Please observe that due to daylight saving adjustments, some “calendar day” could have a raw time in defect or excess of 1 raw days. So for instance:

The raw time between 1 Jan 2000 at 14:00 in NYC, and 2 Jan 2000 at 14:00 in NYC, is 1 raw day, as exactly 86400 seconds elapsed between both date-times.
The raw time between 1 Apr 2000 at 17:00 in NYC, and 2 Apr 2000 at 17:00 in NYC, is 0.95833 raw days, as 82800 seconds elapsed between both date-times.
The raw time between 28 Oct 2000 at 10:00 in NYC, and 29 Oct 2000 at 10:00 in NYC, is 1.04166 raw days, as 90000 seconds elapsed between both date-times.

 

Leap seconds are ignored in the raw time calculation.

Weekends are defined as a period starting on Friday at 17:00 NYC, and ending the next Sunday at 17:00 NYC.

Cut multiplier for a given cut, defines the duration of the period between the immediately previous cut end date-time, and the given cut end date-time.

 

The calculator only includes the holiday time that overlaps with the weekday time in the trading time period.

Initially, the calculator adjusts the holiday duration to fit within Time 1 and Time 2:

If HolidayEnd <= Time1 or HolidayBegin>=Time2, holiday is excluded.
If HolidayBegin < Time1 and HolidayEnd > Time1, set HolidayStart = Time1.
If HolidayBegin < Time2 and HolidayEnd > Time2, set HolidayEnd = Time2.

If the adjusted holiday falls entirely within a weekend, it is excluded.

If the adjusted holiday overlaps partially with a weekend, then the holiday duration is further adjusted to exclude the weekend part.

 

The exact mathematical formula for trading time calculation for currency pair CP between date-times T1 and T2 (T1 < T2) is:

where:

WE is the set of all instants that belong to a weekend
WWE(CP) is the weekend weight for currency pair CP
CS(t) = Cut Slope at t =
Hc is the set of all instants that belong to a holiday in country C
WH(CP, C) is the holiday weight for currency pair CP and country C
TiEC is the instant at which event i at country C happens
WiEC is the weight for event i at country C
mE(CP, C) is the event multiplier for currency pair CP and country C

 

The configuration described in this section is only required if you want to weight the trading time in the FX volatility surface.

 

1.1 Defining Expiration Cuts and Assigning Multipliers

FX Options can expire at different times during the 24 trading day based on the expiration cut. You can assign a multiplier to each cut. The multipliers must total 1.0, so the basic trading time between the same cut time in two consecutive days is 1.0.

Define the cuts and multipliers in the FX Option Expiry Time Zone application.

From the Calypso Navigator, navigate to Configuration > Definitions > Expiry Time Zone. Help is available from that window.

 

1.2 Assigning Weights and Multipliers to Holidays and Events

In the FX Option Volatility Weights application, assign volatility weights to holidays by country, cut, and currency pair. Additionally, you can create events and assign weights to the events.

From the Calypso Navigator, navigate to Configuration > Foreign Exchange > FX Volatility Weights.

 

Weekend Weight

The calculation subtracts the weekend days when calculating the number of trading days. However, you can assign a weight to weekend days. For example, if you assign a weight of 0.8, then one full weekend will count as 2 x (1-0.8) = 0.4 days in the calculation.

» Select the currency pair.
» Enter the weight. It must be between 0 and 1.
» Click Save to assign the weekend weight.

 

Holiday Weights

In the Holiday Weights panel, you can assign holiday weights by currency pair and location.

» Click Countries to define the trading locations.
» Click Cur Pairs to add the currency pairs.
» Assign a holiday calendar to each country. Double-click the holiday field to select the calendar.
» Enter the holiday weight for each country and currency pair. It must be between 0 and 1. An empty weight will be assumed to be 0.
» Click Save to save the weights.

 Ⓘ   [NOTE: If you later make any changes to the holiday weights and save them, click Publish so that user machines have the new values]

 

Holiday Time

Define when the holiday starts and ends. The start and end times specify the length of time for the holiday weight in the trading day calculation.

» Enter the following details: Holiday, Start and End Times for the holiday, Time Zone of the holiday times. End Time must be after Start Time.
» Click Save to save the holiday time.

 

Event Multiplier

Define events by location. The location of the event can affect currency pairs differently. You can assign event multipliers by currency pair and location in the Event Multiplier panel.

» Click Countries to define the trading locations.
» Click Cur Pairs to add the currency pairs.
» Enter the event multipliers. Multipliers are expected to be non-negative. An empty multiplier will be assumed to be 0.
» Click Save to save the event multipliers.

 Ⓘ   [NOTE: If you later make any changes to the event multipliers and save them, click Publish so that user machines have the new values]

 

Event Weight Rule

Define events that impact market volatility, such as the release of an economic report or a political election, in the Event Weight Rule panel. Define event rules by location and assign a weight to the rule. Generate the actual events in the next panel Event Weight.

Select either a FIXED or FLOATING event type, for example:

Fixed calendar date like “the 6th of January.”
Floating calendar date like “the 3rd Wednesday of March.”

Event rolls off at End Time.

» Enter the weight rule details in the input fields.
» Click Save to create the rule. The application adds the rule to the table.

 

The following table describes the Event Weight Rule fields.

Field Description

Country

Select the event location using one of the following methods:

Enter the country code in the open text field and press [Enter]. The application displays the country name in the adjacent drop-down menu.

Select the country name from the drop-down menu.

Event

Enter a name for the event.

Type

Select the date type for the event:

FIXED — fixed calendar date like “the 6th of January.”

FLOAT — floating calendar date like “the 3rd Wednesday of March.”

Month

Select the month that the event occurs, or the starting month for recurring events.

Frequency

Select how often the event occurs during the year in order to generate the dates:

MTH – Monthly, BIM – Bi-Monthly, QTR – Quarterly, SA – Semi-Annually, PA – Annually

Day

This field is only active when you select FIXED.

Enter the date for the event.

Rank

This field is only active when you select FLOAT. Select the week of the month.

For example, select “3” for the 3rd week of the month.

Day of Week

This field is only active when you select FLOAT. Select the day of the event.

Holiday

Select the holiday calendar to use when calculating the event date.

Date Roll

Select a date roll rule to apply if the event date would occur on a weekend or holiday. The application adjusts the date accordingly.

Expiry Cut

Assign an expiry cut, created in the FX Option Exp TimeZone application, to the event rule.

Weight

Assign a weight to the rule. It is expected to be non-negative.

End Time

Enter the end time for the event. The event weight rolls off at this time.

Time Zone

Enter the local time zone that relates to the event end time.

 

Event Weight

Generate multiple events using the event weight rule in the Event Weight panel.

» Enter the event weight details: Country. Event Rule, Year range.
» Click Generate to create the events.

 Ⓘ   [NOTE: You can modify the Date, End Time, and Weight. Click Save to save the changes]

 

Weight Summary

The weight summary displays the weight for each event for a currency pair and cut. It also shows the spread to the standard weight.

You can export this data to Excel. Right-click and choose "Excel" from the shortcut menu.

 

2. Creating Underlying Instruments

Create the underlying instruments in the Volatility Surface Underlying Window, FX Option panel.

» You can click Show All to view all existing instruments. You can also select a currency pair, and click Show Cp to view the existing instruments for that currency pair.
» Select the following criteria to define the instruments. Then click Save to create the instruments.

 

Fields Description

Currency Pair

Select the currency pair for the FX Option from the drop-down menu.

You can click Show Cp to display existing instruments for this currency pair.

Option Type

Select one of the following option types:

ATM — An at-the-money (ATM) option has a 50 delta. There is no need to select the delta, so the application disables the Delta drop-down menu when you select ATM.
Risk Reversal — A combination of a long out-of-the-money call and a short out-of-the-money put at the same delta. The volatility of the risk reversal is the absolute value of the volatility of the call minus the volatility of the put.

Vreversal = |Vcall – Vput|

Butterfly — The spread between a strangle and a straddle. The volatility of the butterfly is the average of the volatility of the call and put options minus the volatility of the at-the-money option.

Vbutterfly = 0.5 * (Vcall + Vput) – Vatm

Strangle — A long out-of-the-money call and a long out-of-the-money put at the same delta. The volatility of the strangle is the average of the volatility of the call and put options.

Vstrangle = 0.5 * (Vcall + Vput)

Vanilla.

Expiry

Use this feature to create multiple instruments with different maturities. The application creates an instrument for each maturity that you select. For example, create ATM options with a maturity of 1D, 1W, 2W, and so on.

Click ... to open the selector window.

Delta

Not applicable for ATM options.

Enter the delta for the instruments. You can enter a list of comma-separated deltas.

Exp Holidays

Currently not used. The default value is to use the calendar(s) specified in the currency defaults when calculating the expiration dates of the underlying instruments. Do not specify any holiday calendar(s) on the underlying instruments.

Source

Optional.

Select the source for the volatilities as applicable. If specified, it is added to the quote name.

Sources can be added to the domain "FXOptVolSurfUndSource".

 

3. Defining an FX Volatility Surface

FX option volatility surface conventions tend to vary by currency pair and by market. This document explains how to define and create a range of vol surfaces that correspond to these varied conventions and lists the configuration options available for the different FX vol surface generators in Calypso. It also includes market standard configurations for major G10 and emerging currency pairs.

 

3.1 Definition Panel

Click New to define a new volatility surface. You can also click Load to load an existing surface.

In the Definition panel, define the currency pair and conventions, and set parameters. See the Recommended Settings and the parameter tables below for more information on the parameters.

 Ⓘ   [NOTE: The FX Volatility Surface uses the pair position reference (Configuration > Definitions > Currency Definitions). For example, if USD/JPY is the pair position reference, the surface is always saved as USD/JPY. It saves a surface defined as JPY/USD as USD/JPY]

 Ⓘ   The Holidays field is not used at this time.

 

» For all generators, the Derived checkbox must be selected.

The checkbox should be cleared only for special-case configuration requirements where the volatility surface points are entered manually. This is not the typical method for creating surfaces.

» The generators available for use are FXOption, FXOptionSABR, GaussianCopula, ReplicationHedge, and Spread_Default. Click ... to add a generator name if it does not appear in the drop-down list.
FXOption: Derives the vol surface by interpolating from vanillas and strategies (ATMs, risk reversals, and butterflies). This is the most commonly used generator.
FXOptionSABR: Uses the SABR stochastic methodology as an interpolator in FX options and integrates the calibration of the SABR parameters with the FX option generator. This is not as common a choice as FXOption but still in regular use. Use at the discretion of the trader.
GaussianCopula and ReplicationHedge: Both derive a cross-vol surface - or "child" surface - from two parent surfaces and a correlation point or correlation spine. Calypso recommends ReplicationHedge.
Spread_Default: Derives a child vol surface from a set of spreads to the underlyings of a parent vol surface.

 Ⓘ   [NOTE: For GaussianCopula, ReplicationHedge and Spread_Default, only one level of dependency is supported for the child surface. The parent surface cannot derive from another parent surface]

» When either of the correlation generators (GaussianCopula or Replication Hedge) is selected, two additional drop-down lists are enabled for choosing the parent surfaces to be correlated. A third drop-down list is also made available for choosing the correlation matrix.

 Please refer to Calypso Correlation and Covariance Matrices documentation for details.

» When the additive linked/multiplicative linked generator Spread_Default is selected, additional drop-down lists are enabled for selecting Spread Type, Parent Ccy Pair, and Parent Surface.

» You can select the interpolator Interpolator3DSpline1D or Interpolator3DSplineL1DMulti (same as Interpolator3DSpline1D, but with linear extrapolation).

When using Interpolator3DSplineL1DMulti, it is recommended to not use the additional ad-hoc points. Set the parameters "Up Extrap 1.0 Delta", "Down Extrap 1.0 Delta" to "N/A" or empty.

 

Recommended Settings

The three most important parameters in this section are Spot Delta Last Tenor, ATM Zero Straddle Last Tenor, and Quotes Are Delta With Premium.

Spot Delta Last Tenor is the point at which the non-ATM points or strategies cut over from spot to forward delta. Typically this is 1Y for G10 pairs and 0D (zero days) for emerging market pairs;
ATM Zero Straddle Last Tenor is the point at which the ATM vol cuts over from ATM-delta-neutral to ATM-forward. Typically this is 10Y for G10 pairs and 0D (zero days) for emerging market pairs;
Quotes Are Delta With Premium controls whether the particular currency pair includes premium in delta by default. This is “true” for pairs where the premium is conventionally paid in the first currency (e.g., USDKRW, where premium is paid in USD; or AUDJPY, where premium is paid in AUD); and “false” for pairs where the premium is conventionally paid in the second currency (e.g., INRJPY, where premium is paid in yen; or EURUSD, where premium is paid in USD).

 

The following is a table of settings for common and less common example currency pairs. You should always confirm these settings with your trading desk or your market sources before implementing, because these inputs will significantly affect your vol surface levels.

CCY Pair Spot Delta Last Tenor ATM Zero Last Tenor Delta w/Premium
EURUSD, GBPUSD 1Y 10Y False
USDJPY, EURJPY 1Y 10Y True
USDNOK, USDSEK, EURNOK 1Y 10Y True
USDKRW, EURKRW, EURBRL, USDBRL 0D 0D True
INRJPY 0D 0D False

 

Other generator-level settings:

Strangle/Fly quotes: this will almost always be “1vol (Broker)”.

Only set this to “2vol (CP Avg)” if you are sure your market data supplier uses the 2-vol convention for butterflies/strangles.

This only applies if the surface is built using reversals and butterflies as underlyings, but this should almost always be the case.

Volatility Day Count: almost always ACT/365

BUS/252 is sometimes used for onshore BRL.

DateCut of Expiries

Set this to the appropriate cut time for the currency pair being configured.

For currencies such as JPY and AUD where there is an active market in both Tokyo and NYC cuts, your traders should make the decision whether to maintain the default surface as Tokyo or NY cut. Both cuts can be priced from a single surface.

The DateCut of the surface must match the cut time on the imported quotes – e.g., if your market data feed gives you NY cut vols, your vol surface must be set to NY cut as well.

Interpolate Outright Variance, Interpolate on Trading Time: set to True for more accurate intraday pricing;
Up Extrap 1.0 Delta, Down Extrap 1.0 Delta: these control the delta axis extrapolation beyond the 1-delta point if the vol surface is curving up or down respectively. Calypso recommends setting this to 2.0 for Up Extrap (so the smile steepens beyond the 1-delta point) and 0.0 for Down Extrap (so the surface flattens out if it’s heading downward, which avoids the possibility of the vol reaching zero at very-low-delta points);
Granularity: always set to Continuous;
Weighting: always set to True;
Roll Method: generally, Calypso recommends Forward Volatility; it’s a good middle ground between performance (because Regenerate is performance-intensive) and market compliance (Calendar Vol Constant doesn’t adequately reflect how the market behaves when the date rolls, especially in the short end).

 

Basic Parameters

Parameter Description

Spot Delta Last Tenor

Enter the last tenor for which the generator interprets the delta in the quotes as spot delta. The generator interprets all expiry dates on or before this tenor as spot delta; it interprets expiry dates after this tenor as forward delta.

In the Quotes Matrix, tenors with a forward delta are shaded in gray. For example, “2Y” has a forward delta.

Enter a value of "0d" to interpret all of the expiry dates as forward delta, or enter a large tenor to interpret all of the expiry dates as spot delta.

Interpolate Outright Variance

Set whether the generator interpolates on the outright variance (the square of the volatility times the calendar time) rather than on the volatility.

true — The generator uses outright variance - Recommended value.
false — The generator uses volatility.

Interpolate on Trading Time

Set whether or not the generator interpolates on trading time:

true — The generator interpolates based on weighted trading time.
false — The generator does not interpolate on trading time.

DateCut of Expiries

Identify the DateCut (partial day) in which the expiry times of the underlying options fall. Used for determining the weighted trading times between the generation datetime and the expiry datetimes. These are the date cuts that you set up in the FX Option Exp TimeZone application. For example, select NYC or TOK.

Volatility Day Count

Select the daycount used to convert the points for interpolating volatility.

Quotes are Delta with Premium

Set whether or not the delta in the quotes includes the premium:

true — Delta includes the theoretical premium.
false — Delta does not include the premium. The generator uses delta as valued by the Black-Scholes model.

Up Extrap 1.0 Delta

When the smile is turned upward at one or another end, this extrapolation parameter multiplies the slope of the first two points on the surface to find the volatility of the 1.0 call delta, and/or multiplies the slope of the last two points to find the volatility of the 99.0 call delta. Usually this is a positive number to continue the smile direction upward.

Down Extrap 1.0 Delta

When the smile is turned downward at one or another end, this extrapolation parameter multiplies the slope of the first two points on the surface to find the volatility of the 1.0 call delta, and multiplies the slope of the last two points to find the volatility of the 99.0 call delta. Usually this parameter is zero or small to prevent volatilities from going negative.

Granularity

Specifies when the trading day calculation begins (the start date and time).

Continuous — Uses the current time as the start date and time. When you roll the surface, the trading days are calculated from the current time in the local time zone to the expiration date and time based on the selected cut. The system adjusts the trading days if the weighting is turned on.
Daily — Uses the previous FX Date cut off time as the start time for the trading day calculation. This is 5PM New York time by default.

 Ⓘ   [NOTE: To start the trading day calculation at a specific time, use the GENERATE_FXVOLSURF scheduled task to generate the surface]

Weighting

Specifies whether the system uses the defined weekend, holiday, and event weights to calculate the trading days.

true — Turns the weighting on; uses the weights defined for the currency pair in the trading days calculation.
false — Turns the weighting off; ignores the defined weights. Calculates the actual trading days using the granularity and cut.

FXDate

 Ⓘ   [NOTE: You cannot edit this parameter directly]

The FX Date is the date from which the spot date and tenors are calculated for the option expiration dates. The FX Date defaults to the current calendar date. The parameter automatically displays this date.

Change the FX Date on the fly in the Quotes panel. You can toggle to the previous FX Date or the next FX Date.

Roll Calendar Vol

Select one of the following values:

true – In the Quotes panel, roll the volatility surface to recalculate the calendar volatility as of the current time.
false – In the Quotes panel, calculate the trading day volatility.

 

Additional FXOption Parameters

Parameter Description

Strangle/Fly Quotes

Select "1vol (Broker)".

The Strangle (or Butterfly) quote is added to the ATM quote to produce a flat volatility from which strike prices for the options are derived given the stated delta of the quote. The premium of the strangle is found for these strikes at this flat volatility. The generator searches for call and put volatilities at the stated deltas that produce a volatility smile that gives the same premium for the strangle as that found from this flat volatility method. The difference between call and put volatilities at each delta must satisfy the Risk Reversal quote (Call minus Put). The resulting output points shows the volatility at the stated delta quotes and represent the options that comprise the Risk Reversal. The strike prices of the Broker strangle call and puts will usually not correspond to these delta points, but by construction will lie at the points on the interpolated volatility curve that reproduce the Broker strangle premium.

It is important to note that the resulting smile is critically dependent on the choice of interpolator and on extrapolation parameters ("Up Extrap 1.0 Delta", "Down Extrap 1.0 Delta"). There is therefore no unique answer for the Put/Call smile given Broker strangle quotes. All that can be guaranteed is self-consistency, in that pricing strategies using the surface generated with the chosen interpolation and extrapolation will produce values consistent with market pricing.

ATM Zero Straddle Last Tenor

While short-dated ATM options are typically quoted as the volatility of a zero-delta straddle, long-dated ATM options are often quoted as the volatility of the strike equal to the FX forward rate. The parameter "ATM Zero Straddle Last Tenor," denotes the last time at which the ATM quote is interpreted as the zero-delta straddle, after which it is interpreted as the FX forward.

Roll Method

Select the roll method:

Calendar Volatility Constant - This is "sticky delta" rolling, where the delta versus volatility surface stays unchanged except for a change in the expiry dates.
Regenerate - When the surface is rolled to another date it is regenerated from the quotes that were stored in the surface.
Forward Volatility - For each delta and tenor, forward volatilities are calculated between the roll-to date and the roll-to date plus the tenor. The volatilities on the rolled surface are set equal to these volatilities.

Arbitrage pre-check

Allows turning on/off the arbitrage checks on the input volatility quotes. Available options are: "True" means generation fails with error message, "Soft" succeeds with warning log, "False" or blank means check does not occur.

Arbitrage checks detect butterfly spread and calendar spread arbitrages when an FX vol surface is generated or gets rolled to a future date.

Arbitrage post-check

Allows turning on/off the arbitrage checks on a 50x50 grid of output volatilities interpolated from the vol surface. Available options are same as in Arbitrage pre-check.

Arbitrage post-check delta bound (%)

Specify the delta range where the post-check is performed. When left blank, the post-check is performed over the range of 1% put/call delta.

 

Additional FXOptionSABR parameters

Parameter Description

Beta

Exponent for the forward rate. It controls the distribution of volatility values.

Tolerance

The input for Tolerance must be an absolute value.

 

Additional parameter for GaussianCopula and ReplicationHedge

Parameter Description

Interpolator3D

Select the methodology used for volatility interpolation in the moneyness dimension. There are currently three options:

Linear: interpolation is piecewise linear, with flat extrapolation beyond the 1 Delta points.
LinearExtended: interpolation is piecewise linear, with linear extrapolation beyond the 1 Delta points.
Spline1D: interpolation is performed with a natural cubic spline, with flat extrapolation beyond the 1 Delta points.

 

3.2 Underlyings Panel

 Ⓘ   [NOTE:The Underlyings panel does not need to be configured when the Spread_Default generator or either of the two correlation generators (GaussianCopula or ReplicationHedge) is selected.]

In the vast majority of cases, your FX vol surface underlyings will be as follows:

ATMs
25- and 10-delta risk reversals
25- and 10-delta butterflies

Surfaces built from calls and puts instead of risk reversals and butterflies are uncommon and generally only used when the market data provider delivers data as call/put points instead of risk reversals and butterflies. ATM-only surfaces should be avoided, because they don’t properly reflect vol dynamics – even in illiquid markets where the quotes might not be regularly observable, it’s important to maintain a full vol surface.

Tenor selection depends on the currency pair, and should ultimately be determined by the traders based on their judgment of which tenors are liquid enough to make reliable vol surface underlyings. But, at a bare minimum, you should have O/N, 1W, 1M, 2M, 3M, 6M, and 1Y points in every currency pair.

 

In the Underlyings panel, select the instruments for inclusion in the surface.

To create new instruments, click New Instrument to open the Volatility Surface Underlying Window.

» You can select FX Option Strategies and the type of strategy ("Butterfly", "Risk Reversal", "Strangle", or ATM), or vanilla FX Options and the type of vanilla ("Puts and Calls" or "ATM"). The system loads the corresponding instruments, if any.
You can select ATM only to build an ATM Volatility Surface.
Note that if you select "Risk Reversal" then you have to select the corresponding "Butterfly" or "Strangle", and vice versa.
» Select an instrument(s) and click >> to add it to the list of Underlying Instruments.

 

3.3 Quotes Panel

Once underlyings are defined on the Underlyings tab, the Quotes tab provides a matrix of quotes representing the instruments used for the underlyings.

 Ⓘ   [NOTE: Since correlated surfaces are defined by two parent surfaces and not directly by underlying quotes, the Quotes panel is not used for either the GassianCopula or ReplicationHedge generators.]

» Enter additional quotes or updates and click Generate.

You can view the points in the Points panel, and a graphical view in the Graph panel.

» For additive or multiplicative linked surfaces, the spread is adjusted rather than the quote. Spreads appear in parentheses preceding the total.

Double-click a field to make adjustments to the spread. Add a value and press Enter to set the value.

» Click Generate to recalculate all variables.

When calculating the trading volatility, the calendar days and calendar ATM volatility are held constant. The system updates the trading days, and then calculates the trading day volatility using the following equation:

You can change the date cut to calculate the values for a different cut. The system updates the trading days and recalculates the calendar ATM volatilities. The trading day volatility is held constant.

 

You can click Daily Vol Report to display calculation details.

 

3.4 Save the FX Volatility Surface

Click Save to save the FX volatility surface. You will be prompted to enter a name that will identify the surface throughout the system.

 

4. Pricer Configuration

From the Calypso Navigator, navigate to Market Data > Pricing Environment > Pricer Configuration.

Click Load, and select a pricer configuration.

Select the FX panel.

» Select the currency pair, product type, and subtype.
» Select an FX volatility surface, and an FX curve.
» Click Add to add the definition to the table.
» Click Save to save the changes to the pricer configuration.

 

5. Automating Intraday Rolling

To automate the FX volatility surface rolling, you can set up and run the GENERATE_FXVOLSURF scheduled task. Set the rolling to occur at a specific time, such as on the hour. The scheduled task updates the trading days, recalculates the calendar ATM volatilities, and regenerates and saves the surface.

Add GENERATE_FXVOLSURF to the "scheduledTask" domain in the Domain Values Window.

From the Calypso Navigator, navigate to Configuration > Scheduled Tasks (menu action scheduling.ScheduledTaskListWindow).

In the scheduled task:

» Select the Pricing Environment.

The scheduled task regenerates the FX volatility surfaces defined in the pricer configuration associated with the pricing environment.

» Set the Execution Time and Valuation Time.

The Valuation Time that you set in the scheduled task is the start time for the trading day calculations.

The scheduled task creates an FX volatility surface instance with the valuation time as the time stamp.