Beispiel #1
0
        public static ResultStore GetRiskMeasures(this BesaJseBond bond, Date settleDate, double ytm)
        {
            var riskmeasures = new ResultStore();

            riskmeasures.Add(Keys.Delta, bond.Delta(settleDate, ytm));
            riskmeasures.Add(Keys.RandsPerPoint, bond.RandsPerPoint(settleDate, ytm));
            riskmeasures.Add(Keys.Duration, bond.Duration(settleDate, ytm));
            riskmeasures.Add(Keys.ModifiedDuration, bond.ModefiedDuration(settleDate, ytm));
            riskmeasures.Add(Keys.Convexity, bond.Convexity(settleDate, ytm));

            return(riskmeasures);
        }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="bond"></param>
        /// <param name="settleDate"></param>
        /// <param name="ytm"></param>
        /// <returns>modified duration of the bond</returns>
        public static double ModefiedDuration(this BesaJseBond bond, Date settleDate, double ytm)
        {
            var dA_dy = bond.RandsPerPoint(settleDate, ytm);

            return(-dA_dy / bond.UnroundedAIP(settleDate, ytm));
        }