http://quantlib.414.s1.nabble.com/ForecastFixing-issue-option-paying-InArrears-tp15766.html
Hello,
Facing an issue with IborIndex::forecastFixing(...) function - <root>\ql\indexes\iborindex.cpp.
What is the difference between 'fixingValueDate' and 'fixingDate' [QLib v1.1 variable names]
We are using QLib 1.1 - but have compared the functionality in v1.4 as well - but no business logic has changed.
Only that v1.4 enhances the error catching (to prevent a 0/0) and it is more modularized.
Business case:
Trying to price an Option-let (Caplet / Floorlet) which is Fixed in *Arrears*. We pass, the fixing days as '2 business days prior' during the IborLeg formation.
[This can be simulated by any floating rate instrument which requires a forecasted fixing]
During the evaluation of Option via the pricing engine, the fixing_date is returned as 2 days prior to maturity of the leg.
Since, the fixing_rate is in the future, it has to be forecasted. It ends up in the above function.
We believe there is a bug in calculation of period between fixing_value_date and end_value_date. [QLib v1.4 variable names inside flower braces{}]
Basically, in the function, this turns out to be zero. The reason being, the passed in (parameter) fixing_dateis converted to fixing_value_date {d1} - via the function valueDate.
valueDate function, 'advances' the fixing_date by fixing_days (which is 2) to return the mautrity date of the option-let.
The end_value_date {d2} would turn out to be maturity date.
Therefore it is zero.
This is solved, by choosing to calculate the term between unaltered fixing_date and end_date.
The discount factors would be different (depending on the curve) and forecast fixing would be generated.
Have tried to search the forums with 'forecastFixing' but have not found any relevant material.
Would be glad if someone pointed out any information.
I will raise this as a bug - for now, but would be glad to stand corrected - and learn the right usage.