BatesJumpComponent.java
package net.finmath.finitedifference.assetderivativevaluation.models;
/**
* Jump component for the Bates model.
*
* <p>
* The jump part in the Bates model is a finite-activity compound Poisson jump
* component acting on one selected state variable through multiplicative jumps
* of the form
* </p>
*
* <pre>
* x -> x * exp(y),
* </pre>
*
* <p>
* where the log-jump size {@code y} is normally distributed with mean
* {@code jumpMean} and standard deviation {@code jumpStdDev}. Hence the
* associated Levy density is
* </p>
*
* <pre>
* nu(y) = intensity * gaussianDensity(y; jumpMean, jumpStdDev^2).
* </pre>
*
* <p>
* Numerically, this is the same jump specification as in the Merton
* jump-diffusion model. The dedicated class name is introduced in order to keep
* the code aligned with the Bates model semantics and naming.
* </p>
*
* @author Alessandro Gnoatto
*/
public class BatesJumpComponent extends MertonJumpComponent {
private static final long serialVersionUID = 1L;
/**
* Creates a Bates jump component acting on the first state variable.
*
* @param lowerIntegrationBound Lower integration bound for the log-jump
* variable.
* @param upperIntegrationBound Upper integration bound for the log-jump
* variable.
* @param intensity Jump intensity.
* @param jumpMean Mean of the log-jump size.
* @param jumpStdDev Standard deviation of the log-jump size.
*/
public BatesJumpComponent(
final double lowerIntegrationBound,
final double upperIntegrationBound,
final double intensity,
final double jumpMean,
final double jumpStdDev) {
super(
lowerIntegrationBound,
upperIntegrationBound,
intensity,
jumpMean,
jumpStdDev
);
}
/**
* Creates a Bates jump component.
*
* @param stateVariableIndex Index of the affected state variable.
* @param lowerIntegrationBound Lower integration bound for the log-jump
* variable.
* @param upperIntegrationBound Upper integration bound for the log-jump
* variable.
* @param intensity Jump intensity.
* @param jumpMean Mean of the log-jump size.
* @param jumpStdDev Standard deviation of the log-jump size.
*/
public BatesJumpComponent(
final int stateVariableIndex,
final double lowerIntegrationBound,
final double upperIntegrationBound,
final double intensity,
final double jumpMean,
final double jumpStdDev) {
super(
stateVariableIndex,
lowerIntegrationBound,
upperIntegrationBound,
intensity,
jumpMean,
jumpStdDev
);
}
}