Class CapletVolatilitiesParametric

All Implemented Interfaces:
Cloneable, ParameterObject, VolatilitySurface

public class CapletVolatilitiesParametric extends AbstractVolatilitySurfaceParametric
A parametric caplet volatility surface created form the four parameter model for the instantaneous forward rate lognormal volatility given by \( \sigma(t) = (a + b t) \exp(- c t) + d \). In other words, the Black volatility for maturity T is given by \[ \sqrt{ \frac{1}{T} \int_0^T ((a + b t) \exp(- c t) + d)^2 dt } \]. Note: quoting convention of the functional form is LOGNORMAL, but container may provide data in other conventions.
Version:
1.0
Author:
Christian Fries
  • Constructor Details

    • CapletVolatilitiesParametric

      public CapletVolatilitiesParametric(String name, LocalDate referenceDate, ForwardCurve forwardCurve, DiscountCurve discountCurve, double a, double b, double c, double d, double timeScaling, VolatilitySurface.QuotingConvention quotingConvention)
      Create a model with parameters a,b,c,d defining a lognormal volatility surface.
      Parameters:
      name - The name of this volatility surface.
      referenceDate - The reference date for this volatility surface, i.e., the date which defined t=0.
      forwardCurve - The underlying forward curve.
      discountCurve - The associated discount curve.
      a - The parameter a
      b - The parameter b
      c - The parameter c
      d - The parameter d
      timeScaling - A scaling factor applied to t when converting from global double time to the parametric function argument t.
      quotingConvention - The quoting convention reflected by the parametetric form (e.g. lognormal or normal).
    • CapletVolatilitiesParametric

      public CapletVolatilitiesParametric(String name, LocalDate referenceDate, ForwardCurve forwardCurve, DiscountCurve discountCurve, double a, double b, double c, double d, double timeScaling)
      Create a model with parameters a,b,c,d defining a lognormal volatility surface.
      Parameters:
      name - The name of this volatility surface.
      referenceDate - The reference date for this volatility surface, i.e., the date which defined t=0.
      forwardCurve - The underlying forward curve.
      discountCurve - The associated discount curve.
      a - The parameter a
      b - The parameter b
      c - The parameter c
      d - The parameter d
      timeScaling - A scaling factor applied to t when converting from global double time to the parametric function argument t.
    • CapletVolatilitiesParametric

      public CapletVolatilitiesParametric(String name, LocalDate referenceDate, double a, double b, double c, double d, double timeScaling)
      Create a model with parameters a,b,c,d.
      Parameters:
      name - The name of this volatility surface.
      referenceDate - The reference date for this volatility surface, i.e., the date which defined t=0.
      a - The parameter a
      b - The parameter b
      c - The parameter c
      d - The parameter d
      timeScaling - A scaling factor applied to t when converting from global double time to the parametric function argument t.
    • CapletVolatilitiesParametric

      public CapletVolatilitiesParametric(String name, LocalDate referenceDate, double a, double b, double c, double d)
      Create a model with parameters a,b,c,d.
      Parameters:
      name - The name of this volatility surface.
      referenceDate - The reference date for this volatility surface, i.e., the date which defined t=0.
      a - The parameter a
      b - The parameter b
      c - The parameter c
      d - The parameter d
  • Method Details

    • getValue

      public double getValue(double maturity, double strike, VolatilitySurface.QuotingConvention quotingConvention)
      Description copied from interface: VolatilitySurface
      Returns the price or implied volatility for the corresponding maturity and strike.
      Parameters:
      maturity - The option maturity for which the price or implied volatility is requested.
      strike - The option strike for which the price or implied volatility is requested.
      quotingConvention - The quoting convention to be used for the return value.
      Returns:
      The price or implied volatility depending on the quoting convention.
    • getValue

      public double getValue(AnalyticModel model, double maturity, double strike, VolatilitySurface.QuotingConvention quotingConvention)
      Description copied from interface: VolatilitySurface
      Returns the price or implied volatility for the corresponding maturity and strike.
      Parameters:
      model - An analytic model providing a context. Some curves do not need this (may be null).
      maturity - The option maturity for which the price or implied volatility is requested.
      strike - The option strike for which the price or implied volatility is requested.
      quotingConvention - The quoting convention to be used for the return value.
      Returns:
      The price or implied volatility depending on the quoting convention.
    • getParameter

      public double[] getParameter()
      Description copied from interface: ParameterObject
      Get the current parameter associated with the state of the objects.
      Returns:
      The parameter.
    • setParameter

      public void setParameter(double[] parameter)
      Description copied from interface: ParameterObject
      Set the current parameter and change the state of the objects.
      Parameters:
      parameter - The parameter associated with the new state of the objects.
    • getCloneForParameter

      public AbstractVolatilitySurfaceParametric getCloneForParameter(double[] value) throws CloneNotSupportedException
      Description copied from class: AbstractVolatilitySurfaceParametric
      Returns a clone of this volatility surface with modified parameters.
      Specified by:
      getCloneForParameter in interface ParameterObject
      Specified by:
      getCloneForParameter in class AbstractVolatilitySurfaceParametric
      Parameters:
      value - Parameter array.
      Returns:
      Clone with new parameters.
      Throws:
      CloneNotSupportedException - Thrown if this object cannot be cloned.