Class Black76

java.lang.Object
com.quantfinlib.pricing.Black76

public final class Black76 extends Object
Black-76 — the Black-Scholes sibling for options on forwards and futures: rates caps/floors and swaptions, commodity futures options, bond futures options. The whole trick is that a forward has no carry (it costs nothing to hold), so the underlying drift drops out and the price is just the discounted Black formula on the forward itself:
  call = df · [F·Φ(d₁) − K·Φ(d₂)],   d₁ = (ln(F/K) + σ²T/2)/(σ√T)

Equivalent to BlackScholes with carry = 0 and spot = forward (a test pins that identity), but the market quotes these instruments in Black-76 terms (a "cap vol" or a "futures option vol" is a Black-76 σ), so the model deserves its own front door. Static, allocation-free, NaN-transparent inputs produce NaN outputs (research-lane pricing convention, matching BlackScholes).

  • Method Details

    • price

      public static double price(BlackScholes.OptionType type, double forward, double strike, double rate, double vol, double timeYears)
      Discounted Black-76 price of a call/put on a forward.
    • delta

      public static double delta(BlackScholes.OptionType type, double forward, double strike, double rate, double vol, double timeYears)
      Sensitivity to the forward (not spot): df·Φ(d₁) for calls.
    • vega

      public static double vega(double forward, double strike, double rate, double vol, double timeYears)
      Vega per 1.00 of vol (divide by 100 for per-point). Same for calls and puts.
    • impliedVol

      public static double impliedVol(BlackScholes.OptionType type, double marketPrice, double forward, double strike, double rate, double timeYears)
      Black-76 implied vol from a discounted price, via ImpliedVolatility.black(BlackScholes.OptionType, double, double, double, double) (NaN if unattainable, 0 at intrinsic).