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 Summary

    Modifier and Type
    Method
    Description
    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.
    static double
    impliedVol(BlackScholes.OptionType type, double marketPrice, double forward, double strike, double rate, double timeYears)
    Black-76 implied vol from a price, via bisection (NaN if unattainable).
    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.
    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).

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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 price, via bisection (NaN if unattainable).