Class Black76
java.lang.Object
com.quantfinlib.pricing.Black76
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 TypeMethodDescriptionstatic doubledelta(BlackScholes.OptionType type, double forward, double strike, double rate, double vol, double timeYears) Sensitivity to the FORWARD (not spot): df·Φ(d₁) for calls.static doubleimpliedVol(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 doubleprice(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 doublevega(double forward, double strike, double rate, double vol, double timeYears) Vega per 1.00 of vol (divide by 100 for per-point).
-
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).
-