Previous Topic

Next Topic

oBond3_Price( ) - Generic Bond Price Function 3

Component

Resolution - Bond Pricing

 

 

Function Definition

oBond3_Price(Yield, Dates, FaceValue, CouponRate, CouponFreq, CompoundingFreq, BusinessDayCon, YieldMethod, FPYieldMethod, DaysBasis, ExDateConvention, ExDayUnit, CouponType, PPHRounding, AdjEndOfMonth, FinalPeriodStart, HolidaySchedule, OutputFlag)

Calculates bond price using the a generic bond pricing solution. Returns the bond's clean price, dirty price, accrued interest, as well as the risk statistics.

 

Bond Types

All bonds. No pricing conventions are assumed.

 

Function Parameters

 

Parameters

Description

 

Parameter Type

 

Restrictions

.

Yield

 

The redemption yield for the bond

 

Double

Yield >= 0

Dates

 

5 dates entered as an array:

Array (of Dates)

 

 

 

 

SettlementDate: Valuation date of the bond.

 

SetDate < MatDate
SetDate
>DatedDate

 

DatedDate: Date on which the bond begins to accrue interest.

 

DatedDate<MatDate

 

 

FirstCpnDate: Date that the first coupon is paid (if bond does not have an odd first period, leave blank)

 

 

F.C.D > DatedDate
F.C.D
< P.C.D
F.C.D <
MatDate

 

 

PenultCpnDate: Date that the penultimate coupon is paid (if bond does not have an odd last period, leave blank)

 

 

P.C.D > DatedDate
P.C.D
> F.C.D
P.C.D
< MatDate

 

 

MaturityDate: Maturity date of the bond.

 

 

MatDate>DatedDate

FaceValue

 

Redemption value for the bond paid at maturity.

 

Double

 

FaceValue >= 0

CouponRate

 

Coupon rate of the bond, expressed as a decimal.

 

Double

Coupon Rate >= 0

CouponFreq

 

Frequency of coupons per annum.

Enumerated Constant

 

 

1 - Annual
2 - Semi-Annual
3 - Quarterly
4 - Monthly

CompoundingFreq

Number of compounding periods per annum, relating to quoted yield.

 

Enumerated Constant

 

1- Annual
2 - Semi-Annual
3 - Quarterly
4 - Monthly

BusinessDayCon

 

Business day convention for coupon payments dates.


see Business Day Conventions

 

Enumerated Constant

 

1 - No Adjustment
2 - Previous
3 - Following
4 - Mod Previous
5 - Mod Following
6 - EOM No Adjust
7 - EOM previous
8 - EOM following

YieldMethod

 

Yield convention for all coupon periods except for the final period.

 

Enumerated Constant

 

1 - Compound Yield
2 - Money Market
3 - True Yield
4 - Iterative Yield
5 - JGB

FPYieldMethod

 

Yield convention for the final coupon period.

 

Enumerated Constant

 

 

1 - Compound Yield
2 - MM (Act/360)
3 - MM (Act/365)
4 - MM (Act/Act)
5 - True Yield
6 - Iterative Yield
7 - JGB

DaysBasis

 

Array of two Enumerated Constants

Discount Basis: Basis for determining present and future values of cash flows

Accrual Basis: Basis for determining accrued interest

see Day Count Conventions

If both conventions are identical then just enter a single Enumerated Constant

 

Enumerated Constant or an array of Enumerated Constants

 

1 - Act/Act (actual)
2 - Act/Act (bond)
3 - Act/360
4 - Act/365
5 - Act/365 ISDA
6 - Act/365 JGB (NL)
7 - 30/360 ISDA
8 - 30/360 PSA
9 - 30E/360
10 - 30E+/360
11 - Act/365L

ExDateConvention

 

Basis for which the ex-dividend method is determined (if applicable). Used in conjunction with ExDayUnit.

see Ex-Dividend Conventions

Enumerated Constant

 

1 - No Ex-Date
2 - Calendar Days
3 - Business Days
4 - Day of Month
5 - Day of Prev Mth
6 - Months Prior

ExDayUnit

 

No. of days in the ex-dividend period (if ExDateConvention = 1, 2, or 3), day of month (if ExDateConvention = 4, 5), or No. months (if ExDateConvention = 6).

 

Integer

 

ExDayUnit >= 0

CouponType

 

Flags whether coupons are 'equal' throughout bond schedule or are 'exact'. Exact coupons vary according to number of days in coupon period.

 

Enumerated Constant

 

1 - Equal Coupons
2 - Exact Coupons

PPHRounding

 

Array of 3 entries indicating the number of decimal places the following outputs are to be rounded to:

Clean Price
Accrued Interest
Dirty Price

Alternatively, if all 3 follow the same rounding convention then just enter a single number.

 

Long, or an array of Longs

 

PPHRounding >= 0

AdjEndOfMonth

 

If coupon falls at end of month, do you wish to adjust all other coupons to fall at end of a month accordingly?

 

Enumerated Constant

 

0 - Not Applicable
1 - Yes
2 - No

FinalPeriodStart

 

Determines whether the final period starts on the ex-date of the penultimate coupon (if applicable) or on the actual day of the penultimate coupon.

 

Enumerated Constant

 

1 - Ex-Date of P.C
2 - Act Date of P.C

HolidaySchedule

 

Schedule of non-business days (excluding weekends)

Date Range

 

Leave blank if not applicable

OutputFlag

 

Indicates which result, or set of results, will be displayed in the worksheet. When returning more than one value, the function must be entered as an array function. Entering a 0 will output: Yield, Clean Price, Accrued Interest, Dirty Price, Macaulay Duration, Modified Duration, Convexity, and Present Value of a Basis Point. Entering a 4 will output: Macaulay Duration, Modified Duration, Convexity, and Present Value of a Basis Point.

 

Enumerated Constant

 

0 - All eight outputs
1 - Clean Price only
2 - Acc Interest only
3 - Dirty Price only
4 - Risk Statistics
5 - Mac Duration
6 - Mod Duration
7 - Convexity only
8 - PVBP only

 

 

 

 

 

 

 

See Also

Parameter Types

oBond3_Yield( ) - Generic Bond Yield Function 3

oBond3_CFM( ) - Generic Bond Cash Flow Map Function 3

oBond3_EYield( ) - Generic Bond Equivalent Yield Function 3

Return to www.derivativepricing.com website

Copyright 2013 Hedgebook Ltd.