Hello again team,
in addition to old-fashioned curve calibration, I also tried a Multicurve Calibration (Eur-OIS + Euribor3M + Euribor6M) but a couple of problems occurred.
First of all, normally we calibrate Forward Curves also using a starting set of short maturity deposits (from SN to 3M for Euribor3M and from ON to 6M for Euribor6M). Inserting this curve nodes in calibration.csv throws a “Non converging Newton method”. Deleting them (and starting from first FRA) executes correctly.
Second problem, the mean error in Forward curves (compared to benchmark curve) is E-3, pretty high.
Last problem regards OIS discount curve. From 1Y to 2Y we use EONIA OIS monthly (pays at 1Y and maturity). What is the correct convention to use in this case? EUR-FIXED-1Y-EONIA-OIS or EUR-FIXED-TERM-EONIA-OIS?
Regarding the forward curve and deposits, the system works in the following way. A deposit (‘TermDeposit’ object in the code; ‘DEP’ or ‘TermDeposit’ in the csv files) is considered as a set of fixed cash-flows; the pricing of those instruments is done using the discounting curve associated to the deposit currency. The forward curve is not used to price/calibrate those instruments. This is why the calibration fails when you have those deposits in the forward curve description: you try to calibrate to instruments by changing curves (the forward) that have no impact on the price/rate of those instruments.
There is a special version of deposit which mimics the Ibor fixing, it is called ‘IborFixingDeposit’ in the code and uses a ‘Type’ of ‘FIX’ or ‘IborFixingDeposit’ in the curve calibration csv files. That instrument exists only with the period associated to the Ibor index, i.e. for a EURIBOR-3M index, only the deposit with a maturity of 3M can be defined.
The calibration of the curves is based on market instrument. For a given Ibor index, there is no market instrument shorter than the index tenor. For example there is no market instrument associated to the EURIBOR-3M with all dates before 1M. This is why we have not created curve nodes that could be used to set the 1M zero-rate in a 3M forward curve.
I tried using the FIX curve node for the EURIBOR-3M and EURIBOR-6M (instead of DEP) only for 3M and 6M tenors respectively, deleting all the previous DEPs. Now the method converges without problems.
But values still remains very different from benchmark curves (even 1e-3).
Following the other thread about standard calibration, i found some convexity spread on 3M futures, but adding the spread doesn’t change the result (on last 2 futures the error seems even a little worse with correct convexity spread applied).
While in the OIS discount curve the error jumps from 1e-13 to 1e-7 between the 1Y OIS and the 13M OIS (getting worse and worse along the following tenors), in the forward curves the error starts at 1e-3 and gradually become 1e-5.
I can provide calibration and quotes csv entries if it could help.