OpusDigital Docs
  • Introduction
  • OpusDigital Ecosystem
    • Peer-to-Pool DEX
    • OpusUsers
    • OpusAMM
      • Garman-Kohlhagen pricing formula
      • Volatility Curve Surface Construction
      • Forward curve construction
    • OpusARM
    • OpusAI
    • Option Smart Contract (OSC)
    • OpusTreasury
      • Custody and security
      • Expiration and Settlement
      • Margining
    • Insurance Fund
    • Liquidity Pool Units (LPUs)
    • Composability and Interoperability
    • Circuit Breakers
    • CyberSecurity Theft Mitigation and Compliance
      • Bug bounty and audit
      • Compliance
    • Dashboards and components
      • Liquidity Provider Dashboard
      • Liquidity Taker Dashboard
      • Option Chain Interface (OCI)
      • Option Pricing and Minting Calculator (OPMC)
  • OpusDigital Users
    • Liquidity Providers
    • Liquidity Takers
    • Risk Managers
  • DEX Illustration
  • OTHER INFORMATION
    • FAQ
    • Glossary of Terms
    • Terms of Service
  • LINKS
Powered by GitBook
On this page
  1. OpusDigital Ecosystem
  2. OpusAMM

Volatility Curve Surface Construction

OpusARM implied volatility term surface calibration keeps OpusAMM option prices in line with the market and overall trading conditions.

Volatility interpolation methods use accumulated weighted daily variances between curve tenors, with weights reflecting each individual day’s value according to business days, non-business days, and important events. Holidays and weekends are substituted with a constant weight and inwards interpolation towards the one day tenor and outwards interpolation is used:

The weighted daily variance:

For a day d, we let

A(d)=vol(d)∗vol(d)∗dA(d) = \text{vol}(d)*\text{vol}(d)*dA(d)=vol(d)∗vol(d)∗d

Then daily variance between days d(t) and d(t+1) is defined as:

D(v)=A(d(t+1))−A(d(t))d(t+1)−d(t)D(v) = \frac{A(d(t+1))-A(d(t))}{d(t+1)-d(t)}D(v)=d(t+1)−d(t)A(d(t+1))−A(d(t))​

For each day did_idi​ we then define WiW_iWi​ to be the weight associated to that day, and the total weight

W(d)=∑di daysWiW(d) = ∑_{d_i \text{ days}}W_iW(d)=di​ days∑​Wi​

Then weighted daily variance between days d(t)d(t)d(t) and d(t+1)d(t+1)d(t+1) is defined as:

dVw=A(d(t+1))−A(d(t))W(d(t+1))−W(d(t))dVw = \frac{A(d(t+1))-A(d(t))}{W(d(t+1))-W(d(t))}dVw=W(d(t+1))−W(d(t))A(d(t+1))−A(d(t))​

Now the interpolated A(d) is:

A(d)=A(d(t))+dVw∗[W(d)−W(d(t))]A(d) = A(d(t)) + dVw * [W(d)-W(d(t))] A(d)=A(d(t))+dVw∗[W(d)−W(d(t))]

Yielding:

Vol(d)=A(d)d\text{Vol}(d) = \frac{\sqrt{A(d)}}{d}Vol(d)=dA(d)​​
PreviousGarman-Kohlhagen pricing formulaNextForward curve construction

Last updated 1 year ago