|
From: Peter C. <pca...@gm...> - 2022-08-19 09:26:03
|
Hi Aditya,
did you check whether the forward swap rates estimated purely on the
curve are matching? I.e. excluding the convexity?
Thanks
Peter
On Fri, 19 Aug 2022 at 07:19, Aditya Gupta <adi...@co...> wrote:
>
> Hi Peter,
>
> The strike is in % and it is the difference between the two forward CMS rates with included convexity. What is the unit for the QL atmStrike and how can we convert between the two to benchmark? For now, we can stick to the Linearly interpolated cube (as I would like to use normal volatilities) and try and see the errors there.
>
> For constant volatility, the error is around 10%. Would it be possible to reduce this error further, even though BBG is most likely using a different pricing engine?
>
> Thanks,
> Aditya
> ________________________________
> From: Peter Caspers <pca...@gm...>
> Sent: Thursday, August 18, 2022 2:49 PM
> To: Aditya Gupta <adi...@co...>
> Cc: qua...@li... <qua...@li...>
> Subject: Re: [Quantlib-users] CMS Spread Cap Pricing
>
> CAUTION: EXTERNAL Sender
>
>
> Hi Aditya,
>
> I suppose the BBG atmStrike is in percent, i.e. -0.000759 in unit
> scale? What is that exactly, one of the forward CMS rates or their
> difference? Including or excluding convexity?
>
> Since you are using normal vols, you can't use SwaptionVolCube1 which
> only supports lognormal and shifted lognormal input vols at the
> moment. You could use the interpolated cube and feed a wider range of
> strikes if you can get these values from BBG.
>
> Thanks
> Peter
>
> Peter
>
>
> On Tue, 16 Aug 2022 at 08:11, Aditya Gupta <adi...@co...> wrote:
> >
> > Hi Peter,
> >
> >
> >
> > When I use a constant volatility, the error is within say 10%, and can be attributed to the pricing engine (maybe there are other errors, but it is not the current focus). With the linear volatility cube, the atmStrike(startDate, ql.Period(‘1y’)) is returning 0.03253 but BBG has an atmStrike of -0.0759. I tried to implement a Sabr cube and got the following error:
> >
> >
> >
> > guess = nRows * [0]
> >
> > for n in range(nRows):
> >
> > guess[n] = (ql.QuoteHandle(ql.SimpleQuote(0.1)),
> >
> > ql.QuoteHandle(ql.SimpleQuote(0.1)),
> >
> > ql.QuoteHandle(ql.SimpleQuote(0.1)),
> >
> > ql.QuoteHandle(ql.SimpleQuote(0.1)))
> >
> >
> >
> > isParameterFixed = [False,False,False,False]
> >
> > volCubeSabr = ql.SwaptionVolCube1(swaptionVolMatrixHandle,optionTenors,
> >
> > swapTenors, strikeSpreads, volSpreads,
> >
> > swapIndex1, swapIndex2, vegaWeightedSmileFit,
> >
> > guess, isParameterFixed, True)
> >
> >
> >
> > RuntimeError: global swaptions calibration failed: error tolerance exceeded:
> >
> > using rmsError tolerance 0.01,
> >
> > option maturity = October 25th, 2022,
> >
> > swap tenor = 1Y,
> >
> > rms error = 19.629123 %,
> >
> > max error = 32.809999 %,
> >
> > alpha = 1.70317n beta = 0.130399
> >
> > nu = 82.568
> >
> > rho = 0.222489
> >
> >
> >
> > I tried to look at LognormalCmsSpreadPricer.cpp and all the related source code files, but cannot figure out how atmStrike is calculated and how to debug this. It seems that there might be a more grave underlying error in my code if the atmStrike is nowhere near the expected value. Do let me know what you think of this, and if you need me to provide any more information. Again, thank you so much for your input.
> >
> >
> > Regards,
> >
> > Aditya Gupta.
> >
> > ________________________________
> > Complus Asset Management Limited ("CAML") is licensed by the Securities and Futures Commission of Hong Kong (“SFC”) for the Regulated Activities of Advising on Securities and Asset Management with CE number AWX256. CAML is subject to certain SFC codes and regulations, details of which can be found on the SFC's website at http://www.sfc.hk. CAML is a company incorporated in Hong Kong with its registered office and principal place of business as indicated above.
> >
> > Unless specifically indicated, this message should not be construed as an offer to sell or solicitation to purchase any securities, financial products or services or the giving of investment advice within or outside Hong Kong. This message is intended solely for the person(s) to whom it is addressed. If you receive this message in error, please immediately delete it and all copies of it from your computer network or hard copies, and notify the sender.
|