NAME
Quant::Framework::VolSurface
DESCRIPTION
Base class for all volatility surfaces.
for_date
The date for which we want to have the volatility surface data
type
Type of the surface, delta, moneyness or flat.
underlying_config
Contains underlying specific information
effective_date
Surfaces roll over at 5pm NY time, so the vols of any surfaces recorded after 5pm NY but before GMT midnight are effectively for the next GMT day. This attribute holds this effective date.
surface
Volatility surface in a hash reference.
ATTRIBUTES
symbol
The symbol of the underlying that this surface is for (e.g. frxUSDJPY)
recorded_date
The date (and time) that the surface was recorded, as a Date::Utility.
smile_points
The points across a smile.
It can be delta points, moneyness points or any other points that we might have in the future.
spread_points
This will give an array-reference containing volatility spreads for first tenor which has a volatility spread (or ATM if none).
term_by_day
Get all the terms in a surface in ascending order.
original_term
The terms we were originally supplied for this surface.
original_term_for_smile
The original term structure we have for smiles on a surface
original_term_for_spread
The original term structure we have for spreads on a surface
get_spread
Spread is ask-bid difference which can be stored for different tenor and atm/max.
USAGE:
my $spread = $volsurface->get_spread({sought_point=> 'atm', day=> 7});
will return the atm spread for the day.
my $spread = $volsurface->get_spread({sought_point=> 'max', day=> 7});
will return the max spread for the day.
get_smile_spread
Returns the ask/bid spread for smile of this volatility surface
get_day_for_tenor
USAGE:
my $day = $volsurface->get_day_for_tenor('1W');
Get the corresponding day for a given tenor, if one exists.
set_smile
Set a smile into the volatility surface Input: day and smile (key: smile_point ; value: volatility)
Usage:
$vol_surface->set_smile($day, \%smile);
get_rr_bf_for_smile
Return the rr and bf values for a given smile For more info see: https://en.wikipedia.org/wiki/Risk_reversal and https://en.wikipedia.org/wiki/Butterfly_(options)
is_valid
Does this volatility surface pass our validation.
save Saves current surface using given chronicle writer.
get_surface_smile
Returns the smile on the surface. Returns an empty hash reference if not present.
get_surface_volatility
Returns the volatility point based on the raw volatility surface data. Returns undef if requested smile is not present. Returns the interpolated/raw volatility point across smile if requested smile is present.
clone
USAGE:
my $clone = $s->clone({
surface_data => $surface_data,
});
Returns a new Quant::Framework::VolSurface instance. You can pass overrides to override an attribute value as it is on the original surface.