IFinance.OddfPrice

Syntax

OddfPrice(Settlement: DateTime; Maturity: DateTime; Issue: DateTime; FirstCouponDate: DateTime; Rate: Double; YieldP: Double; Redemption: Double; Frequency; Integer; [Basis; Integer = 0]): Double;

OddfPrice(Settlement: System.DateTime; Maturity: System.DateTime; Issue: System.DateTime; FirstCouponDate: System.DateTime; Rate: double; YieldP: double; Redemption: double; Frequency; integer; Basis; integer): double;

Parameters

Settlement. The payment day on securities. Must be greater than Issue.

Maturity. The security's maturity date. Must be greater than FirstCouponDate.

Issue. The security's issue date. Must be less than Settlement.

FirstCouponDate. Securities first coupon date. Must be greater than Settlement.

Rate. Annual interest rate for coupons on securities. Must be positive.

YieldP. The annual income on securities. Must be positive.

Redemption. The security's redemption price per $100 face value. Must be positive.

Frequency. The annual number of coupon payments. The parameter can take the following values:

Basis. The day calculation method used. Select a value from 0 to 4:

Description

The OddfPrice method returns price for 100 rubles of face value of the securities for an irregular - short or long - first period.

Comments

OddfPrice is calculated using the following formula.

Irregular short first coupon:

,

where:

Irregular long first coupon:

,

where:

Fore Example

Add a link to the MathFin system assembly.

Sub UserProc;
Var
    r: Double;
Begin
    r := Finance.OddfPrice(DateTime.ComposeDay(2008,11,11), DateTime.ComposeDay(2021,03,01),
        DateTime.ComposeDay(2008,10,15), DateTime.ComposeDay(2009,03,01), 0.12750.102520043);

    Debug.WriteLine(r);
End Sub UserProc;

Imports Prognoz.Platform.Interop.MathFin;

Public Shared Sub Main(Params: StartParams);
Var
    r: double;
    Finance: FinanceClass = New FinanceClass();
    DateTime1, DateTime2, DateTime3, DateTime4: System.DateTime;
Begin
    DateTime1 := New DateTime(2008,11,11);
    DateTime2 := New DateTime(2021,03,01);
    DateTime3 := New DateTime(2008,10,15);
    DateTime4 := New DateTime(2009,03,01);
    r := Finance.OddfPrice(DateTime1, DateTime2, DateTime3, DateTime4, 0.12750.102520043);
    System.Diagnostics.Debug.WriteLine(r);
End Sub;

After executing the example the console window displays the price equal to 146.115.

See also:

IFinance