Swap pricing without a fixing time-series

Hi guys,
How would you go about pricing swaps without any historical fixing market data?
Specifically, in something like DiscountIborIndexRates#rate, there is this code:

public double rate(LocalDate fixingDate) {
if (!fixingDate.isAfter(getValuationDate())) {
return historicRate(fixingDate);
return rateIgnoringTimeSeries(fixingDate);

and historicRate requires a fixing. Could there be an configurable option to simply use the first point of the Ibor curve (or the defined left extrapolator)?
I’m just curious about cases (which I thought was pretty common) where there is no historical fixings market data available, only forward and discount curves.



I think you make a good point, and this is something we should look to enhance. I can see two possibilities:

  • No fixing data provided at all - left-extrapolate from the curve
  • Patchy fixing data provided with a gap at the required date - interpolate in some way, e.g. roll the last known fixing forward

As you say I think this behaviour would have to be explicitly enabled to avoid masking unexpected data errors, and to allow the pricer to operate in a strict mode if required.

In the meantime you will need to provide the necessary fixing to satisfy the code you identified.

Thanks for the suggestion. Please let us know if you come across anything else.

Hey Jonathan, thanks for the answer.
In the meanwhile, I think I’ll implement a mocked LocalDatedoubleTimeSeries which will just return the same value (left edge) for every requested date - can you think of a problem with that temporary approach?

No problem. We don’t have anything built-in for this, so implementing something very simple like you describe will do the job.