Package org.drip.dynamics.sabr
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.
- Module = Product Core Module
- Library = Fixed Income Analytics
- Project = HJM, Hull White, LMM, and SABR Dynamic Evolution Models
- Package = SABR Based Latent State Evolution
- Author:
- Lakshmi Krishnamurthy
-
Constructor Summary
Constructors Constructor Description StochasticVolatilityStateEvolver(ForwardLabel lslForward, double dblBeta, double dblRho, double dblVolatilityOfVolatility, UnivariateSequenceGenerator usgForwardRate, UnivariateSequenceGenerator usgForwardRateVolatilityIdiosyncratic)
StochasticVolatilityStateEvolver Constructor -
Method Summary
Modifier and Type Method Description double
beta()
Retrieve SABR Betastatic StochasticVolatilityStateEvolver
CEV(ForwardLabel lslForward, double dblBeta, double dblRho, UnivariateSequenceGenerator usgForwardRate, UnivariateSequenceGenerator usgForwardRateVolatilityIdiosyncratic)
Create a Constant Elasticity of Variance SABR InstanceImpliedBlackVolatility
computeATMBlackVolatility(double dblATMForwardRate, double dblTTE, double dblSigma0)
Compute the Implied ATM Black Volatility for the ATM Forward Rate and the TTEImpliedBlackVolatility
computeBlackVolatility(double dblStrike, double dblATMForwardRate, double dblTTE, double dblSigma0)
Compute the Implied Black Volatility for the Specified Strike, the ATM Forward Rate, and the TTELSQMPointUpdate
evolve(int iSpotDate, int iViewDate, int iSpotTimeIncrement, LSQMPointUpdate lsqmPrev)
Evolve the Latent State and return the LSQM Point UpdateForwardLabel
forwardLabel()
Retrieve the Forward Labelstatic StochasticVolatilityStateEvolver
Gaussian(ForwardLabel lslForward, double dblRho, double dblVolatilityOfVolatility, UnivariateSequenceGenerator usgForwardRate, UnivariateSequenceGenerator usgForwardRateVolatilityIdiosyncratic)
Create a Gaussian SABR Instancestatic StochasticVolatilityStateEvolver
Lognormal(ForwardLabel lslForward, double dblRho, double dblVolatilityOfVolatility, UnivariateSequenceGenerator usgForwardRate, UnivariateSequenceGenerator usgForwardRateVolatilityIdiosyncratic)
Create a Log-normal SABR Instancedouble
rho()
Retrieve SABR RhoUnivariateSequenceGenerator
usgForwardRate()
The Forward Rate Univariate Random Variable Generator SequenceUnivariateSequenceGenerator
usgForwardRateVolatilityIdiosyncratic()
The Idiosyncratic Component of Forward Rate Volatility Univariate Random Variable Generator Sequencedouble
volatilityOfVolatility()
Retrieve SABR Volatility of VolatilityMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
StochasticVolatilityStateEvolver
public StochasticVolatilityStateEvolver(ForwardLabel lslForward, double dblBeta, double dblRho, double dblVolatilityOfVolatility, UnivariateSequenceGenerator usgForwardRate, UnivariateSequenceGenerator usgForwardRateVolatilityIdiosyncratic) throws java.lang.ExceptionStochasticVolatilityStateEvolver Constructor- Parameters:
lslForward
- The Forward Rate Latent State LabeldblBeta
- SABR BetadblRho
- SABR RhodblVolatilityOfVolatility
- SABR Volatility Of VolatilityusgForwardRate
- The Forward Rate Univariate Sequence GeneratorusgForwardRateVolatilityIdiosyncratic
- 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 LabeldblRho
- SABR RhodblVolatilityOfVolatility
- SABR Volatility Of VolatilityusgForwardRate
- The Forward Rate Univariate Sequence GeneratorusgForwardRateVolatilityIdiosyncratic
- 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 LabeldblRho
- SABR RhodblVolatilityOfVolatility
- SABR Volatility Of VolatilityusgForwardRate
- The Forward Rate Univariate Sequence GeneratorusgForwardRateVolatilityIdiosyncratic
- 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 LabeldblBeta
- SABR BetadblRho
- SABR RhousgForwardRate
- The Forward Rate Univariate Sequence GeneratorusgForwardRateVolatilityIdiosyncratic
- The Idiosyncratic Component Forward Rate Volatility Univariate Sequence Generator- Returns:
- The Constant Elasticity of Variance SABR Instance
-
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
The Forward Rate Univariate Random Variable Generator Sequence- Returns:
- The Forward Rate Univariate Random Variable Generator Sequence
-
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 interfacePointStateEvolver
- Parameters:
iSpotDate
- The Spot DateiViewDate
- The View DateiSpotTimeIncrement
- The Spot Time IncrementlsqmPrev
- 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 RatedblTTE
- Time to ExpirydblSigma0
- 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
- StrikedblATMForwardRate
- ATM Forward RatedblTTE
- Time to ExpirydblSigma0
- Initial Sigma- Returns:
- The Implied Black Volatility Instance
-