Dear all!
I have tried to use the BermudanSwaption-function in the R-package RQuantlib to calibrate the parameters of the G++-model using swaptions. As far as I have understood, this function builds on the BermudeanSwaption-function in QuantLib (http://quantlib.sourcearchive.com/documentation/1.1-1/BermudanSwaption_8cpp_source.html). My problem is that the R-function gives very strange results, and I am not sure whether if this is an R-problem or a QuantLib-problem. Hence, I wonder if anyone has used the BermudeanSwaption-function in QuantLib to calibrate the parameters of the G++-function with success? Specifically, I tried to repeat the experiment in Chapter 4.2 in the Brigo-Mercurio Book. They use the following maturities, tenors and swaption volatilities: swaptionMaturities <- c(1,2,3,4,5,7,10) swapTenors <- c(1,2,3,4,5,6,7,8,9,10) volMatrix <- matrix(c(0.1640,0.1550,0.1430,0.1310,0.1240,0.1190,0.1160,0.1120,0.1100,0.1070, 0.1600,0.1500,0.1390,0.1290,0.1220,0.1190,0.1160,0.1130,0.1100,0.1080, 0.1570,0.1450,0.1340,0.1240,0.1190,0.1150,0.1130,0.1100,0.1080,0.1060, 0.1480,0.1360,0.1260,0.1190,0.1140,0.1120,0.1090,0.1070,0.1050,0.1030, 0.1400,0.1280,0.1210,0.1140,0.1100,0.1070,0.1050,0.1030,0.1020,0.1000, 0.1300,0.1190,0.1130,0.1050,0.1010,0.0990,0.0970,0.0960,0.0950,0.0930, 0.1160,0.1070,0.1000,0.0930,0.0900,0.0890,0.0870,0.0860,0.0850,0.0840), ncol=10, byrow=TRUE) and get the following parameters: a=0.77 b=0.0982, sigma=0.022, eta=0.01 and rho=-0.702 Any help on this issue would be greatly appreciated! Kind regards, Kjersti Aas -- _______________________________________________________________________ Kjersti Aas, Dr. Philos, Assistant Research Director, http://www.nr.no/~kjersti/ Norsk Regnesentral, P.O.Box 114 Blindern, 0314 Oslo, Norway. TEL: +47 22 85 25 00, FAX: +47 22 69 76 60 ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Hi Kjersti,
A interest rate curve (swap) is also needed for the G2++ calibration. Regards, André 2016-03-03 8:55 GMT+01:00 Kjersti Aas <[hidden email]>: > Dear all! > > I have tried to use the BermudanSwaption-function in the R-package > RQuantlib to calibrate the parameters of the G++-model using swaptions. > As far as I have understood, this function builds on the > BermudeanSwaption-function in QuantLib > (http://quantlib.sourcearchive.com/documentation/1.1-1/BermudanSwaption_8cpp_source.html). > > My problem is that the R-function gives very strange results, and I am > not sure whether if this is an R-problem or a QuantLib-problem. Hence, I > wonder if anyone has used the BermudeanSwaption-function in QuantLib to > calibrate the parameters of the G++-function with success? > > Specifically, I tried to repeat the experiment in Chapter 4.2 in the > Brigo-Mercurio Book. They use the following maturities, tenors and > swaption volatilities: > > swaptionMaturities <- c(1,2,3,4,5,7,10) > swapTenors <- c(1,2,3,4,5,6,7,8,9,10) > volMatrix <- > matrix(c(0.1640,0.1550,0.1430,0.1310,0.1240,0.1190,0.1160,0.1120,0.1100,0.1070, > 0.1600,0.1500,0.1390,0.1290,0.1220,0.1190,0.1160,0.1130,0.1100,0.1080, > 0.1570,0.1450,0.1340,0.1240,0.1190,0.1150,0.1130,0.1100,0.1080,0.1060, > 0.1480,0.1360,0.1260,0.1190,0.1140,0.1120,0.1090,0.1070,0.1050,0.1030, > 0.1400,0.1280,0.1210,0.1140,0.1100,0.1070,0.1050,0.1030,0.1020,0.1000, > 0.1300,0.1190,0.1130,0.1050,0.1010,0.0990,0.0970,0.0960,0.0950,0.0930, > 0.1160,0.1070,0.1000,0.0930,0.0900,0.0890,0.0870,0.0860,0.0850,0.0840), > ncol=10, byrow=TRUE) > > and get the following parameters: > a=0.77 b=0.0982, sigma=0.022, eta=0.01 and rho=-0.702 > > Any help on this issue would be greatly appreciated! > > Kind regards, > Kjersti Aas > > -- > _______________________________________________________________________ > Kjersti Aas, Dr. Philos, Assistant Research Director, http://www.nr.no/~kjersti/ > Norsk Regnesentral, P.O.Box 114 Blindern, 0314 Oslo, Norway. > TEL: +47 22 85 25 00, FAX: +47 22 69 76 60 > > > > > > > ------------------------------------------------------------------------------ > Site24x7 APM Insight: Get Deep Visibility into Application Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month > Monitor end-to-end web transactions and take corrective actions now > Troubleshoot faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 > _______________________________________________ > QuantLib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Hello Kjersti, I suspect that the problem is in the optimizer used for the calibration. I'm not sure which one is used in RQuantLib, but the ones we have in the library all seem to fail in different ways to find the same minimum reported in the book. The calibration over 70 points is a difficult one, and they probably get stuck in some local minimum. I'm not sure what you can do about it. One possibility, since I'm sure you have better optimizers available in R than we have in QuantLib, might be to write a function in R that takes the model parameters, creates a G2++ model, reprices the swaptions and returns the errors. Then you could pass it to the R optimizers and see what happens. Hope this helps, Luigi On Fri, Mar 4, 2016 at 4:46 PM André de Boer <[hidden email]> wrote: Hi Kjersti, ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140 _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Free forum by Nabble | Edit this page |