Type: | Package |
Title: | Methods for Fixed-Income Valuation, Risk and Return |
Version: | 1.0.1 |
Author: | MaheshP Kumar [aut, cre], MaheshP Kumar [aut], MaheshP Kumar [ctb] |
Maintainer: | MaheshP Kumar <maheshparamjitkumar@gmail.com> |
Imports: | Rdpack, stats |
RdMacros: | Rdpack |
Description: | Bond Pricing and Fixed-Income Valuation of Selected Securities included here serve as a quick reference of Quantitative Methods for undergraduate courses on Fixed-Income and CFA Level I Readings on Fixed-Income Valuation, Risk and Return. CFA Institute ("CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151, pp. 237-299)", 2019, ISBN: 9781119593577). Barbara S. Petitt ("Fixed Income Analysis", 2019, ISBN: 9781119628132). Frank J. Fabozzi ("Handbook of Finance: Financial Markets and Instruments", 2008, ISBN: 9780470078143). Frank J. Fabozzi ("Fixed Income Analysis", 2007, ISBN: 9780470052211). |
License: | GPL-3 |
Encoding: | UTF-8 |
RoxygenNote: | 7.2.1 |
NeedsCompilation: | no |
Packaged: | 2022-08-10 15:43:50 UTC; mahes |
Repository: | CRAN |
Date/Publication: | 2022-08-13 12:10:01 UTC |
Calculates the accrued interest with actual-by-actual day convention.
Description
Calculates the accrued interest with actual-by-actual day convention.
Usage
aiActDtCon(cPmt, dt1, dt2, stDt)
Arguments
cPmt |
A number. |
dt1 |
A character. |
dt2 |
A character. |
stDt |
A character. |
Details
According to Adam and Smith(2019), when a bond is between coupon payment dates, its price has two parts: the first part is the flat price (PVFlat) and the other is accrued interest (AI). The sum of these two parts is the full price (PVFull), which also is called the invoice price or dirty price. The flat price, which is the full price minus the accrued interest, is also called the quoted price or clean price. The flat price usually is quoted by bond dealers. If a trade takes place, the accrued interest is added to the flat price to obtain the full price paid by the buyer and received by the seller on the settlement date. The settlement date is the date when the bond buyer makes cash payment, and the seller delivers the security. The reason for using the flat price for quotation is to avoid misleading investors about the market price trend for the bond. If the full price were to be quoted by dealers, investors would see the price rise day after day even if the yield-to-maturity did not change. That is because the amount of accrued interest increases each day. Then, after the coupon payment is made, the quoted price would drop dramatically. This is why, using the flat price for quotation avoids that misrepresentation.
So, accrued interest is the proportional share of the next coupon payment. Assume that the coupon period has (T) days between payment dates and that (t) days have gone by since the last payment. There are different conventions used in bond markets to count days. The two most common day-count conventions are actual-by-actual and 30-by-360. For the actual-by-actual method, the actual number of days is used, including weekends, holidays, and leap days. For example, a semi-annual payment bond pays interest on 15 May and 15 November of each year. The accrued interest for settlement on 27 June would be the actual number of days between 15 May and 27 June (t = 43 days) divided by the actual number of days between 15 May and 15 November (T = 184 days), times the coupon payment. If the stated coupon rate is 4.375 percent, the accrued interest is 0.511209 per 100 of par value. Day-count conventions vary from market to market. However, actual-by-actual is most common for government bonds (Adams & Smith, 2019).
Based on this, the method aiActDtCon()
is developed to compute the accrued interest with actual-by-actual day convention. So, aiActDtCon()
gives accrued interest with actual-by-actual day convention for values passed to its four arguments. Here, cPmt
is dollar value of Coupon Payment, dt1
is date of first semi-annual interest payment, dt2
is date of second semi-annual interest payment, and stDt
is Settlement Date. The output is rounded off to six decimal places. The given examples show various ways in which the arguments can be passed to aiActDtCon()
.
Value
Input values to four arguments r
, dt1
dt2
and stDt
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
aiActDtCon(cPmt=4.375,dt1=as.Date("2019-5-15"),dt2=as.Date("2019-11-15"),stDt=as.Date("2019-6-27"))
aiActDtCon(4.375, as.Date("2019-5-15"), as.Date("2019-11-15"),as.Date("2019-6-27"))
Calculates the accrued interest with 30-by-360, day convention.
Description
Calculates the accrued interest with 30-by-360, day convention.
Usage
aiRoundedDaysConv(cPmt, bfrStlDt, stlDt, elpsMnths, daysBtwnCpns)
Arguments
cPmt |
A number. |
bfrStlDt |
A character. |
stlDt |
A character. |
elpsMnths |
A number. |
daysBtwnCpns |
A number. |
Details
There are different conventions used in bond markets to count days for valuation purposes. The two most common day-count conventions are actual-by-actual and 30-by-360. The 30-by-360 day-count convention often is used on corporate bonds. It assumes that each month has 30 days and that a full year has 360 days. Therefore, for this method, there are assumed to be 42 days between 15 May and 27 June: 15 days between 15 May and 30 May and 27 days between 1 June and 27 June. There are assumed to be 180 days (for being used as days between two semi-annual coupon payments) in the six-month period between 15 May and 15 November. So, the accrued interest at a 4.375 percent, for a semi-annual payment corporate bond is 0.510417 per 100 of par value (Adams & Smith, 2019).
Based on this, the method aiRoundedDaysConv()
is developed to compute the accrued interest with 30-by-360 day convention. So, aiRoundedDaysConv()
gives accrued interest with 30-by-360 day convention for values passed to its five arguments. Here, cPmt
is dollar value of Coupon Payment, bfrStlDt
is date of interest payment before settlement date, stlDt
is Settlement Date, elpsMnths
denotes number of months elapsed from day of last coupon payment to the bfrStlDt
(so in this example number of months from last coupon payment to June 15, 2019), and daysBtwnCpns
denotes number of days between two coupon payments. The output is rounded off to six decimal places.
Value
Input values to four arguments cPmt
, bfrStlDt
stlDt
and elpsMnths
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
aiRoundedDaysConv(4.375, as.Date("2019-6-15"), as.Date("2019-6-27"),1,180)
Calculates annual Yield-To-Maturity (YTM) of Zero-Coupon Bond with given Price and given Maturity Value for various values of Periodicity.
Description
Calculates annual Yield-To-Maturity (YTM) of Zero-Coupon Bond with given Price and given Maturity Value for various values of Periodicity.
Usage
annualYtmZcbForPeriodicity(
maturityVal,
yearsToMaturity,
ZCBprice,
desiredPeriodicity
)
Arguments
maturityVal |
A number. |
yearsToMaturity |
A number. |
ZCBprice |
A number. |
desiredPeriodicity |
A number. |
Details
The periodicity of the annual market discount rate for a zero-coupon bond is arbitrary because there are no coupon payments. As in the given examples, for semi-annual compounding, the annual yield-to-maturity on the five-year, zero-coupon bond priced at 80 percent 100 of par value is stated to be 4.5130 percent. This annual rate has a periodicity of two. For quarterly compounding, the annual yield-to-maturity is stated to be 4.4880 percent. This annual rate has a periodicity of four. For monthly compounding, the annual yield-to-maturity is stated to be 4.4712 percent. This annual rate has a periodicity of 12. For annual compounding, the yield-to-maturity is stated to be 4.5640 percent. This annual rate has a periodicity of one (Adams & Smith, 2019).
With regard to the given information ,annualYtmZcbForPeriodicity()
is developed to compute annual Yield-To-Maturity (YTM) of Zero-Coupon Bond with given Price and given Maturity Value for different values of Periodicity for values passed to its four arguments. Here, maturityVal
is Maturity Value of the Bond, yearsToMaturity
represents years to maturity, ZCBprice
represents price of Zero-Coupon Bond, and desiredPeriodicity
desired periodicity for which the YTM is to be computed. The output is rounded off to six decimal places.
Value
Input values to four arguments maturityVal
, yearsToMaturity
,ZCBprice
and desiredPeriodicity
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
annualYtmZcbForPeriodicity(maturityVal=100,yearsToMaturity=5,ZCBprice=80,desiredPeriodicity=2)
annualYtmZcbForPeriodicity(maturityVal=100,yearsToMaturity=5,ZCBprice=80,desiredPeriodicity=4)
annualYtmZcbForPeriodicity(maturityVal=100,yearsToMaturity=5,ZCBprice=80,desiredPeriodicity=12)
annualYtmZcbForPeriodicity(maturityVal=100,yearsToMaturity=5,ZCBprice=80,desiredPeriodicity=1)
Calculates the Approximated Macaulay duration using the Approximate Modified Duration and Yield-To-Maturity.
Description
Calculates the Approximated Macaulay duration using the Approximate Modified Duration and Yield-To-Maturity.
Usage
approxMacDurationUsingApprModifDuration(approxModifDuration, periodicYtm)
Arguments
approxModifDuration |
A number. |
periodicYtm |
A number. |
Details
According to information provided by Adams and Smith (2019), the method approxMacDurationUsingApprModifDuration()
is developed to calculate the Approximated Macaulay duration using the Approximate Modified Duration and Yield-To-Maturity.
Value
Input values to two arguments approxModifDuration
and periodicYtm
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Understanding Fixed‑Income Risk and Return. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 237-299). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
approxMacDurationUsingApprModifDuration(approxModifDuration=13.466,periodicYtm=0.0257)
Calculates the Approximate Modified Duration.
Description
Calculates the Approximate Modified Duration.
Usage
approxModifDuration(pvBase, pvPlus, pvMinus, percentChangeYtm)
Arguments
pvBase |
A number. |
pvPlus |
A number. |
pvMinus |
A number. |
percentChangeYtm |
A number. |
Details
According to information provided by Adams and Smith (2019), the method approxModifDuration()
is developed to calculate the Approximate Modified Duration.
Value
Input values to four arguments pvBase
,pvPlus
,pvMinus
and percentChangeYtm
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Understanding Fixed‑Income Risk and Return. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 237-299). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
approxModifDuration(pvBase=99.956780,pvPlus=100.631781,pvMinus=101.250227,percentChangeYtm=0.0005)
approxModifDuration (pvBase=42.223649,pvPlus=42.100694,pvMinus=42.346969,percentChangeYtm=0.0001)
Calculates the Price of Bond making Deficient Coupon Payments.
Description
Calculates the Price of Bond making Deficient Coupon Payments.
Usage
bondPriceDefCoupon(parValue, couponDeficiency, times, r)
Arguments
parValue |
A number. |
couponDeficiency |
A vector. |
times |
A vector. |
r |
A number. |
Details
When the coupon rate is less than the market discount rate, the bond is priced at a discount below par value. This is so because the price of a fixed-rate bond, relative to par value, depends on the relationship of the coupon rate to the market discount rate. For this reason, when the coupon rate is less than the market discount rate, the bond is priced at a discount below par value (Adams & Smith, 2019). If a bond pays coupons at 3 percent, whereas the the market discount rate is 5 percent, then this bond has coupon deficiency of 2 percent. So for computing the price of a bond with Coupon Deficiency, present Value of the deficient Coupon Payments is computed and then is deducted from the Par Value of the bond. Of course such bond gets priced at a discount and trades below the par value for paying coupon rate less than that of market discount rate. Suppose present value of Deficient Coupon Payments comes out to be -8.425 then of the price this bond will be 91.575 (= 100 – 8.425).
In view of this, the method bondPriceDefCoupon()
is developed to compute the Price of Bond making Deficient Coupon Payments. So, bondPriceDefCoupon()
gives the Price of Bond making Deficient Coupon Payments for values passed to its four arguments. Here parValue
represent the Maturity Value, couponDeficiency
is the vector that has dollar values of Deficient Coupon Payments for periods till maturity, times
is a vector of number of years ranging from 1 to any specified number of years till maturity, and r
is Market Discount Rate or Required Rate of return. The output is rounded off to three decimal places.
Value
Input values to four arguments parValue
, couponDeficiency
, times
and r
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
bondPriceDefCoupon(parValue=100,couponDeficiency=c(-2,-2,-2,-2,-2), times=c(1,2,3,4,5), r= 0.06)
bondPriceDefCoupon(parValue=100,couponDeficiency=c(-2,-2,-2,-2,-2), times=c(1:5), r= 0.06)
bondPriceDefCoupon(parValue=100,couponDeficiency=c(rep(-2,5)), times=c(1:5), r= 0.06)
bondPriceDefCoupon(100,c(rep(-2,5)), c(1:5), 0.06)
Calculates the Price of Bond making Excess Coupon Payments.
Description
Calculates the Price of Bond making Excess Coupon Payments.
Usage
bondPriceExcessCoupon(couponExcess, times, r)
Arguments
couponExcess |
A vector. |
times |
A vector. |
r |
A number. |
Details
For Example, if the present value of excess is +7.260, discounted using the required yield per period, then the price of the bond is 107.260 (= 100 + 7.260)(Adams & Smith, 2019).
Based on the information presented, the method bondPriceExcessCoupon()
is developed to compute the Price of Bond making excess Coupon Payments. So, bondPriceExcessCoupon()
gives the Price of Bond making excess Coupon Payments for values passed to its three arguments. Here, couponExcess
represents the dollar value of excess coupon payments, times
is a vector of number of years ranging from 1 to any specified number of years till maturity, and r
is Market Discount Rate or Required Rate of return. The output is rounded off to three decimal places. The given examples show various ways in which the arguments can be passed to bondPriceExcessCoupon()
.
Value
Input values to three arguments couponExcess
, times
and r
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577 bondPriceExcessCoupon(couponExcess=c(2,2,2,2), times=c(1,2,3,4), r= 0.04) bondPriceExcessCoupon(couponExcess=c(2,2,2,2), times=c(1:4), r= 0.04) bondPriceExcessCoupon(couponExcess=c(rep(2,4)), times=c(1:4), r= 0.04) bondPriceExcessCoupon(c(rep(2,4)), c(1:4), 0.04)
Calculates Present Value or the Price of the Bond paying Annual Coupons.
Description
Calculates Present Value or the Price of the Bond paying Annual Coupons.
Usage
bondPriceYearlyCoupons(couponPmt, times, bondMaturityVal, n, r)
Arguments
couponPmt |
A vector. |
times |
A vector. |
bondMaturityVal |
A number. |
n |
A number. |
r |
A number. |
Details
As mentioned by Adams and Smith (2019), on a traditional (option-free) fixed-rate bond, the promised future cash flows consist of two things: one is a coupon interest payment and another is repayment of the full principal at maturity. The coupon payments are on regularly scheduled dates, for example, an annual payment bond might pay interest on 15 June of each year for five years. The final coupon typically is paid together with the full principal on the maturity date. So, the price of the bond is the present value of the remaining cash flows discounted at the Market Discount Rate. The market discount rate is the rate of return required by investors given the risk of the investment in the bond. It is also called the required yield, or the required rate of return. For example, suppose the coupon rate on a bond is 4 percent and the payment is made once a year. If the time-to-maturity is five years and the market discount rate is 6 percent, the price of the bond is 91.575 per 100 of par value. The par value is the amount of principal on the bond. The price of the bond is the sum of the present values of the five coupon payments and maturity value. The price per 100 of par value may be interpreted as the percentage of par value. If the par value is USD100,000, the coupon payments are USD4,000 each year and the price of the bond is USD91,575. Its price is 91.575 percent of par value.
Based on the information given, the method bondPriceYearlyCoupons()
is developed to compute the price of the bond which is present value or discounted value of the coupon payments promised by the issuer and the Par Value of the Bond. So, bondPriceYearlyCoupons()
gives Price of the bond for values passed to its five arguments. Here couponPmt
is the vector that has dollar values of Coupon Payments for periods till maturity, times
is a vector of number of years ranging from 1 to any specified number of years till maturity, bondMaturityVal
is amount of Par Value or Maturity Value of the Bond, n
represents number of years till maturity and r
is Market Discount Rate or Required Rate of return. The output is rounded off to three decimal places.
Value
Input values to five arguments couponPmt
, times
, bondMaturityVal
,n
and r
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
bondPriceYearlyCoupons(couponPmt=c(4,4,4,4,4), times=c(1,2,3,4,5),bondMaturityVal=100,n=5,r=0.06)
bondPriceYearlyCoupons(couponPmt=c(4,4,4,4,4), times=c(1:5),bondMaturityVal=100,n=5,r=0.06)
bondPriceYearlyCoupons(couponPmt=c(rep(4,5)), times=c(1:5), bondMaturityVal=100,n=5,r=0.06)
bondPriceYearlyCoupons(c(rep(4,5)), c(1:5), 100,5,0.06)
Calculates estimated change in the Full Price of the Bond (in currency units) for a given Money Duration and a given change in the Yield-To-Maturity.
Description
Calculates estimated change in the Full Price of the Bond (in currency units) for a given Money Duration and a given change in the Yield-To-Maturity.
Usage
changePvFullBondPrice(moneyDuration, changeYtm)
Arguments
moneyDuration |
A number. |
changeYtm |
A number. |
Details
According to information provided by Adams and Smith (2019), the method changePvFullBondPrice()
is developed to compute estimated change in the Full Price of the Bond (in currency units) for a given Money Duration and a given Change in the Yield-To-Maturity.
Value
Input values to two arguments moneyDuration
and changeYtm
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Understanding Fixed‑Income Risk and Return. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 237-299). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
changePvFullBondPrice(moneyDuration=542.3638,changeYtm=0.01)
changePvFullBondPrice(moneyDuration=542.3638,changeYtm=-0.01)
Calculates Add-on Rate (AOR) of Money Market Instruments.
Description
Calculates Add-on Rate (AOR) of Money Market Instruments.
Usage
computingAORMoneyMarketInstr(pvMmi, fvMmi, daysToMaturity, daysInYear)
Arguments
pvMmi |
A number. |
fvMmi |
A number. |
daysToMaturity |
A number. |
daysInYear |
A number. |
Details
According to Adams and Smith (2019), bond yields-to-maturity are annualized and compounded. Yield measures in the money market are annualized but not compounded. Instead, the rate of return on a money market instrument is stated on a simple interest basis. In general, quoted money market rates are either discount rates or add-on rates. Although market conventions vary around the world, commercial paper, Treasury bills (a US government security issued with a maturity of one year or less), and bankers’
acceptances are often quoted on a discount rate basis. Bank certificates of deposit (repos) and indexes, such as Libor and Euribor, are quoted on an add-on rate basis.
In light of the available information, the method computingAORMoneyMarketInstr()
is developed to compute Add-on Rate (AOR) of Money Market Instruments for the values passed to its four arguments. Here, pvMmi
is present value of the Money Market Instrument, fvMmi
is future value of the Money Market Instrument (that is sale price and not the redemption amount), daysToMaturity
is number of days till the maturity, and daysInYear
is taken to be 365. For example, an output value of 0.04934 means that the rate of return, stated on a 365-day add-on rate basis, is 4.934 percent.
Value
Input values to four arguments pvMmi
,fvMmi
, daysToMaturity
and daysInYear
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
computingAORMoneyMarketInstr(pvMmi=10000000,fvMmi=10060829,daysToMaturity=45,daysInYear=365)
Calculates Price Value of a Basis Point (PVBP) for the Bond.
Description
Calculates Price Value of a Basis Point (PVBP) for the Bond.
Usage
computingBondPVBP(pvPlus, pvMinus)
Arguments
pvPlus |
A number. |
pvMinus |
A number. |
Details
According to information provided by Adams and Smith (2019), the method computingBondPVBP()
is developed to compute Price Value of a Basis Point (PVBP) for the Bond.
Value
Input values to two arguments pvPlus
and pvMinus
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Understanding Fixed‑Income Risk and Return. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 237-299). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
computingBondPVBP(pvPlus=100.594327,pvMinus=100.765123)
Calculates the Yield-To-Maturity (value up to five decimal places) of the Bond paying Annual Coupons.
Description
Calculates the Yield-To-Maturity (value up to five decimal places) of the Bond paying Annual Coupons.
Usage
computingBondYtmRateFiveDecimalPlaces(couponPmt, mv, bondPv, period)
Arguments
couponPmt |
A number. |
mv |
A number. |
bondPv |
A number. |
period |
A number. |
Details
According to Adams and Smith (2019), the yield-to-maturity is the rate of return on the bond to an investor given three critical assumptions: 1. The investor holds the bond to maturity.2. The issuer makes all the coupon and principal payments in the full amount on the scheduled dates. Therefore, the yield-to-maturity is the promised yield—the yield assuming the issuer does not default on any of the payments.3. The investor can reinvest coupon payments at that same yield. This is a characteristic of an internal rate of return.
In view of this, the method computingBondYtmRateFiveDecimalPlaces()
computes the YTM of a Bond. So, computingBondYtmRateFiveDecimalPlaces()
gives the YTM for values passed to its four arguments. Here, couponPmt
represents the dollar value of Coupon Payment, mv
is Maturity Value, bondPv
is present value of the bond, and period
is number of years. The output is rounded off to five decimal places.
Value
Input values to four arguments couponPmt
, mv
, bondPv
, and period
.
Author(s)
MaheshP Kumar, Clare Matuka
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
computingBondYtmRateFiveDecimalPlaces (couponPmt=5, mv=100, bondPv=105, period =4)
computingBondYtmRateFiveDecimalPlaces (5,100,105,4)
computingBondYtmRateFiveDecimalPlaces (1.25,100,98.175677,6)
computingBondYtmRateFiveDecimalPlaces (3.5,100,103.75,4)
computingBondYtmRateFiveDecimalPlaces (2.25,100,96.50,6)
computingBondYtmRateFiveDecimalPlaces (5,100,102.96,3)
computingBondYtmRateFiveDecimalPlaces (8,100,90.393,3)
computingBondYtmRateFiveDecimalPlaces (couponPmt=5.5, mv=100, bondPv=107.50, period=3)
computingBondYtmRateFiveDecimalPlaces (couponPmt=4.5, mv=100, bondPv=104.75, period=5)
computingBondYtmRateFiveDecimalPlaces (couponPmt=6, mv=100, bondPv=100.125, period=2)
computingBondYtmRateFiveDecimalPlaces (couponPmt=4, mv=100, bondPv=100.750, period=2)
Calculates the Yield-To-Maturity (value up to six decimal places) of the Bond paying Annual Coupons.
Description
Calculates the Yield-To-Maturity (value up to six decimal places) of the Bond paying Annual Coupons.
Usage
computingBondYtmRateSixDecimalPlaces(couponPmt, mv, bondPv, period)
Arguments
couponPmt |
A number. |
mv |
A number. |
bondPv |
A number. |
period |
A number. |
Details
According to Adams and Smith (2019), the yield-to-maturity is the rate of return on the bond to an investor given three critical assumptions:
The investor holds the bond to maturity.
The issuer makes all the coupon and principal payments in the full amount on the scheduled dates. Therefore, the yield-to-maturity is the promised yield which is the yield assuming the issuer does not default on any of the payments.
The investor can reinvest coupon payments at that same yield. This is a characteristic of an internal rate of return. In view of this, the method
computingBondYtmRateSixDecimalPlaces()
computes the YTM of a Bond. So,computingBondYtmRateSixDecimalPlaces()
gives the YTM for values passed to its four arguments. Here,couponPmt
represents the dollar value of Coupon Payment,mv
is Maturity Value,bondPv
is present value of the bond, andperiod
is number of years. The output is rounded off to six decimal places.
Value
Input values to four arguments couponPmt
, mv
, bondPv
, and period
.
Author(s)
MaheshP Kumar, Clare Matuka
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
computingBondYtmRateSixDecimalPlaces (couponPmt=5, mv=100, bondPv=105, period=4)
computingBondYtmRateSixDecimalPlaces (5,100,105,4)
computingBondYtmRateSixDecimalPlaces (1.25,100,98.175677,6)
computingBondYtmRateSixDecimalPlaces (3.5,100,103.75,4)
computingBondYtmRateSixDecimalPlaces (2.25,100,96.50,6)
computingBondYtmRateSixDecimalPlaces (5,100,102.96,3)
computingBondYtmRateSixDecimalPlaces (8,100,90.393,3)
computingBondYtmRateSixDecimalPlaces (couponPmt=5.5, mv=100, bondPv=107.50, period=3)
computingBondYtmRateSixDecimalPlaces (couponPmt=4.5, mv=100, bondPv=104.75, period=5)
Calculates the G-Spread which is the spread between the yields-to-maturity on the corporate bond and that of government bond having the same maturity.
Description
Calculates the G-Spread which is the spread between the yields-to-maturity on the corporate bond and that of government bond having the same maturity.
Usage
computingGspread(ytmCorpBond, ytmBenchGovtBond)
Arguments
ytmCorpBond |
A number. |
ytmBenchGovtBond |
A number. |
Details
According to information provided by Adams and Smith (2019), the method computingGspread()
is developed to calculate G-Spread for given values of yields-to-maturity on the corporate bond and that of government bond having the same maturity. Here, ytmCorpBond
stands for yields-to-maturity on the corporate bond and ytmBenchGovtBond
denotes yields-to-maturity on government bond with the same maturity. An output with the value 0.02327 means G-Spread of 232.7 bps.
Value
Input values to two arguments ytmCorpBond
and ytmBenchGovtBond
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
computingGspread(ytmCorpBond=0.05932, ytmBenchGovtBond=0.03605)
Calculates Par Rate using the given Spot Rates.
Description
Calculates Par Rate using the given Spot Rates.
Usage
computingParRate(spotRates, times, mv, pv, n)
Arguments
spotRates |
A vector. |
times |
A vector. |
mv |
A number. |
pv |
A number. |
n |
A number. |
Details
As explained by Adams and Smith (2019), suppose the spot rates on government bonds are 5.263 percent for one year, 5.616 percent for two years, 6.359 percent for three years, and 7.008 percent for four years. These are effective annual rates. Based on these rated, the one-year par rate is 5.263 percent,the two-year par rate is 5.606 percent,and three-year and four-year par rates are 6.306 percent and 6.899 percent, respectively.
In light of the information given, the method computingParRate()
is developed to calculate Par Rate using the given Spot Rates. So, computingParRate()
gives Par Rate for values passed to its five arguments. Here, spotRates
is vector of the given spot rates, times
is a vector of number of years ranging from 1 to any specified number of years, mv
is the Maturity Value (Future Value) is taken as 100, pv
is the Present Value or the Price is also taken as 100 to signify the fact that bond is trading at par of the Future Value, and n
is the number of years. The output is rounded off to three decimal places. For example, an output value of 6.899 means that the a rate of 6.899 percent will cause the bond to trade at par to its Maturity Value. In other words, par rate causes the market price of bond to be at par of its face value.
Value
Input values to five arguments spotRates
, times
,mv
,pv
and n
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
computingParRate(spotRates=c(0.05263),times=c(1),mv=100,pv=100,n=1)
computingParRate(spotRates=c(0.05263,0.05616),times=c(1,2),mv=100,pv=100,n=2)
computingParRate(spotRates=c(0.05263,0.05616,0.06359),times=c(1,2,3), mv=100,pv=100,n=3)
computingParRate(spotRates=c(0.05263,0.05616,0.06359,0.07008),times=c(1,2,3,4),mv=100,pv=100,n=4)
computingParRate(spotRates=c(0.10,0.12,0.13,0.14,0.19),times=c(1,2,3,4,5),mv=100,pv=100,n=5)
Calculates Discount Rate of Money Market Instrument.
Description
Calculates Discount Rate of Money Market Instrument.
Usage
computingQuotedDiscRateMMI(pvMmi, fvMmi, daysToMaturity, daysInYear)
Arguments
pvMmi |
A number. |
fvMmi |
A number. |
daysToMaturity |
A number. |
daysInYear |
A number. |
Details
It is important to understand that discount rate has a unique meaning in the money market. In general, discount rate means interest rate used to calculate a present value such as market discount rate. In the money market however, discount rate is a specific type of quoted rate (Adams & Smith, 2019).
Based on the given information, the method computingQuotedDiscRateMMIr()
is developed to compute Discount Rate of Money Market Instrument for the values passed to its four arguments. Here, pvMmi
is present value of the Money Market Instrument, fvMmi
is future value of the Money Market Instrument (that is sale price and not the redemption amount), daysToMaturity
is number of days till the maturity, and daysInYear
is taken to be 360. For example, an output value of 0.0225 represents a quoted discount rate of 2.25 percent for an assumed 360-day year.
Value
Input values to four arguments pvMmi
,fvMmi
, daysToMaturity
and daysInYear
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
computingQuotedDiscRateMMI(pvMmi=9943125,fvMmi=10000000,daysToMaturity=91,daysInYear=360)
Calculates Yield-To-Call (YTC).
Description
Calculates Yield-To-Call (YTC).
Usage
computingYTC(couponPmt, callableVal, bondPv, maturityYears, ytcYears)
Arguments
couponPmt |
A number. |
callableVal |
A number. |
bondPv |
A number. |
maturityYears |
A number. |
ytcYears |
A number. |
Details
If a fixed-rate bond contains an embedded option, other yield measures are used. An embedded option is part of the security and cannot be removed and sold separately. For example, a callable bond contains an embedded call option that gives the issuer the right to buy the bond back from the investor at specified prices on pre-determined dates. The preset dates usually coincide with coupon payment dates after a call protection period. A call protection period is the time during which the issuer of the bond is not allowed to exercise the call option. Suppose that a seven-year, 8 percent annual coupon payment bond is first callable in four years. That gives the investor four years of protection against the bond being called. After the call protection period, the issuer might exercise the call option if interest rates decrease, or if the issuer’s credit quality improves. Those circumstances allow the issuer to refinance the debt at a lower cost of funds. The pre-set prices that the issuer pays if the bond is called often are at a premium above par. For example, the call schedule for this bond might be that it is first callable at 102 (per 100 of par value) on the coupon payment date in four years, callable at 101 in five years, and at par value on coupon payment dates thereafter.The yield-to-maturity on this seven-year, 8 percent callable bond is just one of several traditional yield measures for the investment. Others are yield-to-first-call, yield-to-second call, and so on. If the current price for the bond is 105 per 100 of par value, the yield-to-first call in four years is 6.975 percent (Adams & Smith, 2019).
In light of the information given, the method computingYTC()
is developed to compute the bond's Yield-To-Call (YTC) for the values passed to its five arguments. Here, couponPmt
is dollar value of the coupon payment, callableVal
is dollar of at which the bond will be called at, bondPv
represents present value or price of the bond, maturityYears
is number of years to Maturity, and ytcYears
is number of years to call.
Value
Input values to five arguments couponPmt
,callableVal
, bondPv
, maturityYears
, and ytcYears
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
computingYTC (couponPmt=8,callableVal=102,bondPv=105,maturityYears=7,ytcYears=4)
computingYTC (couponPmt=8,callableVal=101,bondPv=105,maturityYears=7,ytcYears=5)
computingYTC (couponPmt=8,callableVal=100,bondPv=105,maturityYears=7,ytcYears=6)
computingYTC (couponPmt=8,callableVal=100,bondPv=105,maturityYears=7,ytcYears=7)
Calculates Z-Spread.
Description
Calculates Z-Spread.
Usage
computingZspread(coupons, mv, bondPv, n, spots)
Arguments
coupons |
A number. |
mv |
A number. |
bondPv |
A number. |
n |
A number. |
spots |
A vector. |
Details
In fixed-income security analysis, it is important to understand why bond prices and yields-to-maturity change. In this context, it is useful to separate a yield-to-maturity into two components: the benchmark and the spread. The benchmark yield for a fixed-income security with a given time-to-maturity is the base rate which is often a government bond yield. The spread is the difference between the yield-to-maturity and the benchmark. So a Z-spread (zero-volatility spread) is based on the all benchmark spot rates taken from the spot curve. It is the constant spread that is added to each spot rate such that the present value of the cash flows matches the price of the bond (Adams & Smith, 2019).
According to information provided by Adams and Smith (2019), the method computingZspread()
is developed to calculate Z-Spread based on the entire benchmark spot curve. Here, coupons
stands for dollar value of the Coupon Payment, mv
is maturity value of the bond, bondPv
is present value or price of the bond, n
is number of years, and spots
is vector of spot rates taken from the spots curve. An output with the value 0.0234 means Z-Spread of 234 bps.
Value
Input values to five arguments coupons
,mv
,bondPv
, n
and spots
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
computingZspread(coupons=5,mv=100, bondPv=92.38,n=3,spots=c(0.0486,0.0495,0.0565))
computingZspread(coupons=50,mv=1000,bondPv=923.8,n=3,spots=c(0.0486,0.0495,0.0565))
computingZspread(coupons= 6,mv=100,bondPv=100.75,n=2,spots=c(0.021,0.03635))
Converting an Annual Percentage Rate (APR) from a periodicity of 2 to another periodicity of 4, 12, or 1.
Description
Converting an Annual Percentage Rate (APR) from a periodicity of 2 to another periodicity of 4, 12, or 1.
Usage
convertAPRtoDifferentPeriodcity(givenAPR, givenPeriodicity, desiredPeriodicity)
Arguments
givenAPR |
A number. |
givenPeriodicity |
A number. |
desiredPeriodicity |
A number. |
Details
There are many ways to measure the rate of return on a fixed-rate bond investment. In general, an annualized and compounded yield on a fixed-rate bond depends on the assumed number of periods in the year which is called the periodicity of the annual rate. Typically, the periodicity matches the frequency of coupon payments. A bond that pays semi-annual coupons has a stated annual yield-to-maturity for a periodicity of two—the rate per semi-annual period times two A bond that pays quarterly coupons has a stated annual yield for a periodicity of four—the rate per quarter times four. It is always important to know the periodicity of a stated annual rate. The most common periodicity for USD-denominated bond yields is two because most bonds in the USD market make semi-annual coupon payments. An annual rate having a periodicity of two is known as a semi-annual Bond Basis Yield (BBY), or semi-annual Bond Equivalent Yield (BEY). An important tool used in fixed-income analysis is to convert an annual yield from one periodicity to another. These are called periodicity, or compounding, conversions. To compare this bond with others, an analyst converts this annualized yield-to-maturity to quarterly and monthly compounding (Adams & Smith, 2019).
The method convertAPRtoDifferentPeriodcity()
is developed convert an Annual Percentage Rate (APR) from a given periodicity of say m = 2 to another desired periodicity say of n = 4 or n = 12 or n=1.
For Example, it converts 4.96 percent from a periodicity of two to a periodicity of four or converts 4.93 percent from a periodicity of four to a periodicity of two or converts 4.96 percent from a periodicity of two to a periodicity of one and so, on.
So, convertAPRtoDifferentPeriodcity()
gives Annual Percentage Rate of the desired periodicity for values passed to its three arguments. Here, givenAPR
represents given Annual Percentage Rate, givenPeriodicity
represents given periodicity, and desiredPeriodicity
desired periodicity for which the Annual Percentage Return is to be computed. The output is rounded off to four decimal places.
Value
Input values to three arguments givenAPR
, givenPeriodicity
and desiredPeriodicity
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
convertAPRtoDifferentPeriodcity(givenAPR=0.0496,givenPeriodicity=2,desiredPeriodicity=4)
convertAPRtoDifferentPeriodcity(givenAPR=0.0493,givenPeriodicity=4,desiredPeriodicity=2)
convertAPRtoDifferentPeriodcity(givenAPR=0.0496,givenPeriodicity=2,desiredPeriodicity=1)
convertAPRtoDifferentPeriodcity(givenAPR=0.1063,givenPeriodicity=2,desiredPeriodicity=4)
convertAPRtoDifferentPeriodcity(givenAPR=0.1049,givenPeriodicity=4,desiredPeriodicity=2)
convertAPRtoDifferentPeriodcity(givenAPR=0.1063,givenPeriodicity=2,desiredPeriodicity=1)
Calculates Discounted Value of Coupon Payments of the Bond using Market Discount Rate or the Required Rate of Return.
Description
Calculates Discounted Value of Coupon Payments of the Bond using Market Discount Rate or the Required Rate of Return.
Usage
disCouponPmtsBond(couponPmt, times, r)
Arguments
couponPmt |
A vector. |
times |
A vector. |
r |
A number. |
Details
Bonds are a type of financial instrument in which the issuer under the contractual obligation agrees to pay the interest on the money borrowed from the investor and repay the amount borrowed through the issued bond. Bonds are also known as fixed-income securities because there is a contractual obligation for the issuer to pay interest at the specified Coupon Rate. This Coupon Rate is also called the nominal rate or the contract rate. Although Coupon is specified as a percentage; however, it is the dollar value of the Coupon Payment that is computed by multiplying the coupon rate with the par value of the debt instrument. For example, the interest payment for a debt instrument with a 5 percent coupon rate and a par value of $1,000 is $50 (5 percent times $1,000). The frequency of interest payments varies by the type of debt instrument. In the United States, the usual practice for bonds is for the issuer to pay the coupon interest in two semi-annual installments. Mortgage-backed securities and asset-backed securities typically pay interest monthly. For bonds issued in some markets outside the United States,Coupon Payments are made only once per year. Loan interest payments can be customized in any manner (Fabozzi, 2008).
As further described by Adams and Smith (2019), an investor in a fixed-Rate bond receives the promised coupon that is the main source of return. Coupon Payments are based on the coupon rate and discounting is done at the market discount rate, required yield, or required rate of return.
Based on this, the method disCouponPmtsBond()
is developed to compute the present value or discounted value of the coupon payments promised by the issuer. So, disCouponPmtsBond()
gives the discounted value of Coupon Payments to be received by the Investor till the maturity of the bond for values passed to its three arguments. Here couponPmt
is the vector that has dollar values of Coupon Payments for periods till maturity, times
is a vector of number of years ranging from 1 to any specified number of years till maturity and r
is Market Discount Rate or Required Rate of return. The output is rounded off to three decimal places.
Value
Input values to three arguments couponPmt
, times
and r
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Fabozzi,F.J. (2008). Handbook of Finance: Financial Markets and Instruments. John Wiley & Sons, Incorporated. ISBN 9780470078143.
Examples
disCouponPmtsBond(couponPmt=c(4,4,4,4,4), times=c(1,2,3,4,5), r=0.06)
disCouponPmtsBond(couponPmt=c(4,4,4,4,4), times=c(1:5), r=0.06)
disCouponPmtsBond(couponPmt=c(rep(4,5)), times=c(1:5), r=0.06)
disCouponPmtsBond(c(rep(4,5)), c(1:5),0.06)
Calculates the Discounted Value of the the Par Value of the Bond or the amount to be paid at the maturity of the Bond using the Market Discount Rate.
Description
Calculates the Discounted Value of the the Par Value of the Bond or the amount to be paid at the maturity of the Bond using the Market Discount Rate.
Usage
disMaturityValBond(bondMaturityVal, n, r)
Arguments
bondMaturityVal |
A number. |
n |
A number. |
r |
A number. |
Details
The par value of a bond is the amount that the issuer agrees to repay the holder of the debt instrument by the maturity date. This amount is also referred to as the principal amount, face value, or maturity value. Bonds can have any par value. Because debt instruments can have a different par value, the practice is to quote the price of a debt instrument as a percentage of its par value. A value of 100 means 100% of par value. So, for example, if a debt instrument has a par value of $1,000 and is selling for $900, it would be said to be selling at 90. If a debt instrument with a par value of 5,000 is selling for $5,500, it is said to be selling for 110 (Fabozzi, 2008).
Based on this, the method disMaturityValBond()
is developed to compute the present value or discounted value of the Par Value of the Bond. So, disMaturityValBond()
gives the discounted value of Par Value, Face Value, Maturity Value, or Principal amount for values passed to its three arguments. Here bondMaturityVal
is amount of Par Value or Maturity Value of the Bond, n
represents number of years till maturity and r
is Market Discount Rate or Required Rate of return. The output is rounded off to three decimal places.
Value
Input values to three arguments bondMaturityVal
, n
and r
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Fabozzi,F.J. (2008). Handbook of Finance: Financial Markets and Instruments. John Wiley & Sons, Incorporated. ISBN 9780470078143.
Examples
disMaturityValBond (bondMaturityVal=100,n=5,r=0.06)
disMaturityValBond (100,5,0.06)
Calculates Discount Margin of a Floating-Rate Note (FRN).
Description
Calculates Discount Margin of a Floating-Rate Note (FRN).
Usage
discMarginFRN(index, estRtrn, mvFRN, priceFRN, maturityYears, periodicity)
Arguments
index |
A number. |
estRtrn |
A number. |
mvFRN |
A number. |
priceFRN |
A number. |
maturityYears |
A number. |
periodicity |
A number. |
Details
According to information provided by Adams and Smith (2019), the method discMarginFRN()
is developed to compute Discount Margin of a Floating-Rate Note (FRN) for the values passed to its six arguments. Here, index
is reference rate, stated as an annual percentage rate,estRtrn
is a vector of estimated returns on FRN (this does not include repayment of the principal), mvFRN
represents Maturity Value, priceFRN
price of FRN, maturityYears
is number of years to Maturity, and periodicity
is periodicity of interest payments. The given examples show various ways in which the arguments can be passed to discMarginFRN()
.
Value
Input values to six arguments index
,estRtrn
, mvFRN
, priceFRN
, maturityYears
, and periodicity
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
discMarginFRN(index=0.0200,estRtrn=0.8125,mvFRN=100,priceFRN=98,maturityYears=4,periodicity=4)
discMarginFRN(0.0200,0.8125, 100, 98, 4, 4)
Calculates Effective Annual Rate (EAR) of a Zero-Coupon Bond for various values of Periodicity.
Description
Calculates Effective Annual Rate (EAR) of a Zero-Coupon Bond for various values of Periodicity.
Usage
earZcbVariousPeriodicity(
maturityVal,
yearsToMaturity,
ZCBprice,
desiredPeriodicity
)
Arguments
maturityVal |
A number. |
yearsToMaturity |
A number. |
ZCBprice |
A number. |
desiredPeriodicity |
A number. |
Details
This method, earZcbVariousPeriodicity()
is developed to compute an Effective Annual Rate (EAR) of a Zero-Coupon Bond for various values of Periodicity, for the values passed to its four arguments. Here, maturityVal
is Maturity Value of the Bond, yearsToMaturity
represents years to maturity, ZCBprice
represents price of Zero-Coupon Bond, and desiredPeriodicity
desired periodicity for which the Effective Annual Rate is to be computed. The output is rounded off to six decimal places.
Value
Input values to four arguments maturityVal
, yearsToMaturity
,ZCBprice
and desiredPeriodicity
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
earZcbVariousPeriodicity(maturityVal=100, yearsToMaturity=5, ZCBprice=80, desiredPeriodicity=1)
earZcbVariousPeriodicity(maturityVal=100, yearsToMaturity=5, ZCBprice=80, desiredPeriodicity=12)
earZcbVariousPeriodicity(maturityVal=100, yearsToMaturity=5, ZCBprice=80, desiredPeriodicity=4)
earZcbVariousPeriodicity(maturityVal=100, yearsToMaturity=5, ZCBprice=80, desiredPeriodicity=2)
Calculates the Effective Duration statistic of a Callable Bond.
Description
Calculates the Effective Duration statistic of a Callable Bond.
Usage
effDurtnCallableBond(pvBase, pvPlus, pvMinus, perChangeBenchYtm)
Arguments
pvBase |
A number. |
pvPlus |
A number. |
pvMinus |
A number. |
perChangeBenchYtm |
A number. |
Details
According to information provided by Adams and Smith (2019), the method effDurtnCallableBond()
is developed to calculate the Effective Duration statistic of a Callable Bond.
Value
Input values to four arguments pvBase
,pvPlus
,pvMinus
and perChangeBenchYtm
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Understanding Fixed‑Income Risk and Return. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 237-299). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
effDurtnCallableBond(pvBase=101.060489,pvPlus=99.050120,pvMinus=102.890738,perChangeBenchYtm=0.0025)
Calculates the percentage change in Full Price of the Bond for a given a change in its Yield-To-Maturity and Modified Duration statistic.
Description
Calculates the percentage change in Full Price of the Bond for a given a change in its Yield-To-Maturity and Modified Duration statistic.
Usage
estimatedPercentChangePVFullPrice(annualModifDuration, changeInAnnualYtm)
Arguments
annualModifDuration |
A number. |
changeInAnnualYtm |
A number. |
Details
According to information provided by Adams and Smith (2019), the method estimatedPercentChangePVFullPrice()
is developed to calculate the percentage change in Full Price of the Bond for a given a change in its Yield-To-Maturity and Modified Duration statistic.
Value
Input values to two arguments annualModifDuration
and changeInAnnualYtm
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Understanding Fixed‑Income Risk and Return. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 237-299). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
estimatedPercentChangePVFullPrice(annualModifDuration=6.126829,changeInAnnualYtm=0.01)
estimatedPercentChangePVFullPrice(annualModifDuration=6.3432,changeInAnnualYtm=-0.01)
Calculates desired extra compensation (in terms of bps) for a risky Bond as compared Annual Percentage Rate(APR) of a comparable Bond.
Description
Calculates desired extra compensation (in terms of bps) for a risky Bond as compared Annual Percentage Rate(APR) of a comparable Bond.
Usage
extraCompensationForHigherRisk(APRofRiskyBond, APRofComparableBond)
Arguments
APRofRiskyBond |
A number. |
APRofComparableBond |
A number. |
Details
The additional compensation for the greater risk in Bond B is 20.9 bps (0.10839 – 0.10630 = 0.00209) when the yields are stated on a semi-annual bond basis. The additional compensation is 20.4 bps (0.10696 – 0.10492 = 0.00204) when both are annualized for quarterly compounding (Adams & Smith, 2019).
In light of the information given, extraCompensationForHigherRisk()
desired extra compensation for a risky Bond as compared Annual Percentage Rate (APR) of a comparable Bond for values passed to its two arguments. Here, APRofRiskyBond
is given Annual Percentage Rate of risky bond, and APRofComparableBond
is given Annual Percentage Rate of comparable Bond. The output of 20.9 means 20.9 bps.
Value
Input values to two arguments APRofRiskyBond
and APRofComparableBond
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
extraCompensationForHigherRisk(APRofRiskyBond=0.10839,APRofComparableBond=0.10630)
Calculates Yearly Forward Rates using the given Spot Rates.
Description
Calculates Yearly Forward Rates using the given Spot Rates.
Usage
forwards(spots, yrsFRbegins, yrsFRapplies, t, n)
Arguments
spots |
A vector. |
yrsFRbegins |
A number. |
yrsFRapplies |
A number. |
t |
A vector. |
n |
A number. |
Details
According to information provided by Frank J. Fabozzi (2008), the method forwards()
is developed to calculate Forward Rates using the given Spot Rates. Here, spots
is vector of given spot rates, yrsFRbegins
is year in which Forward Rate begins (for example, a value of 1 would mean 1 year from now, and value of 2 would means two years from now), yrsFRapplies
means number of years for which the Forward Rate Applies (for example, a value for 1 means for 1 year and yrsFRapplies
value of 4 means for four years). So, yrsFRbegins=2
and yrsFRapplies=1
means computing implied Forward Rate of 2 years from now, for 1 year. This is also called as 1 year forward rate 2 years into future. Lastly, t
is a vector of number of years ranging from 1 to any specified number of years for which the Spot Rates are available, and n
is number of years under consideration.
For understanding the value of output, it is to be noted that in the first example, an output value of 0.1404 means 1 year from now, for 1 year the implied forward rate works out to be 14.04 percent. In the second example, an output value of 0.2124 means 2 years from now for 1 year the implied forward rate works out to be 21.24 percent (this is also called as 1 year forward rate, 2 years into future).In the third example, an output value of 0.2748 means 3 years from now for 1 year the implied forward rate works out to be 27.48 percent (this is also called as 1 year forward rate, 3 years into future).
Value
Input values to five arguments spots
,yrsFRbegins
,yrsFRapplies
, t
and n
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Fabozzi, F. J. (2008). Handbook of Finance: Financial Markets and Instruments. John Wiley & Sons.
Examples
forwards(spots=c(0.10,0.12,0.15,0.18,0.20,0.22,0.24,0.30),yrsFRbegins=1,yrsFRapplies=1,t=c(1:8),n=8)
forwards(spots=c(0.10,0.12,0.15,0.18,0.20,0.22,0.24,0.30),yrsFRbegins=2,yrsFRapplies=1,t=c(1:8),n=8)
forwards(spots=c(0.10,0.12,0.15,0.18,0.20,0.22,0.24,0.30),yrsFRbegins=3,yrsFRapplies=1,t=c(1:8),n=8)
forwards(spots=c(0.10,0.12,0.15,0.18,0.20,0.22,0.24,0.30),yrsFRbegins=4,yrsFRapplies=1,t=c(1:8),n=8)
forwards(spots=c(0.10,0.12,0.15,0.18,0.20,0.22,0.24,0.30),yrsFRbegins=5,yrsFRapplies=1,t=c(1:8),n=8)
forwards(spots=c(0.10,0.12,0.15,0.18,0.20,0.22,0.24,0.30),yrsFRbegins=6,yrsFRapplies=1,t=c(1:8),n=8)
forwards(spots=c(0.10,0.12,0.15,0.18,0.20,0.22,0.24,0.30),yrsFRbegins=1,yrsFRapplies=4,t=c(1:8),n=8)
forwards(spots=c(0.10,0.12,0.15,0.18,0.20,0.22,0.24,0.30),yrsFRbegins=3,yrsFRapplies=4,t=c(1:8),n=8)
forwards(spots=c(0.10,0.12,0.15,0.18,0.20,0.22,0.24,0.30),yrsFRbegins=5,yrsFRapplies=2,t=c(1:8),n=8)
Calculates Bond Price using the Forward Rate Input.
Description
Calculates Bond Price using the Forward Rate Input.
Usage
frPricing(cpns, fri, mv, n)
Arguments
cpns |
A vector. |
fri |
A vector. |
mv |
A number. |
n |
A number. |
Details
According to information provided by Adams and Smith (2019), the method frPricing()
is developed to compute the Bond Price using the Forward Rate Input. If 0y1y is 1.88 percent, 1y1y is 2.77 percent and 2y1y is 3.54 percent then the bond price works out to be 102.965 dollars. Here, cpns
is vector of coupon Payments for three years,fri
is a vector of that contains three values that serve as forward rate input factor,mv
is maturity Value, and n
is number of years that is 3 years.
Value
Input values to four arguments cpns
,fri
, mv
and n
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
frPricing(cpns=c(3.75,3.75,3.75),fri=c((1.0188),(1.0188*1.0277),(1.0188*1.0277*1.0354)),mv=100,n=3)
Calculates Future Value of Money Market Instruments using the given Discount Rate.
Description
Calculates Future Value of Money Market Instruments using the given Discount Rate.
Usage
fvMmiUsingQuotedDiscRate(pvMmi, daysToMaturity, daysInYear, mmQuotedDiscRate)
Arguments
pvMmi |
A number. |
daysToMaturity |
A number. |
daysInYear |
A number. |
mmQuotedDiscRate |
A number. |
Details
According to information provided by Adams and Smith (2019), the method fvMmiUsingQuotedDiscRate()
is developed to calculate Future Value of Money Market Instruments using the given Discount Rate for the values passed to its four arguments. Here, pvMmi
is present value of the Money Market Instrument, daysToMaturity
is number of days till the maturity, daysInYear
is taken to be 360, and mmQuotedDiscRate
is Money Market Quoted Discount Rate. For example, an output value of 10,000,000 dollars denotes the value of redemption amount to be paid at maturity for a Money Market Instrument that had the present value of 9,943,125 dollars.
Value
Input values to four arguments pvMmi
, daysToMaturity
,daysInYear
and mmQuotedDiscRate
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
fvMmiUsingQuotedDiscRate(pvMmi=9943125,daysToMaturity=91,daysInYear=360,mmQuotedDiscRate=0.0225)
Calculates Future Value of Money Market Instrument using Add-on Rate (AOR)
Description
Calculates Future Value of Money Market Instrument using Add-on Rate (AOR)
Usage
fvMoneyMarketInstrUsingAOR(pvMmi, daysToMaturity, daysInYear, AOR)
Arguments
pvMmi |
A number. |
daysToMaturity |
A number. |
daysInYear |
A number. |
AOR |
A number. |
Details
As explained by Adams and Smith (2019), suppose that a Canadian pension fund buys a 180-day bankers'
acceptance (BA) with a quoted add-on rate of 4.38 percent for a 365-day year. If the initial principal amount is 10 million dollars, the redemption amount due at maturity is found is 10,216,000 dollars which is calculated as the principal of 10 million dollars plus interest of 216,000 dollars. The interest is calculated as the principal times the fraction of the year times the annual add-on rate. It is added to the principal to determine the redemption amount.
In light of the available information, the method fvMoneyMarketInstrUsingAOR()
is developed to compute the Future Value of Money Market Instrument using Add-on Rate (AOR) for the values passed to its four arguments. Here, pvMmi
is present value of the Money Market Instrument, daysToMaturity
is number of days till the maturity, daysInYear
is taken to be 365, and AOR
is Add-on Rate.
Value
Input values to four arguments pvMmi
,daysToMaturity
, daysInYear
and AOR
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
fvMoneyMarketInstrUsingAOR(pvMmi=10000000,daysToMaturity=180,daysInYear=365,AOR=0.0438)
Calculates Macaulay Duration of a traditional Fixed-Rate Bond.
Description
Calculates Macaulay Duration of a traditional Fixed-Rate Bond.
Usage
macDuration(n, ytm, coupon, maturityVal, daysCpnToSettle, daysCouponPeriod)
Arguments
n |
A number. |
ytm |
A number. |
coupon |
A number. |
maturityVal |
A number. |
daysCpnToSettle |
A number. |
daysCouponPeriod |
A number |
Details
According to Adams and Smith (2019),the duration of a bond measures the sensitivity of the bond'
s full price (including accrued interest) to changes in bond'
s yield-to-maturity or, more generally, to changes in benchmark interest rates. Duration estimates changes in the bond price assuming that variables other than the yield-to-maturity or benchmark rates are held constant. Most importantly, the time-to-maturity is unchanged. Therefore, duration measures the instantaneous (or, at least, same-day) change in the bond price. The accrued interest is the same, so it is the flat price that goes up or down when the full price changes. Duration is a useful measure because it represents the approximate amount of time a bond would have to be held for the market discount rate at purchase to be realized if/when there is a single change in interest rate. If the bond is held for the duration period, an increase from reinvesting coupons is offset by a decrease in price if interest rates increase and a decrease from reinvesting coupons is offset by an increase in price if interest rates decrease.
Macaulay duration is named after Frederick Macaulay, the Canadian economist who first wrote about this measure in a book published in 1938. This method calculates the Macaulay duration of a traditional fixed-rate bond (Adams & Smith, 2019).
Here, n
is number of periods, ytm
is yield-to-maturity, coupon
is dollar value of the coupon payment,maturityVal
is maturity Value,daysCpnToSettle
is the number of days from the last coupon payment to the settlement date, and daysCouponPeriod
is the number of days in the coupon period.
Value
Input values to six arguments n
, ytm
, coupon
, maturityVal
, daysCpnToSettle
and daysCouponPeriod
.
Author(s)
MaheshP Kumar, Clare Matuka
References
Adams,J.F. & Smith,D.J.(2019). Understanding Fixed‑Income Risk and Return. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 237-299). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
macDuration(n=10,ytm=0.104,coupon=8,maturityVal=100,daysCpnToSettle=0, daysCouponPeriod=0)
macDuration(n=8*2,ytm=0.06/2,coupon=3,maturityVal=100,daysCpnToSettle=57,daysCouponPeriod=180)
#'Calculates Macaulay Duration using the Coupon Rate and Yield-To-Maturity.
Description
#'Calculates Macaulay Duration using the Coupon Rate and Yield-To-Maturity.
Usage
macDurationOnCouponRate(couponRate, n, ytm, tT)
Arguments
couponRate |
A number. |
n |
A number. |
ytm |
A number. |
tT |
A number. |
Details
According to information provided by Adams and Smith (2019), the method macDurationOnCouponRate()
is developed to calculate Macaulay Duration using the Coupon Rate and Yield-To-Maturity.
Here, couponRate
is Coupon Rate (for example, 0.03 means a coupon rate of 3 percent), n
is number of periods, ytm
is yield-to-maturity, and tT
is fraction that has the number of days from the last coupon payment to the settlement date in the numerator and the number of days in the coupon period in the denominator.
Value
Input values to four arguments couponRate
, n
, ytm
and tT
.
Author(s)
MaheshP Kumar, Clare Matuka
References
Adams,J.F. & Smith,D.J.(2019). Understanding Fixed‑Income Risk and Return. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 237-299). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
macDurationOnCouponRate(couponRate=0.03,n=8*2,ytm=0.06/2, tT=57/180)
macDurationOnCouponRate(couponRate=0.08,n=10, ytm=0.104, tT=0)
Calculates Macaulay Duration using the Full Price of the Bond and Yield-To-Maturity.
Description
Calculates Macaulay Duration using the Full Price of the Bond and Yield-To-Maturity.
Usage
macDurationOnFP(fp, n, ytm, cpn, mv, daysCpnToSettle, daysCouponPeriod)
Arguments
fp |
A number. |
n |
A number. |
ytm |
A number. |
cpn |
A number. |
mv |
A number. |
daysCpnToSettle |
A number. |
daysCouponPeriod |
A number |
Details
According to information provided by Adams and Smith (2019), the method macDurationOnFP()
is developed to calculate Macaulay Duration using the Full Price of the Bond and Yield-To-Maturity.
Here, fp
is Full Price of the bond, n
is number of periods, ytm
is yield-to-maturity, coupon
is dollar value of the coupon payment, maturityVal
is maturity Value, daysCpnToSettle
is the number of days from the last coupon payment to the settlement date, and daysCouponPeriod
is the number of days in the coupon period.
Value
Input values to seven arguments fp
, n
, ytm
, cpn
, mv
, daysCpnToSettle
and daysCouponPeriod
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Understanding Fixed‑Income Risk and Return. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 237-299). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
macDurationOnFP(fp=100.9404,n=8*2,ytm=0.06/2,cpn=3,mv=100,daysCpnToSettle=57,daysCouponPeriod=180)
macDurationOnFP(fp=85.5031,n=10, ytm=0.104, cpn=8, mv=100,daysCpnToSettle=0,daysCouponPeriod=0)
Calculate Present Value or the Price of illiquid Bond using Matrix Method.
Description
Calculate Present Value or the Price of illiquid Bond using Matrix Method.
Usage
matrixMethod(couponPmt, times, maturityVal, n, r1, r2)
Arguments
couponPmt |
A vector. |
times |
A vector. |
maturityVal |
A number. |
n |
A number. |
r1 |
A number. |
r2 |
A number |
Details
Some fixed-rate bonds are not actively traded. Therefore, there is no market price available to calculate the rate of return required by investors. The same problem occurs for bonds that are not yet issued. In these situations, it is common to estimate the market discount rate and price based on the quoted or flat prices of more frequently traded comparable bonds. These comparable bonds have similar times-to-maturity, coupon rates, and credit quality. This estimation process is called matrix pricing. Matrix pricing also is used in underwriting new bonds to get an estimate of the required yield spread over the benchmark rate. The benchmark rate typically is the yield-to-maturity on a government bond having the same, or close to the same, time-to-maturity (Adams & Smith, 2019).
Based on the information provided, matrixMethod()
is developed to compute the Price of Bond using Matrix Method. So, matrixMethod()
gives the Price of Bond using returns of two frequently traded comparable bonds for values passed to its six arguments. Here, couponPmt
represents the dollar values of all the coupon payments, times
is a vector of number of years ranging from 1 to any specified number of years till maturity, maturityVal
is Maturity Value, n
is number of years till maturity, r1
return on first comparable bond, and r2
is return on second comparable bond. The function computes simple average of the returns of two comparable bonds with r=(r1+r2)/2
, that is being used for Bond pricing. The output is rounded off to three decimal places.
Value
Input values to six arguments couponPmt
,times
, maturityVal
,n
, r1
and r2
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
matrixMethod(couponPmt=c(4.5,4.5,4.5,4.5),times=c(1:4),maturityVal=100,n=4,r1=0.02856,r2=0.03449)
Calculates Modified Duration statistic of a traditional Fixed-Rate Bond.
Description
Calculates Modified Duration statistic of a traditional Fixed-Rate Bond.
Usage
modifDuration(n, ytm, coupon, maturityVal, daysCpnToSettle, daysCouponPeriod)
Arguments
n |
A number. |
ytm |
A number. |
coupon |
A number. |
maturityVal |
A number. |
daysCpnToSettle |
A number. |
daysCouponPeriod |
A number |
Details
According to information provided by Adams and Smith (2019), the method modifDuration()
is developed to calculate Modified Duration statistic of a traditional Fixed-Rate Bond.
Here, n
is number of periods, ytm
is yield-to-maturity, coupon
is dollar value of the coupon payment, maturityVal
is maturity Value, daysCpnToSettle
is the number of days from the last coupon payment to the settlement date, and daysCouponPeriod
is the number of days in the coupon period.
Value
Input values to six arguments n
, ytm
, coupon
, maturityVal
, daysCpnToSettle
and daysCouponPeriod
.
Author(s)
MaheshP Kumar, Clare Matuka
References
Adams,J.F. & Smith,D.J.(2019). Understanding Fixed‑Income Risk and Return. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 237-299). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
modifDuration(n=10, ytm=0.104, coupon=8, maturityVal=100, daysCpnToSettle=0, daysCouponPeriod=0)
modifDuration(n=8*2,ytm=0.06/2,coupon=3,maturityVal=100,daysCpnToSettle=57,daysCouponPeriod=180)
Calculates Modified Duration using the Macaulay Duration and Yield-To-Maturity.
Description
Calculates Modified Duration using the Macaulay Duration and Yield-To-Maturity.
Usage
modifDurationUsingMacDuration(macDuration, ytm)
Arguments
macDuration |
A number. |
ytm |
A number. |
Details
According to information provided by Adams and Smith (2019), the method modifDurationUsingMacDuration()
is developed to calculate Modified Duration using the Macaulay Duration and Yield-To-Maturity.
Value
Input values to two arguments macDuration
and ytm
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Understanding Fixed‑Income Risk and Return. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 237-299). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
modifDurationUsingMacDuration(macDuration=12.6213,ytm=0.06/2)
modifDurationUsingMacDuration(macDuration=7.0029,ytm=0.104)
Calculates Money Duration of a Bond.
Description
Calculates Money Duration of a Bond.
Usage
moneyDuration(macDuration, ytm, pvFullBondPrice)
Arguments
macDuration |
A number. |
ytm |
A number. |
pvFullBondPrice |
A number. |
Details
According to information provided by Adams and Smith (2019), the method moneyDuration()
is developed to calculate Money Duration of a Bond.
Value
Input values to three arguments macDuration
,ytm
and pvFullBondPrice
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Understanding Fixed‑Income Risk and Return. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 237-299). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
moneyDuration(macDuration=7.0029,ytm=0.104,pvFullBondPrice=85.5031)
Calculates periodic discount rate of a Floating-Rate Note (FRN).
Description
Calculates periodic discount rate of a Floating-Rate Note (FRN).
Usage
periodicDiscRateFRN(estRtrn, mvFRN, priceFRN, maturityYears, periodicity)
Arguments
estRtrn |
A number. |
mvFRN |
A number. |
priceFRN |
A number. |
maturityYears |
A number. |
periodicity |
A number. |
Details
The method periodicDiscRateFRN
is developed to compute periodic discount rate of a Floating-Rate Note (FRN) for the values passed to its five arguments. Here, estRtrn
is a vector of estimated returns on FRN (this does not include repayment of the principal), mvFRN
represents Maturity Value, priceFRN
price of FRN, maturityYears
is number of years to Maturity, and periodicity
is periodicity of interest payments. The given examples show various ways in which the arguments can be passed to periodicDiscRateFRN()
.
Value
Input values to five arguments estRtrn
,mvFRN
, priceFRN
, maturityYears
, and periodicity
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
periodicDiscRateFRN(estRtrn=0.8125,mvFRN=100,priceFRN=98,maturityYears=4,periodicity=4)
periodicDiscRateFRN(0.8125, 100, 98, 4, 4)
Calculates Price of Commercial Paper.
Description
Calculates Price of Commercial Paper.
Usage
pricingCommercialPaper(
maturityVal,
daysToMaturity,
daysInYear,
mmQuotedDiscRate
)
Arguments
maturityVal |
A number. |
daysToMaturity |
A number. |
daysInYear |
A number. |
mmQuotedDiscRate |
A number. |
Details
According to information provided by Adams and Smith (2019), the method pricingCommercialPaper()
is developed to calculate the price of Commercial Paper for the values passed to its four arguments. Here, maturityVal
is maturity value of the Commercial Paper, daysToMaturity
is number of days till the maturity, daysInYear
is taken to be 360, and mmQuotedDiscRate
is money market quoted Discount Rate. For example, an output value of 98.56 means that the price of the commercial paper is 98.56 dollars per 100 dollars of face value.
Value
Input values to four arguments maturityVal
, daysToMaturity
, daysInYear
and mmQuotedDiscRate
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
pricingCommercialPaper(maturityVal=100,daysToMaturity=90,daysInYear=360,mmQuotedDiscRate=0.0576)
Calculates Price of a Floating-Rate Note (FRN).
Description
Calculates Price of a Floating-Rate Note (FRN).
Usage
pricingFRN(estRtrn, t, mv, maturityPeriod, estDisc)
Arguments
estRtrn |
A vector. |
t |
A vector. |
mv |
A number. |
maturityPeriod |
A number. |
estDisc |
A number. |
Details
Floating-rate notes are very different from a fixed-rate bond. The interest payments on a floating rate note, which often is called a floater or an FRN, are not fixed. Instead, they vary from period to period depending on the current level of a reference interest rate. The interest payments could go up or down; that is why they “
float."
In principle, a floater has a stable price even in a period of volatile interest rates. With a traditional fixed-income security, interest rate volatility affects the price because the future cash flows are constant. With a floating rate note, interest rate volatility affects future interest payments. The valuation of a floating rate note needs a pricing model. Suppose that the yield spread required by investors is 40 bps over the reference rate, DM = 0.0040. The assumed discount rate per period is 0.825 percent. For N = 4, the FRN is priced at 100.196 per 100 of par value. This floater is priced at a premium above par value because the quoted margin is greater than the discount margin (Adams & Smith, 2019).
Based on the information provided, the method pricingFRN()
is developed to compute Price of a Floating-Rate Note (FRN) for the values passed to its five arguments. Here, estRtrn
is a vector of estimated returns on FRN (this does not include repayment of the principal), t
is a vector of number of years ranging from 1 to any specified number of periods, mv
represents Maturity Value, maturityPeriod
is number of evenly spaced periods to maturity, and estDisc
is assumed discount rate per period. The given examples show various ways in which the arguments can be passed to pricingFRN()
.
Value
Input values to five arguments estRtrn
,t
, mv
, maturityPeriod
, and estDisc
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
pricingFRN(estRtrn=c(0.875,0.875,0.875,0.875),t=c(1,2,3,4),mv=100,maturityPeriod=4,estDisc=0.00825)
pricingFRN(estRtrn=c(0.875,0.875,0.875,0.875),t=c(1:4),mv=100,maturityPeriod=4,estDisc=0.00825)
pricingFRN(estRtrn=c(rep(0.875,4)), t=c(1:4),mv=100,maturityPeriod=4,estDisc=0.00825)
pricingFRN(c(rep(0.875,4)), c(1:4),100,4,0.00825)
Calculates Price of Money Market Instruments using Add-on Rate (AOR)
Description
Calculates Price of Money Market Instruments using Add-on Rate (AOR)
Usage
pricingMoneyMarketInstrUsingAOR(maturityVal, daysToMaturity, daysInYear, AOR)
Arguments
maturityVal |
A number. |
daysToMaturity |
A number. |
daysInYear |
A number. |
AOR |
A number. |
Details
Money market instruments are short-term debt securities. They range in time-to-maturity from overnight sale and repurchase agreements (repos) to one-year bank certificates of deposit. Money market instruments also include commercial paper, bankers'
acceptances, and time deposits based on such indexes as Libor or Euribor. Money market mutual funds are a major investor in such securities. These mutual funds can invest only in certain eligible money market securities. Bank certificates of deposit, repos, and such indexes as Libor and Euribor are quoted on an add-on rate basis (Adams & Smith, 2019).
In light of the information given, the method pricingMoneyMarketInstrUsingAOR()
is developed to compute the Price of Money Market Instruments using Add-on Rate (AOR) for the values passed to its four arguments. Here maturityVal
is maturity value of the Money Market Instrument, daysToMaturity
is number of days till the maturity, and daysInYear
is taken to be 365, and AOR
is Add-on Rate.
Value
Input values to four arguments maturityVal
,daysToMaturity
, daysInYear
and AOR
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
pricingMoneyMarketInstrUsingAOR(maturityVal=10216000,daysToMaturity=180,daysInYear=365,AOR=0.0438)
pricingMoneyMarketInstrUsingAOR(maturityVal=10216000,daysToMaturity=135,daysInYear=365,AOR=0.0417)
Calculates Present Value or the Price of the Bond paying Quarterly Coupons.
Description
Calculates Present Value or the Price of the Bond paying Quarterly Coupons.
Usage
pricingQtrlyCpnBond(qCoupons, times, mv, n, r)
Arguments
qCoupons |
A vector. |
times |
A vector. |
mv |
A number. |
n |
A number. |
r |
A number. |
Details
The method pricingQtrlyCpnBond()
is developed to compute the Price of Bond making quarterly Coupon Payments. So, pricingQtrlyCpnBond()
gives the Price of Bond making quarterly Coupon Payments for values passed to its five arguments. Here, qCoupons
represents the dollar values of all the quarterly coupon payments till maturity, times
is a vector of number of years ranging from 1 to any specified number of quarterly periods till maturity, that is from 1 to times(n * 4), mv
is Maturity Value, n
is number of years till maturity, and r
is annual Market Discount Rate or Required Rate of return. The output is rounded off to two decimal places. The given examples show various ways in which the arguments can be passed to pricingQtrlyCpnBond()
.
Value
Input values to five arguments qCoupons
, times
, mv
,n
and r
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
pricingQtrlyCpnBond(qCoupons=c(2,2,2,2,2,2,2,2), times=c(1,2,3,4,5,6,7,8) ,mv=100,n=2,r=0.06)
pricingQtrlyCpnBond(qCoupons=c(2,2,2,2,2,2,2,2), times=c(1:8) ,mv=100,n=2,r=0.06)
pricingQtrlyCpnBond(qCoupons=c(rep(2,8)), times=c(1:8) ,mv=100,n=2,r=0.06)
pricingQtrlyCpnBond(c(rep(2,8)), c(1:8) ,100,2,0.06)
Calculates Present Value or the Price of the Bond paying semi-annual Coupons.
Description
Calculates Present Value or the Price of the Bond paying semi-annual Coupons.
Usage
pricingSaCpnBond(saCoupons, times, maturityVal, n, r)
Arguments
saCoupons |
A vector. |
times |
A vector. |
maturityVal |
A number. |
n |
A number. |
r |
A number. |
Details
The method pricingSaCpnBond()
is developed to compute the Price of Bond making semi-annual Coupon Payments. So, pricingSaCpnBond()
gives the Price of Bond making semi-annual Coupon Payments for values passed to its five arguments. Here, saCoupons
represents the dollar values of all the semi-annual coupon payments till maturity, times
is a vector of number of years ranging from 1 to any specified number of semi-annual periods till maturity, that is from 1 to times (n * 2), maturityVal
is Maturity Value, n
is number of years till maturity, and r
is annual Market Discount Rate or Required Rate of return. The output is rounded off to two decimal places. The given examples show various ways in which the arguments can be passed to pricingSaCpnBond()
.
Value
Input values to five arguments saCoupons
, times
, maturityVal
,n
and r
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
pricingSaCpnBond(saCoupons=c(4,4,4,4,4,4), times=c(1,2,3,4,5,6) ,maturityVal=100,n=3,r=0.07)
pricingSaCpnBond(saCoupons=c(4,4,4,4,4,4), times=c(1:6) ,maturityVal=100,n=6,r=0.06)
pricingSaCpnBond(saCoupons=c(rep(4,6)), times=c(1:6) ,maturityVal=100,n=6,r=0.06)
pricingSaCpnBond(c(rep(4,6)), c(1:6) ,100,6,0.06)
Calculates Price of a Treasury bill (T-bill).
Description
Calculates Price of a Treasury bill (T-bill).
Usage
pricingTbill(maturityVal, daysToMaturity, daysInYear, mmQuotedDiscRate)
Arguments
maturityVal |
A number. |
daysToMaturity |
A number. |
daysInYear |
A number. |
mmQuotedDiscRate |
A number. |
Details
As explained by Adams and Smith (2019), suppose that a 91-day Treasury bill (T-bill) with a face value of USD 10 million is quoted at a discount rate of 2.25 percent for an assumed 360-day year. Here, the maturity Value is 10,000,000 (that stand for 10 million US dollars), days to Maturity are 91, days in a year are taken as 360, and money market quoted discount rate is 0.0225. When these values are passed to the method , pricingTbill
, the price of the T-bill works out to be 9,943,125 US dollars. In light of the information given, the method pricingTbill
is developed to compute the Price of a Treasury bill (T-bill) for the values passed to its four arguments. Here, maturityVal
is face value of the T-Bill, daysToMaturity
is number of days till the maturity, daysInYear
are taken to be 360, and mmQuotedDiscRate
is money market quoted Discount Rate.
Value
Input values to four arguments maturityVal
,daysToMaturity
, daysInYear
, and mmQuotedDiscRate
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
pricingTbill(maturityVal=10000000,daysToMaturity=91,daysInYear=360,mmQuotedDiscRate=0.0225)
Calculates Bond Price using given values of G-Spread and yield-to-maturity for the government benchmark bond.
Description
Calculates Bond Price using given values of G-Spread and yield-to-maturity for the government benchmark bond.
Usage
pricingWithGspread(coupons, t, mv, n, ytmBenchGovtBond, Gspread)
Arguments
coupons |
A vector. |
t |
A vector. |
mv |
A number. |
n |
A number. |
ytmBenchGovtBond |
A number. |
Gspread |
A number. |
Details
According to information provided by Adams and Smith (2019), the method pricingWithGspread
is developed to compute Bond Price using the given values of G-Spread and the yield-to-maturity for the government benchmark bond. Here, coupons
is vector of Coupon Payments,t
is a vector of number of years ranging from 1 to any specified number of years under consideration, mv
is maturity value of the bond, n
is number of years, ytmBenchGovtBond
is the yield-to-maturity for the government benchmark bond, and Gspread
is given value of G-spread.
Value
Input values to six arguments coupons
,t
, mv
,n
, ytmBenchGovtBond
, and Gspread
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
pricingWithGspread(coupons=c(6,6), t=c(1,2),mv=100,n=2,ytmBenchGovtBond=0.03605, Gspread=0.02327)
pricingWithGspread(coupons=c(5,5,5),t=c(1,2,3),mv=100,n=3,ytmBenchGovtBond=0.01913,Gspread=0.0285)
pricingWithGspread(coupons=c(60,60),t=c(1,2),mv=1000,n=2,ytmBenchGovtBond=0.03605,Gspread=0.02327)
Calculate Present Value or the Price of the Bond using Spot Rates.
Description
Calculate Present Value or the Price of the Bond using Spot Rates.
Usage
pricingWithSpots(coupons, spots, times, mv, n)
Arguments
coupons |
A vector. |
spots |
A vector. |
times |
A vector. |
mv |
A number. |
n |
A number. |
Details
When a fixed-rate bond is priced using the market discount rate, the same discount rate is used for each cash flow. A more fundamental approach to calculate the price of a bond is to use a sequence of market discount rates that correspond to the cash flow dates. These market discount rates are called spot rates. Spot rates are yields-to-maturity on zero-coupon bonds maturing at the date of each cash flow. Sometimes, these are called zero rates (Adams & Smith, 2019).
Based on the information provided, the method pricingWithSpots()
is developed to compute the Price of Bond using the Spot Rates. So, pricingWithSpots()
gives the Price of Bond using Spots for values passed to its five arguments. Here, coupons
represent the dollar values of all the coupon payments, spots
is a vector of spot rates, times
is a vector of number of years ranging from 1 to any specified number of years till maturity, mv
is Maturity Value, and n
is number of years till maturity. The output is rounded off to two decimal places. The given examples show various ways in which the arguments can be passed to pricingWithSpots()
.
Suppose that the one-year spot rate is 2 percent, the two-year spot rate is 3 percent, and the three-year spot rate is 4 percent. Then, the price of a three-year bond that makes a 5 percent annual coupon payment is 102.960.
Value
Input values to five arguments coupons
, spots
,times
, mv
, and n
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
pricingWithSpots(coupons=c(5,5,5), spots=c(0.02,0.03,0.04), times=c(1,2,3),mv=100,n=3)
pricingWithSpots(coupons=c(5,5,5), spots=c(0.02,0.03,0.04), times=c(1:3),mv=100,n=3)
pricingWithSpots(coupons=c(rep(5,3)), spots=c(0.02,0.03,0.04), times=c(1:3),mv=100,n=3)
pricingWithSpots(c(rep(5,3)), c(0.02,0.03,0.04), c(1:3),100,3)
pricingWithSpots(coupons=c(rep(10,2)), spots=c(0.01,0.02), times=c(1:2),mv=100,n=2)
Calculate Present Value or the Price of the Bond using two different Sequences of Spot Rates.
Description
Calculate Present Value or the Price of the Bond using two different Sequences of Spot Rates.
Usage
pricingWithSptSeq(cpns, sp, t, mv, n)
Arguments
cpns |
A vector. |
sp |
A vector. |
t |
A vector. |
mv |
A number. |
n |
A number. |
Details
The method pricingWithSptSeq()
is developed to compute the Price of Bond using Sequences of the Spot Rates. So, pricingWithSptSeq()
gives the Price of Bond using two different series or sequences of Spot Rates for values passed to its five arguments. Here cpns
represents the dollar values of all the coupon payments,sp
is a vector of spot rates, t
is a vector of number of years ranging from 1 to any specified number of years till maturity, mv
is Maturity Value, and n
is number of years till maturity. The output is rounded off to three decimal places. The given examples show various ways in which the arguments can be passed to pricingWithSptSeq()
.
Value
Input values to five arguments cpns
, sp
,t
, mv
, and n
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
pricingWithSptSeq (cpns=c(3,3,3,3), sp=c(0.0408,0.0401,0.0370,0.0350), t=c(1,2,3,4),mv=100,n=4)
pricingWithSptSeq (cpns=c(3,3,3,3), sp=c(0.0039,0.0140,0.0250,0.0360), t=c(1,2,3,4),mv=100,n=4)
pricingWithSptSeq (c(3,3,3,3), c(0.0408,0.0401,0.0370,0.0350), c(1,2,3,4),100,4)
pricingWithSptSeq (c(3,3,3,3), c(0.0039,0.0140,0.0250,0.0360), c(1,2,3,4),100,4)
pricingWithSptSeq (cpns=c(3,3,3,3), sp=c(0.0408,0.0401,0.0370,0.0350), t=c(1:4),mv=100,n=4)
pricingWithSptSeq (cpns=c(3,3,3,3), sp=c(0.0039,0.0140,0.0250,0.0360), t=c(1:4),mv=100,n=4)
pricingWithSptSeq (c(3,3,3,3), c(0.0408,0.0401,0.0370,0.0350), c(1:4),100,4)
pricingWithSptSeq (c(3,3,3,3), c(0.0039,0.0140,0.0250,0.0360), c(1:4),100,4)
pricingWithSptSeq (cpns=c(rep(3,4)), sp=c(0.0408,0.0401,0.0370,0.0350), t=c(1:4),mv=100,n=4)
pricingWithSptSeq (cpns=c(rep(3,4)), sp=c(0.0039,0.0140,0.0250,0.0360), t=c(1:4),mv=100,n=4)
pricingWithSptSeq (c(rep(3,4)), c(0.0408,0.0401,0.0370,0.0350), c(1:4),100,4)
pricingWithSptSeq (c(rep(3,4)), c(0.0039,0.0140,0.0250,0.0360), c(1:4),100,4)
Calculates Bond Price using the given value of a Z-Spread and spot rates taken from the spots curve.
Description
Calculates Bond Price using the given value of a Z-Spread and spot rates taken from the spots curve.
Usage
pricingWithZspread(cpns, spots, t, mv, n, zSprd)
Arguments
cpns |
A vector. |
spots |
A vector. |
t |
A vector. |
mv |
A number. |
n |
A number. |
zSprd |
A number. |
Details
According to information provided by Adams and Smith (2019), the method pricingWithZspread()
is developed to compute Bond Price using the given value of a Z-Spread and spot rates taken from the spots curve. Here, cpns
is vector of Coupon Payments, spots
is a vector of spot rates taken from the spots curve, t
is a vector of number of years ranging from 1 to any specified number of years under consideration, mv
is maturity value of the bond, n
is number of years for which spots are available, and zSprd
is given value of a Z-spread.
Value
Input values to six arguments cpns
, spots
,t
,mv
, n
and zSprd
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
pricingWithZspread(cpns=c(6,6),spots=c(0.0210,0.03635),t=c(1,2),mv=100,n=2,zSprd=0.023422)
pricingWithZspread(cpns=c(5,5,5),spots=c(0.0486,0.0495,0.0565),t=c(1,2,3),mv=100,n=3,zSprd=0.0234)
pricingWithZspread(cpns=c(rep(5,3)),spots=c(0.0486,0.0495,0.0565),t=c(1:3),mv=100,n=3,zSprd=0.0234)
pricingWithZspread(c(rep(5,3)),c(0.0486,0.0495,0.0565), c(1:3),100,3, zSprd=0.0234)
Calculates the Price of a Zero-Coupon Bond.
Description
Calculates the Price of a Zero-Coupon Bond.
Usage
pricingZeroCouponBond(maturityVal, n, r)
Arguments
maturityVal |
A number. |
n |
A number. |
r |
A number. |
Details
The method pricingZeroCouponBond()
is developed to compute the Price of a Zero-Coupon Bond. So, pricingZeroCouponBond()
gives the Price of a Zero-Coupon Bond for values passed to its three arguments. Here, maturityVal
represents the Maturity Value of the Bond, n
is number of years till maturity, and r
is Market Discount Rate or Required Rate of return. The output is rounded off to three decimal places. The given examples show various ways in which the arguments can be passed to pricingZeroCouponBond()
for two different bonds.
Value
Input values to three arguments maturityVal
, n
and r
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
pricingZeroCouponBond(maturityVal=100, n=10, r=0.02)
pricingZeroCouponBond(100, 10, 0.02)
pricingZeroCouponBond(100, 60, 0.02527)
pricingZeroCouponBond(maturityVal=100, n=60, r=0.02527)
Calculates the Present Value of the Deficiency as result of lower Coupon Payments as compared that of the Market.
Description
Calculates the Present Value of the Deficiency as result of lower Coupon Payments as compared that of the Market.
Usage
pvCouponDeficiency(couponDeficiency, times, r)
Arguments
couponDeficiency |
A vector. |
times |
A vector. |
r |
A number. |
Details
Price of a fixed-rate bond, relative to par value, depends on the relationship of the coupon rate to the market discount rate. When the coupon rate is less than the market discount rate, the bond is priced at a discount below par value. Coupon rate indicates the amount the issuer promises to pay the bondholders each year in interest. The market discount rate reflects the amount investors need to receive in interest each year in order to pay full par value for the bond (Adams & Smith, 2019). If a bond pays coupons at 4 percent, whereas the the market discount rate is 6 percent then this bond has coupon deficiency of 2 percent. So a deficiency of 2 percent also means a deficient coupon payment of 2 dollars (entered -2) for a par value of 100 dollars.
In light of this, the method pvCouponDeficiency()
is developed to compute the present value of the Coupon Deficiency. So, pvCouponDeficiency()
gives the discounted value of Deficient Coupon Payments for values passed to its three arguments. Here, couponDeficiency
is the vector that has dollar values of Deficient Coupon Payments for periods till maturity, times
is a vector of number of years ranging from 1 to any specified number of years till maturity, and r
is Market Discount Rate or Required Rate of return. The output is rounded off to three decimal places.
Value
Input values to three arguments couponDeficiency
, times
and r
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
pvCouponDeficiency(couponDeficiency=c(-2,-2,-2,-2,-2), times=c(1,2,3,4,5), r= 0.06)
pvCouponDeficiency(couponDeficiency=c(-2,-2,-2,-2,-2), times=c(1:5), r= 0.06)
pvCouponDeficiency(couponDeficiency=c(rep(-2,5)), times=c(1:5), r= 0.06)
pvCouponDeficiency(c(rep(-2,5)), c(1:5), 0.06)
Calculates the Present Value of the Excess Coupon Payment resulting due to higher Coupon Rate as compared the Market Discount Rate.
Description
Calculates the Present Value of the Excess Coupon Payment resulting due to higher Coupon Rate as compared the Market Discount Rate.
Usage
pvExcessCoupon(couponExcess, times, r)
Arguments
couponExcess |
A vector. |
times |
A vector. |
r |
A number. |
Details
For Example, a Bond is trading at a premium because the coupon rate per period (6 percent) is greater than the market discount rate per period (4 percent). The excess per period is the coupon rate minus market discount rate, times the par value: (0.06 – 0.04) × 100 = +2. The present value of excess is +7.260, discounted using the required yield per period (Adams & Smith, 2019).
Based on this, the method pvExcessCoupon()
is developed to compute the present value of excess Coupon Payments. So, pvExcessCoupon()
gives the present value of excess Coupon Payments for values passed to its three arguments. Here, couponExcess
represent the dollar value of excess coupon payment, times
is a vector of number of years ranging from 1 to any specified number of years till maturity, and r
is Market Discount Rate or Required Rate of return. The output is rounded off to three decimal places. The given examples show various ways in which the arguments can be passed to pvExcessCoupon()
.
Value
Input values to three arguments couponExcess
, times
and r
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
pvExcessCoupon(couponExcess=c(2,2,2,2), times=c(1,2,3,4), r= 0.04)
pvExcessCoupon(couponExcess=c(2,2,2,2), times=c(1:4), r= 0.04)
pvExcessCoupon(couponExcess=c(rep(2,4)), times=c(1:4), r= 0.04)
pvExcessCoupon(c(rep(2,4)), c(1:4), 0.04)
Calculates Present Value of the Full Price of the Bond including Accrued Interest.
Description
Calculates Present Value of the Full Price of the Bond including Accrued Interest.
Usage
pvFullPrice(n, ytm, coupon, maturityVal, daysCpnToSettle, daysCouponPeriod)
Arguments
n |
A number. |
ytm |
A number. |
coupon |
A number. |
maturityVal |
A number. |
daysCpnToSettle |
A number. |
daysCouponPeriod |
A number |
Details
According to information provided by Adams and Smith (2019), the method pvFullPrice()
is developed to calculate the Present Value of the Full Price of the Bond including Accrued Interest. Full Price of the Bond is the present value of the coupon interest and principal payments with each cash flow discounted by Yield-To-Maturity rate. Here, n
is number of periods, ytm
is yield-to-maturity, coupon
is dollar value of the coupon payment, maturityVal
is maturity Value, daysCpnToSettle
is the number of days from the last coupon payment to the settlement date, and daysCouponPeriod
is the number of days in the coupon period.
Value
Input values to six arguments n
, ytm
, coupon
, maturityVal
, daysCpnToSettle
, and daysCouponPeriod
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Understanding Fixed‑Income Risk and Return. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 237-299). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
pvFullPrice(n=8*2,ytm=0.06/2,coupon=3,maturityVal=100,daysCpnToSettle=57,daysCouponPeriod=180)
pvFullPrice(n=10,ytm=0.104,coupon=8,maturityVal=100,daysCpnToSettle=0,daysCouponPeriod=0)
Calculates estimated Return on Floating-Rate Note (FRN) for a given Index, Quoted Margin, Maturity Value, and Periodicity.
Description
Calculates estimated Return on Floating-Rate Note (FRN) for a given Index, Quoted Margin, Maturity Value, and Periodicity.
Usage
returnIncomeFRN(index, qtdMargin, maturityVal, periodicity)
Arguments
index |
A number. |
qtdMargin |
A number. |
maturityVal |
A number. |
periodicity |
A number. |
Details
Floating-rate notes are very different from a fixed-rate bond. The interest payments on a floating-rate note, which often is called a floater or an FRN, are not fixed. Instead, they vary from period to period depending on the current level of a reference interest rate. The interest payments can't go up or down; that is why they “
float."
The intent of an Floating-Rate Note (FRN) is to offer the investor a security that has less market price risk than a fixed-rate bond when market interest rates fluctuate. On these floaters, a specified yield spread is added to, or subtracted from, the reference rate. For example, the floater might reset its interest rate quarterly at three-month Libor plus 0.50 percent. This specified yield spread over the reference rate is called the quoted margin on the FRN. The role of the quoted margin is to compensate the investor for the difference in the credit risk of the issuer and that implied by the reference rate. For example, a company with a stronger credit rating than that of the banks included in Libor may be able to obtain a “sub-Libor” cost of borrowed funds, which results in a negative quoted margin. An AAA-rated company might be able to issue an FRN that pays three-month Libor minus 0.25 percent (Adams & Smith, 2019).
Based on the information provided, the method returnIncomeFRN()
is developed to compute estimated Return on Floating-Rate Note (FRN) for the values passed to its four arguments. Here, index
is reference rate, stated as an annual percentage rate, qtdMargin
represents quoted Margin, maturityVal
represents Maturity Value, and periodicity
represents periodicity of the floating-rate note that is the number of payment periods per year.
Value
Input values to four arguments index
, qtdMargin
,maturityVal
and periodicity
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
returnIncomeFRN(index=0.0125,qtdMargin=0.0050,maturityVal=100,periodicity=2)
Calculates Semi-Annual Forward Rates using the given Spot Rates.
Description
Calculates Semi-Annual Forward Rates using the given Spot Rates.
Usage
saForwards(spots, BGN, APLY, times, n)
Arguments
spots |
A vector. |
BGN |
A number. |
APLY |
A number. |
times |
A vector. |
n |
A number. |
Details
According to information provided by Frank J. Fabozzi (2008), the method saForwards()
is developed to calculate Semi-Annual Forward Rates using the given Spot Rates. Here, spots
is vector of given 1-period (6-month) spot rates, BGN
is six monthly period in which Forward Rate begins (for example a value of 1 would mean 1-period from now (that is six-months from now) and value of 2 would means two six-monthly periods from now (or 1 years into future) and so on), and APLY
means number of six-monthly periods for which the Forward Rate Applies (for example, a value for 1 means for six-months and APLY value of 4 means for two years so, BGN=2 and APLY=1 means computing implied Forward Rate of 1 year from now for six-months; this is also called a six-months forward rate from one year into future), t
is a vector of number of six-month periods ranging from 1 to any specified number of six-month periods for which the Spot Rates are available, and n
is number of six-month periods under consideration.
Value
Input values to five arguments spots
,BGN
,APLY
, times
and n
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Fabozzi, F. J. (2008). Handbook of Finance: Financial Markets and Instruments. John Wiley & Sons.
Examples
saForwards(spots=c(0.05,0.054,0.058,0.064,0.070,0.072,0.074,0.078),BGN=1,APLY=1,t=c(1:8),n=8)
saForwards(spots=c(0.05,0.054,0.058,0.064,0.070,0.072,0.074,0.078),BGN=2,APLY=1,t=c(1:8),n=8)
saForwards(spots=c(0.05,0.054,0.058,0.064,0.070,0.072,0.074,0.078),BGN=6,APLY=1,t=c(1:8),n=8)
saForwards(spots=c(0.05,0.054,0.058,0.064,0.070,0.072,0.074,0.078),BGN=2,APLY=4,t=c(1:8),n=8)
saForwards(spots=c(0.05,0.054,0.058,0.064,0.070,0.072,0.074,0.078),BGN=4,APLY=2,t=c(1:8),n=8)
Calculates the Yield-To-Maturity(YTM) of a Zero-Coupon Bond.
Description
Calculates the Yield-To-Maturity(YTM) of a Zero-Coupon Bond.
Usage
ytmZeroCouponBond(maturityVal, n, price)
Arguments
maturityVal |
A number. |
n |
A number. |
price |
A number. |
Details
The method ytmZeroCouponBond()
is developed to compute the Yield-To-Maturity a Zero-Coupon Bond. So, ytmZeroCouponBond()
gives the Price of a Zero-Coupon Bond for values passed to its three arguments. Here, maturityVal
represents the Maturity Value of the Bond, n
is number of years till maturity, and price
is Market Price of Zero-Coupon Bond. The output is rounded off to three decimal places. The given examples show various ways in which the arguments can be passed to ytmZeroCouponBond()
.
Value
Input values to three arguments maturityVal
, n
and price
.
Author(s)
MaheshP Kumar, maheshparamjitkumar@gmail.com
References
Adams,J.F. & Smith,D.J.(2019). Introduction to fixed-income valuation. In CFA Program Curriculum 2020 Level I Volumes 1-6. (Vol. 5, pp. 107-151). Wiley Professional Development (P&T). ISBN 9781119593577, https://bookshelf.vitalsource.com/books/9781119593577
Examples
ytmZeroCouponBond(maturityVal=100, n=60, price=22.375)
ytmZeroCouponBond(100, 60, 22.375)