|
From: Tom A. <tw...@ur...> - 2020-12-15 10:01:48
|
Thanks for the responses, everyone! I am also tempted to interpolate between 1M and 3M, and forget about 2M. I suspect the error from doing that is below the noise floor of the input market data anyway. Worth checking, though! I note that IborCoupon already requests forecast fixings from its index using a method which takes the value and end dates of the accrual period as parameters. I think that would let it use an interpolating index class directly, which means i could use a normal VanillaSwap here. However, it doesn't do that for past fixings - it only passes the fixing date. If i am only interested in pricing fresh (unseasoned) swaps, that would be enough. The interpolating index could throw an exception from its pastFixing method. Or, as you say, i could stuff in dummy values for the past, based on what i know the stub dates are. As long as i don't have two swaps whose stubs started on the same day but are different lenths. Perhaps i would just generate a separate index for each swap. I also wonder if i could handle this by using the existing VanillaSwap and adding a spread. If VanillaSwap uses, say, the 3M Ibor for the stub coupon, i could work out the error in that, as the difference between the 3M fixing and the interpolated fixing, and then somehow turn that into a floating leg spread. This feels like it would be rather hard to get right, as the spread will be smeared out along the discounting curve, whereas the error is concentrated at the start. Also, there's no way to change the spread after the object is created. I suppose there is no great desire to add support for short stubs to QuantLib, because in a few years, the tenor Ibors will be gone, and we will only be trading OISs. Regards, tom On Sat, 12 Dec 2020, Peter Caspers wrote: > I guess a "full" solution supporting both front and back stubs > (requiring projected fixings) could consist of > > - a new curve class taking the Euribor1M and Euribor3M projection > curves as input and giving an interpolated Euribor2M projection curve > as an output (to support the Ibor tenors that are still real, but for > which you can't directly bootstrap a forward curve) > - an interpolated Ibor index class taking two Ibor indices and weights > and managing the interpolation of historical and projected fixings > - an interpolated Ibor coupon class on top of the interpolated Ibor index class > > This is how we handle this anyway. As you say, for historical fixings > you can use a dummy index + coupon and set the fixing value manually. > For projected fixings, you could try to use two coupons (say on > Euribor1M and 3M) for the same accrual period and use their nominals > to interpolate the effective rate. You still have the problem to set > up the Euribor2M projection curve then though. > > It's maybe a bit late to introduce all that to QuantLib though :-) > > Best regards, > Peter > > On Fri, 11 Dec 2020 at 22:35, Mike DelMedico <mik...@gm...> wrote: >> >> Tom, >> >> This has been on my list to tackle for a while. Basically you need to >> build schedules AND (assuming it’s a short front stub) override the >> first cash flow of the swap object using the interpolated fixing from >> your two curves (2m + 3m in this case). Given that 2m is getting the >> axe soon, I think I’ll probably just go with the simpler version of >> interpolating off the 1m and 3m curves and assign the stub fixing that >> way. >> >> Luigi gave me some starting pointers to look at several months ago, let >> me see if I can dig them up and pass them along. I’d be happy to work >> with you on this if you’d like. >> >> >> Regards, >> Mike >> >> >> >> On Fri, Dec 11, 2020 at 15:22 Arkadiy Naumov <ark...@gm...> wrote: >>> >>> Hi Tom, >>> >>> As far as I understand, this is all transparent in QL, in a sense that >>> all you have to is to build a swap with appropriate payments schedule. >>> Nothing special is required for the curve (unless you are really keen >>> on very particular interpolation between very particular points) - a >>> curve is able to generate fixing values for any arbitrary tenor on its >>> own. >>> >>> Sent from my iPhone >>> >>> > On Dec 11, 2020, at 3:32 PM, Tom Anderson <tw...@ur...> wrote: >>> > >>> > Hello, >>> > >>> > Certain difficult people might like to trade swaps whose tenors are not integer multiples of their index tenors. For example, a 26.5 month swap against 3-month LIBOR, which, assuming backward date generation, has a 2.5-month first accrual period. My understanding is that in this case, the cashflow for the first period is determined not by a fixing of 3-month LIBOR, but by linear interpolation between fixings of the closest tenors of LIBOR (2 and 3 month in this example). >>> > >>> > Can i model swaps like this with QuantLib? >>> > >>> > I'm assuming i'll have to build separate curves for the tenors i want to interpolate between, but how do i connect them to a swap? >>> > >>> > Thanks, >>> > tom >>> > >>> > -- >>> > Advertising does not make content free. It merely externalizes the >>> > costs in a way that incentivizes malicious or incompetent players to >>> > build things like Superfish, infect 1 in 20 machines with ad injection >>> > malware, and create sites that require unsafe plugins and take twice as >>> > many resources to load, quite expensive in terms of bandwidth, power, >>> > and stability. -- Monica Chew >>> > >>> > >>> > _______________________________________________ >>> > QuantLib-users mailing list >>> > Qua...@li... >>> > https://lists.sourceforge.net/lists/listinfo/quantlib-users >>> >>> >>> _______________________________________________ >>> QuantLib-users mailing list >>> Qua...@li... >>> https://lists.sourceforge.net/lists/listinfo/quantlib-users >> >> _______________________________________________ >> QuantLib-users mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users -- If you can't open it, you don't own it -- The Maker's Bill of Rights |