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 Static Methods Concrete Methods 
      Modifier and Type Method Description
      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{.} \]
    • 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.
      • 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.