Bond Functions

These fall into 4 categories, Bonds which use day counts based on the 30/360 basis, and those that use actual day counts, coupon paying instruments and zero coupons. The Napier bond functions all have B as their first character for coupon bonds, Z for zeros. They have 3 as their last character for 30/360 basis, and A for Actual/Actual basis. For example, BYld3 calculates the yield for coupon bearing bonds using the 30/360 basis, while ZYldA does yields for zeros using Act/Act basis. There is a 30/360 day count function in the time function list.

BCpnN

 

 

BCpnN(sd,md,frq)

 

= coupon count

 

sd: settle date, md: mature date

 

frq: coupon frequency

BPrcC3

 

 

BPrcC3(sd,md,mv,cr,frq,yld)

 

= clean bond price 30/360

 

sd: settle date, md: mature date

 

mv: maturity value

 

cr: coupon rate % 8.5 not .085

 

frq: coupon frequency

 

yld: yield % 8.5 not .085

BPrcF3

 

 

BPrcF3(sd,md,mv,cr,frq,yld)

 

= full bond price 30/360

 

sd: settle date, md: mature date

 

mv: maturity value

 

cr: coupon rate % 8.5 not .085

 

frq: coupon frequency

 

yld: yield % 8.5 not .085

BPrcCA

 

 

BPrcCA(sd,md,mv,cr,frq,yld)

 

= clean bond price ACT/ACT

 

sd: settle date, md: mature date

 

mv: maturity value

 

cr: coupon rate % 8.5 not .085

 

frq: coupon frequency

 

yld: yield % 8.5 not .085

BPrcFA

 

 

BPrcFA(sd,md,mv,cr,frq,yld)

 

= full bond price ACT/ACT

 

sd: settle date, md: mature date

 

mv: maturity value

 

cr: coupon rate % 8.5 not .085

 

frq: coupon frequency

 

yld: yield % 8.5 not .085

BYld3

 

 

BYld3(sd,md,mv,cr,frq,prc)

 

= yield 30/360

 

sd: settle date, md: mature date

 

mv: maturity value

 

cr: coupon rate % 8.5 not .085

 

frq: coupon frequency

 

prc: purchase price

BYldA

 

 

BYldA(sd,md,mv,cr,frq,prc)

 

= bond yield ACT/ACT

 

sd: settle date, md: mature date

 

mv: maturity value

 

cr: coupon rate % 8.5 not .085

 

frq: coupon frequency

 

prc: purchase price

ZPrc3

 

 

ZPrc3(sd,md,mv,frq,yld)

 

= zero price 30/360

 

sd: settle date, md: mature date

 

mv: maturity value

 

frq: coupon frequency

 

yld: yield % 8.5 not .085

ZPrcA

 

 

ZPrcA(sd,md,mv,frq,yld)

 

= zero price ACT/ACT

 

sd: settle date, md: mature date

 

mv: maturity value

 

frq: coupon frequency

 

yld: yield % 8.5 not .085

ZYld3

 

 

ZYld3(sd,md,mv,frq,prc)

 

= zero yield 30/360

 

sd: settle date, md: mature date

 

mv: maturity value

 

frq: coupon frequency

 

prc: purchase price

ZYldA

 

 

ZYldA(sd,md,mv,frq,prc)

 

= zero yield ACT/ACT

 

sd: settle date, md: mature date

 

mv: maturity value

 

frq: coupon frequency

 

prc: purchase price

BDur3

 

 

BDur3(sd,md,mv,cr,frq,yld)

 

= Macaulay Duration 30/360

 

sd: settle date, md: mature date

 

mv: maturity value

 

cr: coupon rate % 8.5 not .085

 

frq: coupon frequency

 

yld: yield % 8.5 not .085

BDurA

 

 

BDurA(sd,md,mv,cr,frq,yld)

 

= Macaulay Duration ACT/ACT

 

sd: settle date, md: mature date

 

mv: maturity value

 

cr: coupon rate % 8.5 not .085

 

frq: coupon frequency

 

yld: yield % 8.5 not .085

ZDur3

 

 

ZDur3(sd,md,mv,frq,yld)

 

Zero Macaulay Duration 30/360

 

sd: settle date, md: mature date

 

mv: maturity value

 

cr: coupon rate % 8.5 not .085

 

frq: coupon frequency

 

yld: yield % 8.5 not .085

ZDurA

 

 

ZDurA(sd,md,mv,frq,yld)

 

Zero Macaulay Duration 30/360

 

sd: settle date, md: mature date

 

mv: maturity value

 

frq: coupon frequency

 

yld: yield % 8.5 not .085

BMDur3

 

 

BMDur3(sd,md,mv,cr,frq,yld)

 

= Modified Duration 30/360

 

sd: settle date, md: mature date

 

mv: maturity value

 

frq: coupon frequency

 

yld: yield % 8.5 not .085

BMDurA

 

 

BMDurA(sd,md,mv,cr,frq,yld)

 

= Modified duration ACT/ACT

 

sd: settle date, md: mature date

 

mv: maturity value

 

cr: coupon rate % 8.5 not .085

 

frq: coupon frequency

 

yld: yield % 8.5 not .085

ZMDur3

 

 

ZMDur3(sd,md,mv,frq,yld)

 

Zero Modified Duration 30/360

 

sd: settle date, md: mature date

 

mv: maturity value

 

frq: coupon frequency

 

yld: yield % 8.5 not .085

ZMDurA

 

 

ZMDurA(sd,md,mv,frq,yld)

 

Zero Modified Duration 30/360

 

sd: settle date, md: mature date

 

mv: maturity value

 

frq: coupon frequency

 

yld: yield % 8.5 not .085