# Garman-Kohlhagen pricing formula

OpusAMM provides 24/7/365 on-demand option pricing liquidity. Option premiums are calculated using the Garman Kohlhagen pricing formula (GKPM) for European style options. The&#x20;

GKPM accounts for two interest rates to correct the Black-Scholes-Merton formula’s limiting  assumption that borrowing and lending takes place at the same interest rate. GKPM inputs are sourced via external oracles (ex. Chainlink) and OpusARM:&#x20;

Model inputs:&#x20;

a. Spot&#x20;

b. Forward Price&#x20;

c. Maturity&#x20;

d. Strike Price&#x20;

e. Domestic Interest Rate (Rd)&#x20;

f. Foreign Interest Rate (Rf)&#x20;

g. Implied Volatility&#x20;

Implied volatility prices are adjusted by **OpusARM**.&#x20;

## The formula

European vanilla option payoffs are calculated using spot at maturity (St) and the strike\


$$
\text{Payoff}_\text{call}=\max (S_T-K;0), \ \ \text{Payoff}_{\text{put}} = \max (K - S_T; 0)
$$

Then option prices (premiums) are calculated as

$$
\text{Price}_{\text{call}}=Se^{-r_{\text{CCY1}}T}N(d_1)-Ke^{-r_{\text{CCY2}}T}N(d_2)
$$

$$
\text{Price}_{\text{call}}=Ke^{-r_{\text{CCY2}}T}N(-d_2)-Se^{-r_{\text{CCY1}}T}N(-d_1)
$$

where:

$$
d_1=\frac{\ln (S/K) + (r_{\text{CCY1}} - r_{\text{CCY2}} + \sigma^2/2)\cdot T}{\sigma\sqrt{T}}
$$

$$
d_2=\frac{\ln (S/K) + (r_{\text{CCY1}} - r_{\text{CCY2}} - \sigma^2/2)\cdot T}{\sigma\sqrt{T}} = d_1 - \sigma\sqrt{T}
$$



