Guest User

Untitled

a guest
Jul 19th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. private double GetForwardRate(int index, double frequencyInYear, IDictionary<double, double> floatingRates)
  2. {
  3. double targetRate;
  4. var previousFloatingRate = floatingRates.ElementAt(index - 1);
  5. var currentFloatingRate = floatingRates.ElementAt(index);
  6. var forwardRate = CalculateForwardRate(previousFloatingRate.Value
  7. , currentFloatingRate.Value
  8. , previousFloatingRate.Key, currentFloatingRate.Key);
  9. targetRate = ConvertForwardRateForTargetFrequency(forwardRate, frequencyInYear);
  10. return targetRate;
  11. }
  12.  
  13. private double CalculateForwardRate(double currentRate, double nextRate, double currentPeriod, double nextPeriod)
  14. {
  15. return nextRate + ((nextRate - currentRate) * ((currentPeriod) / (nextPeriod - currentPeriod)));
  16. }
  17.  
  18. private double ConvertForwardRateForTargetFrequency(double forwardRate, double frequencyInYear)
  19. {
  20. var numberOfPayementsEachYear = 1 / frequencyInYear;
  21. return numberOfPayementsEachYear * (Math.Exp((forwardRate / numberOfPayementsEachYear)) - 1);
  22. }
Add Comment
Please, Sign In to add comment