java.lang.Object
net.finmath.functions.BachelierModel
This class implements some functions as static class methods related to the Bachelier model.
There are different variants of the Bachelier model, depending on if the volatility of the stock
or the volatility of the forward are assumed to be constant.
- Bachelier model
- the model for a forward F(t) following dF = sigma dW, valuing the option max(F(T)-K,0) * N(T)
- Homogeneous Bachelier model
- the model for a stock S(t) following dS = rS dt + sigma exp(rt) dW, valuing the option max(S(T)-K,0)
- Inhomogeneous Bachelier model
- the model for a stock S(t) following dS = rS dt + sigma dW, valuing the option max(S(T)-K,0)
BachelierModel
is the Monte-Carlo
implementation of a Homogeneous Bachelier model.
The class InhomogenousBachelierModel
is the Monte-Carlo
implementation of a Inhomogeneous Bachelier model.- Version:
- 1.11
- Author:
- Christian Fries
- See Also:
BachelierModel
,InhomogenousBachelierModel
- Date:
- 27.04.2012
-
Method Summary
Modifier and TypeMethodDescriptionstatic double
bachelierDigitalOptionDelta(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)
Calculates the option delta dV(0)/dS(0) of a digital call option, i.e., the payoff V(T)=indicator(S(T)-K > 0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \] The delta reported is \[ \frac{1}{\sigma \sqrt{T}} \phi( \frac{F-K}{\sigma \sqrt{T}} ) \], where \( \phi \) is the density of the standard normal distribution.static double
bachelierHomogeneousOptionDelta(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)
Calculates the option delta dV(0)/dS(0) of a call option, i.e., the payoff V(T)=max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(rt) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma / N(T) \mathrm{d}W(t) \text{.} \]static RandomVariable
bachelierHomogeneousOptionDelta(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)
Calculates the option delta dV(0)/dS(0) of a call option, i.e., the payoff V(T)=max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(rt) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma / N(T) \mathrm{d}W(t) \text{.} \]static double
bachelierHomogeneousOptionImpliedVolatility(double forward, double optionMaturity, double optionStrike, double payoffUnit, double optionValue)
Calculates the Bachelier option implied volatility of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(rt) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma / N(T) \mathrm{d}W(t) \text{.} \]static double
bachelierHomogeneousOptionValue(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)
Calculates the option value of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(rt) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma / N(T) \mathrm{d}W(t) \text{.} \]static RandomVariable
bachelierHomogeneousOptionValue(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)
Calculates the option value of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(rt) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma / N(T) \mathrm{d}W(t) \text{.} \]static double
bachelierHomogeneousOptionVega(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)
Calculates the vega of a call, i.e., the payoff max(S(T)-K,0) P, where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(rt) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma / N(T) \mathrm{d}W(t) \text{.} \]static RandomVariable
bachelierHomogeneousOptionVega(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)
Calculates the vega of a call, i.e., the payoff max(S(T)-K,0) P, where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(rt) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma / N(T) \mathrm{d}W(t) \text{.} \]static double
bachelierInhomogeneousOptionDelta(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)
Calculates the option delta dV(0)/dS(0) of a call option, i.e., the payoff V(T)=max(S(T)-K,0), where S follows a normal process with constant volatility, i.e., a inhomogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma exp(r (T-t)) \mathrm{d}W(t) \text{.} \]static RandomVariable
bachelierInhomogeneousOptionDelta(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)
Calculates the option delta dV(0)/dS(0) of a call option, i.e., the payoff V(T)=max(S(T)-K,0), where S follows a normal process with constant volatility, i.e., a inhomogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma exp(r (T-t)) \mathrm{d}W(t) \text{.} \] This implies an effective "Bachelier" integrated variance, being (with \( s = 0 \) \[ 1/T \int_{0}^{T} \sigma^2 exp(2 r (T-t)) \mathrm{d}t \ = \ sigma^2 \frac{exp(2 r (T-0))-exp(2 r (T-T)}{2 r T} \]static double
bachelierInhomogeneousOptionImpliedVolatility(double forward, double optionMaturity, double optionStrike, double payoffUnit, double optionValue)
Calculates the Bachelier option implied volatility of a call, i.e., the payoffstatic double
bachelierInhomogeneousOptionValue(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)
Calculates the option value of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with constant volatility, i.e., a inhomogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma exp(r (T-t)) \mathrm{d}W(t) \text{.} \]static RandomVariable
bachelierInhomogeneousOptionValue(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)
Calculates the option value of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with constant volatility, i.e., a inhomogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma exp(r (T-t)) \mathrm{d}W(t) \text{.} \]static double
bachelierInhomogeneousOptionVega(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)
Calculates the vega of a call, i.e., the payoff max(S(T)-K,0) P, where S follows a normal process with constant volatility, i.e., a Inhomogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp( r t ) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma exp(-r t) \mathrm{d}W(t) \text{.} \]static RandomVariable
bachelierInhomogeneousOptionVega(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)
Calculates the vega of a call, i.e., the payoff max(S(T)-K,0) P, where S follows a normal process with constant volatility, i.e., a Inhomogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp( r t ) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma exp(-r t) \mathrm{d}W(t) \text{.} \]static double
bachelierOptionDelta(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)
Calculates the option delta dV(0)/dS(0) of a call option, i.e., the payoff V(T)=max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \]static RandomVariable
bachelierOptionDelta(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)
Calculates the option delta dV(0)/dS(0) of a call option, i.e., the payoff V(T)=max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \]static double
bachelierOptionImpliedVolatility(double forward, double optionMaturity, double optionStrike, double payoffUnit, double optionValue)
Calculates the Bachelier option implied volatility of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \]static double
bachelierOptionValue(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)
Calculates the option value of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \]static RandomVariable
bachelierOptionValue(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)
Calculates the option value of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \]static double
bachelierOptionVega(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)
Calculates the vega of a call, i.e., the payoff max(S(T)-K,0) P, where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \]static RandomVariable
bachelierOptionVega(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)
Calculates the vega of a call, i.e., the payoff max(S(T)-K,0) P, where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \]
-
Method Details
-
bachelierOptionValue
public static double bachelierOptionValue(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)Calculates the option value of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F(0) = S(0)/N(0) = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \) of the forward process.optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor \( N(0)/N(T) = \exp(-r T) \))- Returns:
- Returns the value of a European call option under the Bachelier model.
-
bachelierOptionValue
public static RandomVariable bachelierOptionValue(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)Calculates the option value of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F(0) = S(0)/N(0) = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \) of the forward process.optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor \( N(0)/N(T) = exp(-r T) \))- Returns:
- Returns the value of a European call option under the Bachelier model.
-
bachelierOptionImpliedVolatility
public static double bachelierOptionImpliedVolatility(double forward, double optionMaturity, double optionStrike, double payoffUnit, double optionValue)Calculates the Bachelier option implied volatility of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying.optionMaturity
- The option maturity T.optionStrike
- The option strike. If the option strike is ≤ 0.0 the method returns the value of the forward contract paying S(T)-K in T.payoffUnit
- The payoff unit (e.g., the discount factor)optionValue
- The option value.- Returns:
- Returns the implied volatility of a European call option under the Bachelier model.
-
bachelierOptionDelta
public static double bachelierOptionDelta(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)Calculates the option delta dV(0)/dS(0) of a call option, i.e., the payoff V(T)=max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F(0) = S(0)/N(0) = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \) of the forward process.optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor \( N(0)/N(T) = exp(-r T) \))- Returns:
- Returns the value of the option delta (dV/dS(0)) of a European call option under the Bachelier model.
-
bachelierDigitalOptionDelta
public static double bachelierDigitalOptionDelta(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)Calculates the option delta dV(0)/dS(0) of a digital call option, i.e., the payoff V(T)=indicator(S(T)-K > 0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \] The delta reported is \[ \frac{1}{\sigma \sqrt{T}} \phi( \frac{F-K}{\sigma \sqrt{T}} ) \], where \( \phi \) is the density of the standard normal distribution. Note: The delta does not depend on the argument payoffUnit, due to \( \frac{\mathrm{d}F(0)}{\mathrm{d}S(0)} = \frac{1}{N(0)} \) being equal to 1 / payoffUnit.- Parameters:
forward
- The forward of the underlying \( F(0) = S(0)/N(0) = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \) of the forward process.optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor \( N(0)/N(T) = exp(-r T) \))- Returns:
- Returns the value of the option delta (dV/dS(0)) of a European call option under the Bachelier model.
-
bachelierOptionDelta
public static RandomVariable bachelierOptionDelta(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)Calculates the option delta dV(0)/dS(0) of a call option, i.e., the payoff V(T)=max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F(0) = S(0)/N(0) = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \) of the forward process.optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor \( N(0)/N(T) = exp(-r T) \))- Returns:
- Returns the value of the option delta (dV/dS(0)) of a European call option under the Bachelier model.
-
bachelierOptionVega
public static double bachelierOptionVega(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)Calculates the vega of a call, i.e., the payoff max(S(T)-K,0) P, where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F(0) = S(0)/N(0) = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \) of the forward process.optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor \( N(0)/N(T) = exp(-r T) \))- Returns:
- Returns the vega of a European call option under the Bachelier model.
-
bachelierOptionVega
public static RandomVariable bachelierOptionVega(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)Calculates the vega of a call, i.e., the payoff max(S(T)-K,0) P, where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(-r (T-t)) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F(0) = S(0)/N(0) = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \) of the forward process.optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor \( N(0)/N(T) = exp(-r T) \))- Returns:
- Returns the vega of a European call option under the Bachelier model.
-
bachelierHomogeneousOptionValue
public static double bachelierHomogeneousOptionValue(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)Calculates the option value of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(rt) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma / N(T) \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F(0) = S(0)/N(0) = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \) of the forward process.optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor \( N(0)/N(T) = exp(-r T) \))- Returns:
- Returns the value of a European call option under the Bachelier model.
-
bachelierHomogeneousOptionValue
public static RandomVariable bachelierHomogeneousOptionValue(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)Calculates the option value of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(rt) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma / N(T) \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F(0) = S(0)/N(0) = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \) of the forward process.optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor \( N(0)/N(T) = exp(-r T) \))- Returns:
- Returns the value of a European call option under the Bachelier model.
-
bachelierHomogeneousOptionImpliedVolatility
public static double bachelierHomogeneousOptionImpliedVolatility(double forward, double optionMaturity, double optionStrike, double payoffUnit, double optionValue)Calculates the Bachelier option implied volatility of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(rt) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma / N(T) \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying.optionMaturity
- The option maturity T.optionStrike
- The option strike. If the option strike is ≤ 0.0 the method returns the value of the forward contract paying S(T)-K in T.payoffUnit
- The payoff unit (e.g., the discount factor)optionValue
- The option value.- Returns:
- Returns the implied volatility of a European call option under the Bachelier model.
-
bachelierHomogeneousOptionDelta
public static double bachelierHomogeneousOptionDelta(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)Calculates the option delta dV(0)/dS(0) of a call option, i.e., the payoff V(T)=max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(rt) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma / N(T) \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F(0) = S(0)/N(0) = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \) of the forward process.optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor \( N(0)/N(T) = exp(-r T) \))- Returns:
- Returns the value of the option delta (dV/dS(0)) of a European call option under the Bachelier model.
-
bachelierHomogeneousOptionDelta
public static RandomVariable bachelierHomogeneousOptionDelta(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)Calculates the option delta dV(0)/dS(0) of a call option, i.e., the payoff V(T)=max(S(T)-K,0), where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(rt) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma / N(T) \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F(0) = S(0)/N(0) = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \) of the forward process.optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor \( N(0)/N(T) = exp(-r T) \))- Returns:
- Returns the value of the option delta (dV/dS(0)) of a European call option under the Bachelier model.
-
bachelierHomogeneousOptionVega
public static double bachelierHomogeneousOptionVega(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)Calculates the vega of a call, i.e., the payoff max(S(T)-K,0) P, where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(rt) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma / N(T) \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F(0) = S(0)/N(0) = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \) of the forward process.optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor \( N(0)/N(T) = exp(-r T) \))- Returns:
- Returns the vega of a European call option under the Bachelier model.
-
bachelierHomogeneousOptionVega
public static RandomVariable bachelierHomogeneousOptionVega(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)Calculates the vega of a call, i.e., the payoff max(S(T)-K,0) P, where S follows a normal process with numeraire scaled volatility, i.e., a homogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma exp(rt) \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma / N(T) \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F(0) = S(0)/N(0) = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \) of the forward process.optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor \( N(0)/N(T) = exp(-r T) \))- Returns:
- Returns the vega of a European call option under the Bachelier model.
-
bachelierInhomogeneousOptionValue
public static double bachelierInhomogeneousOptionValue(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)Calculates the option value of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with constant volatility, i.e., a inhomogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma exp(r (T-t)) \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \).optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor)- Returns:
- Returns the value of a European call option under the Bachelier model.
-
bachelierInhomogeneousOptionValue
public static RandomVariable bachelierInhomogeneousOptionValue(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)Calculates the option value of a call, i.e., the payoff max(S(T)-K,0), where S follows a normal process with constant volatility, i.e., a inhomogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma exp(r (T-t)) \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \).optionMaturity
- The option maturity T.optionStrike
- The option strike.payoffUnit
- The payoff unit (e.g., the discount factor)- Returns:
- Returns the value of a European call option under the Bachelier model.
-
bachelierInhomogeneousOptionImpliedVolatility
public static double bachelierInhomogeneousOptionImpliedVolatility(double forward, double optionMaturity, double optionStrike, double payoffUnit, double optionValue)Calculates the Bachelier option implied volatility of a call, i.e., the payoffmax(S(T)-K,0)
, where S follows a normal process with constant volatility, i.e., a inhomogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma exp(r (T-t)) \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying.optionMaturity
- The option maturity T.optionStrike
- The option strike. If the option strike is ≤ 0.0 the method returns the value of the forward contract paying S(T)-K in T.payoffUnit
- The payoff unit (e.g., the discount factor)optionValue
- The option value.- Returns:
- Returns the implied volatility of a European call option under the Bachelier model.
-
bachelierInhomogeneousOptionDelta
public static double bachelierInhomogeneousOptionDelta(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)Calculates the option delta dV(0)/dS(0) of a call option, i.e., the payoff V(T)=max(S(T)-K,0), where S follows a normal process with constant volatility, i.e., a inhomogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma exp(r (T-t)) \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \).optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor)- Returns:
- Returns the value of the option delta (dV/dS(0)) of a European call option under the Bachelier model.
-
bachelierInhomogeneousOptionDelta
public static RandomVariable bachelierInhomogeneousOptionDelta(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)Calculates the option delta dV(0)/dS(0) of a call option, i.e., the payoff V(T)=max(S(T)-K,0), where S follows a normal process with constant volatility, i.e., a inhomogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp(-r (T-t)) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma exp(r (T-t)) \mathrm{d}W(t) \text{.} \] This implies an effective "Bachelier" integrated variance, being (with \( s = 0 \) \[ 1/T \int_{0}^{T} \sigma^2 exp(2 r (T-t)) \mathrm{d}t \ = \ sigma^2 \frac{exp(2 r (T-0))-exp(2 r (T-T)}{2 r T} \]- Parameters:
forward
- The forward of the underlying \( F = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \).optionMaturity
- The option maturity T.optionStrike
- The option strike K.payoffUnit
- The payoff unit (e.g., the discount factor)- Returns:
- Returns the value of the option delta (dV/dS(0)) of a European call option under the Bachelier model.
-
bachelierInhomogeneousOptionVega
public static double bachelierInhomogeneousOptionVega(double forward, double volatility, double optionMaturity, double optionStrike, double payoffUnit)Calculates the vega of a call, i.e., the payoff max(S(T)-K,0) P, where S follows a normal process with constant volatility, i.e., a Inhomogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp( r t ) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma exp(-r t) \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \).optionMaturity
- The option maturity T.optionStrike
- The option strike.payoffUnit
- The payoff unit (e.g., the discount factor)- Returns:
- Returns the vega of a European call option under the Bachelier model.
-
bachelierInhomogeneousOptionVega
public static RandomVariable bachelierInhomogeneousOptionVega(RandomVariable forward, RandomVariable volatility, double optionMaturity, double optionStrike, RandomVariable payoffUnit)Calculates the vega of a call, i.e., the payoff max(S(T)-K,0) P, where S follows a normal process with constant volatility, i.e., a Inhomogeneous Bachelier model \[ \mathrm{d} S(t) = r S(t) \mathrm{d} t + \sigma \mathrm{d}W(t) \] Considering the numeraire \( N(t) = exp( r t ) \), this implies that \( F(t) = S(t)/N(t) \) follows \[ \mathrm{d} F(t) = \sigma exp(-r t) \mathrm{d}W(t) \text{.} \]- Parameters:
forward
- The forward of the underlying \( F = S(0) \exp(r T) \).volatility
- The Bachelier volatility \( \sigma \).optionMaturity
- The option maturity T.optionStrike
- The option strike.payoffUnit
- The payoff unit (e.g., the discount factor)- Returns:
- Returns the vega of a European call option under the Bachelier model.
-