|
From: Sumit S. <su...@mo...> - 2019-12-25 17:37:10
|
Hi,
I am trying to fit a EUR curve based on the following instruments:-
1. EONIA quotes
2. 1m vs 6m basis quotes
3. 3m (outright) quotes
4. 6m (outright) quotes
5. 6m vs 12m quotes
(1) , (3) & (4) are simply outright quotes and I fit that (using a python
optimiser) by modelling them as :-
- EONIA is modelled as a Quantlib OvernightIndexedSwap object
- 3m & 6m Swaps are modelled as VanillaSwap object
I am having trouble fitting the basis quotes.
*1m vs 6m basis quotes*
The quotes are as
follows:-[('1Y',12.3),('2Y',12.6),('3Y',13),('4Y',13.1),('5Y',13.1),('10Y',11.6),('20Y',6.5),('30Y',4.4)]
*6m vs 12m basis quotes *
The quotes are as follows:-
[('1Y',7),('2Y',7.2),('3Y',7.4),('4Y',7.6),('5Y',7.7),('10Y',7.5),('20Y',6.3),('30Y',5.4)]
The *attached code* is what I use to model these basis swaps (basically I
model them as 2 VanillaSwaps - long the long term Euribor and short the
short term Euribor)
My question is regarding which leg to use a Swap1 vs Swap2.
My understanding is , the spread is added to the libor leg of the short
tenor.
So for example, for modelling 1m vs 6m,
- I create *VanillSwap1 object (for the 1m Euribor leg) *and *add the
spread to the floating leg.* I then create VanillaSwap2 for the long
tenor (i.e. 6m Euribor)
Similarly, for modelling 6m vs 12m basis,:-
- I create *VanillSwap1 object (for the 6m Euribor leg) *and *add the
spread to the floating leg.* I then create VanillaSwap2 for the long
tenor (i.e. 12m Euribor)
However, I am getting negative fitted zero rate (after the optimisation
process) for the 6m vs 12m.
For the 1m vs 6m basis, I correctly fit the zero rate spreads to the market
Am I doing something wrong here?
Regards
Sumit
--
Mosaic Smart Data
mobile +44 (0)7961839363
su...@mo...
25 Finsbury Circus ▫ EC2M 7EE ▫ London ▫ United Kingdom
www.mosaicsmartdata.com
|