Class BachelierModel

java.lang.Object
net.finmath.functions.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:
Date:
27.04.2012
  • Method Summary

    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{.} \]
    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{.} \]
    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{.} \]
    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{.} \]
    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{.} \]
    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{.} \]
    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{.} \]
    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{.} \]
    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{.} \]
    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 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 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.