Class StochasticVolatilityStateEvolver

java.lang.Object
org.drip.dynamics.sabr.StochasticVolatilityStateEvolver
All Implemented Interfaces:
PointStateEvolver

public class StochasticVolatilityStateEvolver
extends java.lang.Object
implements PointStateEvolver
StochasticVolatilityStateEvolver provides the SABR Stochastic Volatility Evolution Dynamics.

Author:
Lakshmi Krishnamurthy
  • Constructor Details

    • StochasticVolatilityStateEvolver

      public StochasticVolatilityStateEvolver​(ForwardLabel lslForward, double dblBeta, double dblRho, double dblVolatilityOfVolatility, UnivariateSequenceGenerator usgForwardRate, UnivariateSequenceGenerator usgForwardRateVolatilityIdiosyncratic) throws java.lang.Exception
      StochasticVolatilityStateEvolver Constructor
      Parameters:
      lslForward - The Forward Rate Latent State Label
      dblBeta - SABR Beta
      dblRho - SABR Rho
      dblVolatilityOfVolatility - SABR Volatility Of Volatility
      usgForwardRate - The Forward Rate Univariate Sequence Generator
      usgForwardRateVolatilityIdiosyncratic - The Idiosyncratic Component Forward Rate Volatility Univariate Sequence Generator
      Throws:
      java.lang.Exception - Thrown if the Inputs are Invalid
  • Method Details

    • Gaussian

      public static final StochasticVolatilityStateEvolver Gaussian​(ForwardLabel lslForward, double dblRho, double dblVolatilityOfVolatility, UnivariateSequenceGenerator usgForwardRate, UnivariateSequenceGenerator usgForwardRateVolatilityIdiosyncratic)
      Create a Gaussian SABR Instance
      Parameters:
      lslForward - The Forward Rate Latent State Label
      dblRho - SABR Rho
      dblVolatilityOfVolatility - SABR Volatility Of Volatility
      usgForwardRate - The Forward Rate Univariate Sequence Generator
      usgForwardRateVolatilityIdiosyncratic - The Idiosyncratic Component Forward Rate Volatility Univariate Sequence Generator
      Returns:
      The Gaussian SABR Instance
    • Lognormal

      public static final StochasticVolatilityStateEvolver Lognormal​(ForwardLabel lslForward, double dblRho, double dblVolatilityOfVolatility, UnivariateSequenceGenerator usgForwardRate, UnivariateSequenceGenerator usgForwardRateVolatilityIdiosyncratic)
      Create a Log-normal SABR Instance
      Parameters:
      lslForward - The Forward Rate Latent State Label
      dblRho - SABR Rho
      dblVolatilityOfVolatility - SABR Volatility Of Volatility
      usgForwardRate - The Forward Rate Univariate Sequence Generator
      usgForwardRateVolatilityIdiosyncratic - The Idiosyncratic Component Forward Rate Volatility Univariate Sequence Generator
      Returns:
      The Log-normal SABR Instance
    • CEV

      public static final StochasticVolatilityStateEvolver CEV​(ForwardLabel lslForward, double dblBeta, double dblRho, UnivariateSequenceGenerator usgForwardRate, UnivariateSequenceGenerator usgForwardRateVolatilityIdiosyncratic)
      Create a Constant Elasticity of Variance SABR Instance
      Parameters:
      lslForward - The Forward Rate Latent State Label
      dblBeta - SABR Beta
      dblRho - SABR Rho
      usgForwardRate - The Forward Rate Univariate Sequence Generator
      usgForwardRateVolatilityIdiosyncratic - The Idiosyncratic Component Forward Rate Volatility Univariate Sequence Generator
      Returns:
      The Constant Elasticity of Variance SABR Instance
    • forwardLabel

      public ForwardLabel forwardLabel()
      Retrieve the Forward Label
      Returns:
      The Forward Label
    • volatilityOfVolatility

      public double volatilityOfVolatility()
      Retrieve SABR Volatility of Volatility
      Returns:
      SABR Volatility of Volatility
    • beta

      public double beta()
      Retrieve SABR Beta
      Returns:
      SABR Beta
    • rho

      public double rho()
      Retrieve SABR Rho
      Returns:
      SABR Rho
    • usgForwardRate

      public UnivariateSequenceGenerator usgForwardRate()
      The Forward Rate Univariate Random Variable Generator Sequence
      Returns:
      The Forward Rate Univariate Random Variable Generator Sequence
    • usgForwardRateVolatilityIdiosyncratic

      public UnivariateSequenceGenerator usgForwardRateVolatilityIdiosyncratic()
      The Idiosyncratic Component of Forward Rate Volatility Univariate Random Variable Generator Sequence
      Returns:
      The Idiosyncratic Component of Forward Rate Volatility Univariate Random Variable Generator Sequence
    • evolve

      public LSQMPointUpdate evolve​(int iSpotDate, int iViewDate, int iSpotTimeIncrement, LSQMPointUpdate lsqmPrev)
      Description copied from interface: PointStateEvolver
      Evolve the Latent State and return the LSQM Point Update
      Specified by:
      evolve in interface PointStateEvolver
      Parameters:
      iSpotDate - The Spot Date
      iViewDate - The View Date
      iSpotTimeIncrement - The Spot Time Increment
      lsqmPrev - The Previous LSQM Point Update
      Returns:
      The LSQM Point Update
    • computeATMBlackVolatility

      public ImpliedBlackVolatility computeATMBlackVolatility​(double dblATMForwardRate, double dblTTE, double dblSigma0)
      Compute the Implied ATM Black Volatility for the ATM Forward Rate and the TTE
      Parameters:
      dblATMForwardRate - ATM Forward Rate
      dblTTE - Time to Expiry
      dblSigma0 - Initial Sigma
      Returns:
      The Implied Black Volatility Instance
    • computeBlackVolatility

      public ImpliedBlackVolatility computeBlackVolatility​(double dblStrike, double dblATMForwardRate, double dblTTE, double dblSigma0)
      Compute the Implied Black Volatility for the Specified Strike, the ATM Forward Rate, and the TTE
      Parameters:
      dblStrike - Strike
      dblATMForwardRate - ATM Forward Rate
      dblTTE - Time to Expiry
      dblSigma0 - Initial Sigma
      Returns:
      The Implied Black Volatility Instance