From: christos.arvanitis <arv...@pi...> - 2013-07-26 12:30:54
|
Hello to everyone I have some questions related in general with the pricing of Floating Bonds in QL and QLXL 1. Question Started from the QL example FittedBondCurve.cpp I have managed to understand it and compiled fine and ok! Then i have altered a bit the code trying to test my understanding. I have altered the part of the shifted YC calculations for instance as: for (Size k=0; k<LENGTH(mat_fix)-1; k++) { //start from 0 // retrieve quote object & value from instruments Real P = instrumentsB[k]->quote()->value(); // retrieve bond object from instruments const Bond& b = *instrumentsB[k]->bond(); // Calculate YTM // BondFunctions is a structure containing Bond calculation methods Rate ytm = BondFunctions::yield(b, // Bond object P, // value clean price dc_AA, // day-counter Compounded, // compounding Annual, // freq today); // calculation date // Calculate Duration Time dur = BondFunctions::duration(b, // Bond object ytm, // yield dc_AA, // day-counter Compounded, // compounding Annual, // freq Duration::Modified, // modified duration today); // calculation date // Calculate Convexity Real convexity = BondFunctions::convexity(b, ytm, dc_AA, Compounded, Annual, today); // Rate shift const Real bpsChange = 5.; // dP = -dur * P * dY+0.5*P^2*convexity*dy^2 // duration correction Real deltaP = -dur * P * (bpsChange/10000.) // convexity correction +0.5*pow(P,2)*convexity*pow(bpsChange/10000.,2); // set calculate corrected values quote[k+1]->setValue(P + deltaP); } the instumentsB is the ususal vector of bond helpers the above code part fails to compile with the error *..\main.cpp:1409:14: error: 'quote' was not declared in this scope * 2. Question To price a floatter without cap/floor do you always have to specify the coupon pricer with zero vol? 3. Question I have created a floating bond with say a cap and to price this bond I have to specify appart the YC the vol curve and passed to the coupon pricer a. Appart the blackcoupon pricer what other pricer classes can i use b. can you provide with a sample code for the stripping of capplets and calculation of vol surface 4. Question I tried also to implement part of the calculation using the SWIG Python Bindinds. I have remarked that there are no available bindings for the Nelson siegel method. Is this because it is hard to expose the class to python? 5. Question Then to go further i have tried to implement the full floating bond valuation in QLXL. I have managed to reproduce the pricing and risk figures in accordance with Bloomberg but its worth to mention few questions i had I have remarked the following things: a. All setting being equal between the Bloomberg and qlxl i have remarked that the next coupon function for floatter has a permanet 1-2 days diff with bloomberg for some not all the floatters i have tested. I will retest the settings again and repost back in case the issue persists b. In QLXL only the blackiborcoupon pricer is exposed are there any other possibilities? c. In QLXL there is no bindinds for the Nelson siegel method the only posiibility being the piecewise bootstrapping.Are they dificult to expose this class in xl? I thing i have to stop here for the moment Thank you very much in advance for your help Regards Christos -- View this message in context: http://quantlib.10058.n7.nabble.com/Floating-Rate-bond-pricing-related-questions-in-QL-and-QLXL-tp14476.html Sent from the quantlib-users mailing list archive at Nabble.com. |