/// <summary> /// /// </summary> /// <param name="bond"></param> /// <param name="settleDate"></param> /// <param name="ytm"></param> /// <returns></returns> public static ResultStore GetSpotMeasures(this BesaJseBond bond, Date settleDate, double ytm) { var spotmeasures = new ResultStore(); spotmeasures.Add(Keys.RoundedAip, bond.RoundedAIP(settleDate, ytm)); spotmeasures.Add(Keys.RoundedClean, bond.RoundedClean(settleDate, ytm)); spotmeasures.Add(Keys.UnroundedAip, bond.UnroundedAIP(settleDate, ytm)); spotmeasures.Add(Keys.UnroundedClean, bond.UnroundedClean(settleDate, ytm)); spotmeasures.Add(Keys.UnroundedAccrued, bond.UnroundedAccruedInterest(settleDate)); return(spotmeasures); }
/// <summary> /// /// </summary> /// <param name="bond"></param> /// <param name="settleDate"></param> /// <param name="ytm"></param> /// <returns>the rounded accrued interest</returns> public static double RoundedAccruedInterest(this BesaJseBond bond, Date settleDate) { return(Math.Round(bond.UnroundedAccruedInterest(settleDate), 5)); }
/// <summary> /// /// </summary> /// <param name="bond"></param> /// <param name="settleDate"></param> /// <param name="ytm"></param> /// <returns>the unrounded clean price</returns> public static double UnroundedClean(this BesaJseBond bond, Date settleDate, double ytm) { var unroundedClean = bond.UnroundedAIP(settleDate, ytm) - bond.UnroundedAccruedInterest(settleDate); return(unroundedClean); }