DP | R Documentation |
DP returns a bond's temporal and pecuniary characteristics on the desired calendar date according to the methodology presented in Djatschenko (2018).
DP( CP = as.numeric(NA), SETT = as.Date(NA), Em = as.Date(NA), Mat = as.Date(NA), CpY = as.numeric(NA), FIPD = as.Date(NA), LIPD = as.Date(NA), FIAD = as.Date(NA), RV = as.numeric(NA), Coup = as.numeric(NA), DCC = as.numeric(NA), EOM = as.numeric(NA), DateOrigin = as.Date("1970-01-01"), InputCheck = 1, FindEOM = FALSE, RegCF.equal = 0, AnnivDatesOutput = as.list(NA) )
CP |
The bond's clean price. |
SETT |
The settlement date. Date class object with format "%Y-%m-%d". (required) |
Em |
The bond's issue date. Date class object with format "%Y-%m-%d". (required) |
Mat |
So-called "maturity date" i.e. date on which the redemption value and the final interest are paid. Date class object with format "%Y-%m-%d". (required) |
CpY |
Number of interest payments per year (non-negative integer; element of the set {0,1,2,3,4,6,12}. Default: 2. |
FIPD |
First interest payment date after |
LIPD |
Last interest payment date before |
FIAD |
Date on which the interest accrual starts (so-called "dated date"). Date class object with format "%Y-%m-%d". Default: |
RV |
The redemption value of the bond. Default: 100. |
Coup |
Nominal interest rate per year in percent. Default: |
DCC |
The day count convention the bond follows. Default: |
EOM |
Boolean indicating whether the bond follows the End-of-Month rule. Default: |
DateOrigin |
Determines the starting point for the daycount in "Date" objects. Default: "1970-01-01". |
InputCheck |
If 1, the input variables are checked for the correct format. Default: 1. |
FindEOM |
If |
RegCF.equal |
If 0, the amounts of regular cash flows are calculated according to the
stipulated |
AnnivDatesOutput |
A list containing the output of the function AnnivDates. Default: |
The function DP generates a list of the two data frames Dates
and Cash
,
which contain the relevant date-related and pecuniary characteristics that were either provided
by the user or calculated by the function. Value provides further information on the
output.
The number of days accrued from Previous_CouponDate to Next_CouponDate, incl. the earlier and excl. the later date.
The number of interest accruing days in the coupon period from Previous_CouponDate to Next_CouponDate.
Sum of Clean_Price and Accrued_Interest.
The clean price entered.
The amount of accrued interest on SettlementDate.
The interest payment on Next_CouponDate.
Djatschenko, Wadim, The Nitty Gritty of Bond Valuation: A Generalized Methodology for Fixed Coupon Bond Analysis Allowing for Irregular Periods and Various Day Count Conventions (November 5, 2018). Available at SSRN: https://ssrn.com/abstract=3205167.
CP<-rep(100,16) SETT<-rep(as.Date("2014-10-15"),16) Em<-rep(as.Date("2013-11-30"),16) Mat<-rep(as.Date("2021-04-21"),16) CpY<-rep(2,16) FIPD<-rep(as.Date("2015-02-28"),16) LIPD<-rep(as.Date("2020-02-29"),16) FIAD<-rep(as.Date("2013-11-30"),16) RV<-rep(100,16) Coup<-rep(5.25,16) DCC<-seq(1,16,by=1) DP.DCC_Comparison<-data.frame(CP,SETT,Em,Mat,CpY,FIPD,LIPD,FIAD,RV,Coup,DCC) # you can pass an array to AnnivDates List<-suppressWarnings( AnnivDates(unlist(DP.DCC_Comparison[1,c(3:11)],use.names=FALSE)) ) # and use its output in DP suppressWarnings( DP(unlist(DP.DCC_Comparison[1,c(1:11)],use.names=FALSE),AnnivDatesOutput=List) ) # or just apply DP to the data frame DP.Output<-suppressWarnings( apply(DP.DCC_Comparison[,c('CP','SETT','Em','Mat','CpY','FIPD', 'LIPD','FIAD','RV','Coup','DCC')], 1,function(y) DP(y[1],y[2],y[3],y[4],y[5],y[6],y[7], y[8],y[9],y[10],y[11]))) DiryPrice<-do.call(rbind,lapply(lapply(DP.Output, `[[`, 2), `[[`, 1)) DP.DCC_Comparison<-cbind(DP.DCC_Comparison,DiryPrice) DP.DCC_Comparison
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.