Docs / nablatensor-quant / com.nablatensor.quant.analytic
final class
KirkSpreadOption
Kirk's (1995) approximation for a European spread option — payoff max(S1_T - S2_T - K, 0) — the standard closed form for a spark or dark spread. It treats the spread as a Margrabe exchange between F1 and F2 + K, with an effective volatility that blends vol1, vol2 and the moneyness of the second forward:
F1, F2 = S1 e^{(r - q1) T}, S2 e^{(r - q2) T}
a = F2 / (F2 + K)
sigma = sqrt( vol1^2 - 2 rho vol1 vol2 a + vol2^2 a^2 )
d1 = (ln(F1 / (F2 + K)) + sigma^2 T / 2) / (sigma sqrt(T))
price = e^{-rT} [ F1 N(d1) - (F2 + K) N(d1 - sigma sqrt(T)) ]
As K -> 0 it collapses to the exact Margrabe price.
Methods
static double price(double s1, double s2, double strike, double vol1, double vol2, double rho, double rate, double yield1, double yield2, double maturity)
static AnalyticGreeks greeks(double s1, double s2, double strike, double vol1, double vol2, double rho, double rate, double yield1, double yield2, double maturity)
Price and the two spot deltas by central differencing the closed form.
static double price(OptionType type, double s1, double s2, double strike, double vol1, double vol2, double rho, double rate, double yield1, double yield2, double maturity)
Convenience alias for a put-style spread: max(K - (S1 - S2), 0) by parity.