## Class BachelierModel

• public class BachelierModel
extends Object
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)
The class 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

All Methods
Modifier and Type Method Description
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.
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 payoff
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{.}$
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{.}$
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• ### Method Detail

• #### 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 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.
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.