- Function SecurityMaturityPrice(IssueDate, SettlementDate, MaturityDate, ParValue, CouponRate, Yield, Basis)
SecurityMaturityPrice
The function SecurityMaturityPrice returns the price at settlement
date of a security that pays interest at maturity.
SecurityMaturityPrice(
    IssueDate,                ! (input) scalar string expression
    SettlementDate,           ! (input) scalar string expression
    MaturityDate,             ! (input) scalar string expression
    ParValue,                 ! (input) numerical expression
    CouponRate,               ! (input) numerical expression
    Yield,                    ! (input) numerical expression
    [Basis]                   ! (optional) numerical expression
    )
Arguments
- IssueDate
The date of issue of the security. IssueDate must be given in date format.
- SettlementDate
The date of settlement of the security. SettlementDate must also be in date format and must be a date after IssueDate.
- MaturityDate
The date of maturity of the security. MaturityDate must also be in date format and must be a date after SettlementDate.
- ParValue
The starting value of the security at issue date. ParValue must be a positive real number.
- CouponRate
The annual interest rate of the security as a percentage of the par value. CouponRate must be a nonnegative real number.
- Yield
The yield of the security. Yield must be a nonnegative real number.
- Basis
The day-count basis method to be used. The default is 1.
Return Value
The function
SecurityMaturityPricereturns the price of the security at settlement date.
Note
- This function can be used in an objective function or constraint and the input parameters ParValue, CouponRate, and Yield can be used as a variable. 
- The function - SecurityMaturityPriceis similar to the Excel function PRICEMAT.
Example
The code
_p_smp := SecurityMaturityPrice(
    IssueDate      :  "2020-01-01",
    SettlementDate :  "2024-01-01",
    MaturityDate   :  "2025-01-01",
    ParValue       :  100,
    CouponRate     :  0.059,
    Yield          :  0.061,
    Basis          :  1);
block where single_column_display := 1, listing_number_precision := 6 ;
    display _p_smp ;
endblock ;
This results in:
_p_smp := 98.454665 ;