Interface IborCapletFloorletVolatilities

    • Method Detail

      • getIndex

        IborIndex getIndex()
        Gets the Ibor index for which the data is valid.
        Returns:
        the Ibor index
      • getValuationDate

        default java.time.LocalDate getValuationDate()
        Gets the valuation date.

        The volatilities are calibrated for this date.

        Specified by:
        getValuationDate in interface MarketDataView
        Returns:
        the valuation date
      • getValuationDateTime

        java.time.ZonedDateTime getValuationDateTime()
        Gets the valuation date-time.

        The volatilities are calibrated for this date-time.

        Returns:
        the valuation date-time
      • withParameter

        IborCapletFloorletVolatilities withParameter​(int parameterIndex,
                                                     double newValue)
        Description copied from interface: ParameterizedData
        Returns a copy of the data with the value at the specified index altered.

        This instance is immutable and unaffected by this method call.

        Specified by:
        withParameter in interface ParameterizedData
        Parameters:
        parameterIndex - the zero-based index of the parameter to get
        newValue - the new value for the specified parameter
        Returns:
        a parameterized data instance based on this with the specified parameter altered
      • withPerturbation

        IborCapletFloorletVolatilities withPerturbation​(ParameterPerturbation perturbation)
        Description copied from interface: ParameterizedData
        Returns a perturbed copy of the data.

        The perturbation instance will be invoked once for each parameter in this instance, returning the perturbed value for that parameter. The result of this method is a new instance that is based on those perturbed values.

        This instance is immutable and unaffected by this method call.

        Specified by:
        withPerturbation in interface ParameterizedData
        Parameters:
        perturbation - the perturbation to apply
        Returns:
        a parameterized data instance based on this with the specified perturbation applied
      • volatility

        default double volatility​(java.time.ZonedDateTime expiryDateTime,
                                  double strike,
                                  double forward)
        Calculates the volatility at the specified expiry.
        Parameters:
        expiryDateTime - the option expiry
        strike - the option strike rate
        forward - the forward rate
        Returns:
        the volatility
        Throws:
        java.lang.RuntimeException - if the value cannot be obtained
      • volatility

        double volatility​(double expiry,
                          double strike,
                          double forward)
        Calculates the volatility at the specified expiry.

        This relies on expiry supplied by relativeTime(ZonedDateTime).

        Parameters:
        expiry - the time to expiry as a year fraction
        strike - the option strike rate
        forward - the forward rate
        Returns:
        the volatility
        Throws:
        java.lang.RuntimeException - if the value cannot be obtained
      • price

        double price​(double expiry,
                     PutCall putCall,
                     double strike,
                     double forward,
                     double volatility)
        Calculates the price.

        This relies on expiry supplied by relativeTime(ZonedDateTime). This relies on volatility supplied by volatility(double, double, double).

        Parameters:
        expiry - the time to expiry as a year fraction
        putCall - whether the option is put or call
        strike - the option strike rate
        forward - the forward rate
        volatility - the volatility
        Returns:
        the price
        Throws:
        java.lang.RuntimeException - if the value cannot be obtained
      • priceDelta

        double priceDelta​(double expiry,
                          PutCall putCall,
                          double strike,
                          double forward,
                          double volatility)
        Calculates the price delta.

        This is the first order sensitivity of the option price to the forward.

        This relies on expiry supplied by relativeTime(ZonedDateTime). This relies on volatility supplied by volatility(double, double, double).

        Parameters:
        expiry - the time to expiry as a year fraction
        putCall - whether the option is put or call
        strike - the option strike rate
        forward - the forward rate
        volatility - the volatility
        Returns:
        the delta
        Throws:
        java.lang.RuntimeException - if the value cannot be obtained
      • priceGamma

        double priceGamma​(double expiry,
                          PutCall putCall,
                          double strike,
                          double forward,
                          double volatility)
        Calculates the price gamma.

        This is the second order sensitivity of the option price to the forward.

        This relies on expiry supplied by relativeTime(ZonedDateTime). This relies on volatility supplied by volatility(double, double, double).

        Parameters:
        expiry - the time to expiry as a year fraction
        putCall - whether the option is put or call
        strike - the option strike rate
        forward - the forward rate
        volatility - the volatility
        Returns:
        the gamma
        Throws:
        java.lang.RuntimeException - if the value cannot be obtained
      • priceTheta

        double priceTheta​(double expiry,
                          PutCall putCall,
                          double strike,
                          double forward,
                          double volatility)
        Calculates the price theta.

        This is the driftless sensitivity of the option price to a change in time to maturity.

        This relies on expiry supplied by relativeTime(ZonedDateTime). This relies on volatility supplied by volatility(double, double, double).

        Parameters:
        expiry - the time to expiry as a year fraction
        putCall - whether the option is put or call
        strike - the option strike rate
        forward - the forward rate
        volatility - the volatility
        Returns:
        the theta
        Throws:
        java.lang.RuntimeException - if the value cannot be obtained
      • priceVega

        double priceVega​(double expiry,
                         PutCall putCall,
                         double strike,
                         double forward,
                         double volatility)
        Calculates the price vega.

        This is the sensitivity of the option price to the implied volatility.

        This relies on expiry supplied by relativeTime(ZonedDateTime). This relies on volatility supplied by volatility(double, double, double).

        Parameters:
        expiry - the time to expiry as a year fraction
        putCall - whether the option is put or call
        strike - the option strike rate
        forward - the forward rate
        volatility - the volatility
        Returns:
        the vega
        Throws:
        java.lang.RuntimeException - if the value cannot be obtained
      • relativeTime

        double relativeTime​(java.time.ZonedDateTime dateTime)
        Converts a time and date to a relative year fraction.

        When the date is after the valuation date (and potentially time), the returned number is negative.

        Parameters:
        dateTime - the date-time to find the relative year fraction of
        Returns:
        the relative year fraction