NAME
Quant::Framework::VolSurface::Moneyness
DESCRIPTION
Base class for strike-based volatility surfaces by moneyness.
for_date
The date for which we wish data
save
Saves current surface using chronicle writer
type
Return the surface type
min_vol_spread
minimum volatility spread that we can accept for this volatility surface.
moneynesses
Returns the moneyness points on the surface
corresponding_deltas
Stores the corresponding moneyness smile in terms on delta. This is aimed to reduced computation time.
spot_reference
Get the spot reference used to calculate the surface. We should always use reference spot of the surface for any moneyness-related vol calculation
get_volatility
USAGE:
my $vol = $s->get_volatility({moneyness => 96, days => 7});
my $vol = $s->get_volatility({strike => $bet->barrier, tenor => '1M'});
my $vol = $s->get_volatility({moneyness => 90, expiry_date => Date::Utility->new});
interpolate
This is how you could interpolate across smile. This uses the default interpolation method of the surface.
$surface->interpolate({smile => $smile, sought_point => $sought_point});
set_corresponding_deltas
Since we allow getting volatility for a particular delta point on a moneyness surface, here is how you could cache it.
$moneyness->set_corresponding_deltas(7, {25 => 0.1, 50 => 0.2, 75 => 0.3});
clone
USAGE:
my $clone = $s->clone({
surface => $my_new_surface,
cutoff => $my_new_cutoff,
});
Returns a new Quant::Framework::VolSurface instance. You can pass overrides to override an attribute value as it is on the original surface.
cutoff
default to closing on the underlying.