Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private double GetForwardRate(int index, double frequencyInYear, IDictionary<double, double> floatingRates)
- {
- double targetRate;
- var previousFloatingRate = floatingRates.ElementAt(index - 1);
- var currentFloatingRate = floatingRates.ElementAt(index);
- var forwardRate = CalculateForwardRate(previousFloatingRate.Value
- , currentFloatingRate.Value
- , previousFloatingRate.Key, currentFloatingRate.Key);
- targetRate = ConvertForwardRateForTargetFrequency(forwardRate, frequencyInYear);
- return targetRate;
- }
- private double CalculateForwardRate(double currentRate, double nextRate, double currentPeriod, double nextPeriod)
- {
- return nextRate + ((nextRate - currentRate) * ((currentPeriod) / (nextPeriod - currentPeriod)));
- }
- private double ConvertForwardRateForTargetFrequency(double forwardRate, double frequencyInYear)
- {
- var numberOfPayementsEachYear = 1 / frequencyInYear;
- return numberOfPayementsEachYear * (Math.Exp((forwardRate / numberOfPayementsEachYear)) - 1);
- }
Add Comment
Please, Sign In to add comment