I need to generate the Volatility Surface of call options on S&P500 index, my dataset contains implied volatilities regarding various expiration dates for various strike prices.

My doubt is, given beta in advance, in order to get a surface should I recalibrate the model parameters (alfa,rho,nu) for every different exipiration date or I have to run the LSQ non linear between the matrix containing the market volatilities and the volatilities by sabr all togheter? (So my surface will be based on a single set of parameters and not one for each maturity)

Thanks for the help


You are observing the same underlying $S_t$, therefore it has to be one set of parameters for all maturities. You could add a term structure to the parameters , however , since you are using SABR, I assume you use Hagan expansion to generate the implied vols, and for this approximation, the parameters must be constant.

  • $\begingroup$ Thanks for the answer, the problem is that every application of the model i found online calibrates the model on a single maturity... $\endgroup$ Nov 28 '19 at 15:18
  • $\begingroup$ on which asset class? $\endgroup$
    – Canardini
    Nov 29 '19 at 14:02
  • $\begingroup$ It was interest rate swap $\endgroup$ Dec 2 '19 at 11:05
  • $\begingroup$ For interest swaps, the underlying is a swap rate, and it is a function of its start and end dates. Each of them are martingale under its annuity measure, therefore will have its own SABR parameters $\endgroup$
    – Canardini
    Dec 2 '19 at 13:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.