private double GetProjectedRate(Ettj ettj, int businessDays) { if (ettj.Rates.Count() == 1) { return(ettj.Rates.First().RateValue); } var interpolationSet = TransformEttjToInterpolationSet(ettj, businessDays); return(_interpolationCalculator.CalculateExponential(interpolationSet)); }
private InterpolationSet TransformEttjToInterpolationSet(Ettj ettj, int targetMaturityDays) { var rates = ettj.Rates.OrderBy(x => x.BusinessDays).ToList(); var firstRate = rates[0]; var secondRate = rates[1]; var firstInterpolationPoint = new InterpolationPoint(firstRate.BusinessDays, firstRate.RateValue); var secondInterpolationPoint = new InterpolationPoint(secondRate.BusinessDays, secondRate.RateValue); return(new InterpolationSet(firstInterpolationPoint, secondInterpolationPoint, targetMaturityDays)); }