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 doublebachelierDigitalOptionDelta(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 doublebachelierHomogeneousOptionDelta(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 RandomVariablebachelierHomogeneousOptionDelta(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 doublebachelierHomogeneousOptionImpliedVolatility(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 doublebachelierHomogeneousOptionValue(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 RandomVariablebachelierHomogeneousOptionValue(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 doublebachelierHomogeneousOptionVega(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 RandomVariablebachelierHomogeneousOptionVega(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 doublebachelierInhomogeneousOptionDelta(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 RandomVariablebachelierInhomogeneousOptionDelta(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 doublebachelierInhomogeneousOptionImpliedVolatility(double forward, double optionMaturity, double optionStrike, double payoffUnit, double optionValue)Calculates the Bachelier option implied volatility of a call, i.e., the payoffstatic doublebachelierInhomogeneousOptionValue(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 RandomVariablebachelierInhomogeneousOptionValue(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 doublebachelierInhomogeneousOptionVega(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 RandomVariablebachelierInhomogeneousOptionVega(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 doublebachelierOptionDelta(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 RandomVariablebachelierOptionDelta(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 doublebachelierOptionImpliedVolatility(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 doublebachelierOptionValue(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 RandomVariablebachelierOptionValue(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 doublebachelierOptionVega(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 RandomVariablebachelierOptionVega(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.
-