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.