IFinance.OddfYield

Fore Syntax

OddfYield(Settlement: DateTime;

Maturity: DateTime;

Issue: DateTime;

FirstCouponDate: DateTime;

Rate: Double;

PresentValue: Double;

Redemption: Double;

Frequency: Integer;

Basis: Integer): Double;

Fore.NET Syntax

OddfYield(Settlement: System.DateTime;

Maturity: System.DateTime;

Issue: System.DateTime;

FirstCouponDate: System.DateTime;

Rate: double;

PresentValue: double;

Redemption: double;

Frequency: integer;

Basis: integer): double;

Parameters

Parameters Description Constraints
Settlement Securities settlement date. Must be greater than Issue.
Maturity Securities maturity date. Must be greater than FirstCouponDate.
Issue Securities issue date. Must be less than Settlement.
FirstCouponDate Securities first coupon date. Must be greater than Settlement.
Rate Securities interest rate. Cannot be negative.
PresentValue Securities value. Cannot be negative.
Redemption Redemption price for $100 of face value. Must be positive.
Frequency The number of payments for coupons in a year:
1 - For annual payments.
2 - For semi-annual payments.
4 - For quarterly payments.
May take the values 1, 2 or 4.
Basis The employed method of day calculation:
0 - American/360 days (NSAD method).
1 - Factual/factual.
2 - Factual/360days.
3 - Factual/365 days.
4 - European 30/360 days.
Must be in the [0,4] interval.

Description

The OddfYield method returns profit for securities with irregular (short or long) first period.

Comments

To get a price for 100$ of nominal securities value for irregular (short or long) first period, use the IFinance.OddfPrice method.

Fore Example

To execute the example, add a link to the MathFin system assembly.

Sub UserProc;
Var
    r: Double;
Begin
    r := Finance.OddfYield(DateTime.ComposeDay(2008,11,11), DateTime.ComposeDay(2021,03,01),
        DateTime.ComposeDay(2008,10,15), DateTime.ComposeDay(2009,03,01), 
0.1075145.520043);
    Debug.WriteLine(r);
End Sub UserProc;

After executing the example the console window displays the profit equal to 9.07%.

Fore.NET Example

The requirements and result of the Fore.NET example execution match with those in the Fore example.

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.OddfYield(DateTime1, DateTime2, DateTime3, DateTime4, 0.1075145.520043);
    System.Diagnostics.Debug.WriteLine(r);
End Sub;

See also:

IFinance