Package 'bondAnalyst'

Title: Methods for Fixed-Income Valuation, Risk and Return
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).
Authors: MaheshP Kumar [aut, cre], MaheshP Kumar [aut], MaheshP Kumar [ctb]
Maintainer: MaheshP Kumar <[email protected]>
License: GPL-3
Version: 1.0.1
Built: 2024-11-16 03:03:08 UTC
Source: https://github.com/cran/bondAnalyst

Help Index


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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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:

  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 which is 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 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, and period 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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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 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, [email protected]

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 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, [email protected]

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, [email protected]

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 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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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,mvis 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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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, [email protected]

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)