Hi,
I have a question regarding the SABR model in Quantlib. I am trying to fit a SABR vol surface to the following data.
vector<double> strikes = { 245.00, 247.50, 250.00, 252.50, 255.00, 257.50, 260.00, 262.50, 265.00 };
vector<double> imp_vols = { 12.45, 11.98, 11.47, 10.98, 10.52, 10.22, 9.81, 9.53, 9.39 };
vector<double> last_prices = { 9.941, 7.859, 5.940, 4.245, 2.831, 1.768, 0.982, 0.498, 0.237 };
double forward = 254.12;
double calendarTime = 34 / 365.0;
double intRate = 0.03;
double discount = std::exp(-intRate * calendarTime);
Assume the following SABR parameters.
double Beta = 0.5;
double NU = 0.05;
double Rho = -0.5;
Also assuming the ATM vol is the 255.00 strike (ImpVol = 10.22).
Can someone please clarify what units the following parameters in the QuantLib method expects -
strike, forward, expiryTime and alpha? When I input the raw data above I get results that don't make much sense.
QuantLib Method:
Real unsafeSabrVolatility(Rate strike, Rate forward, Time expiryTime, Real alpha, Real beta, Real nu, Real rho);
Regards,
Hurley