YieldDisc(Settlement: DateTime; Maturity: DateTime; Price: Double; Redemption: Double; [Basis: Integer = 0]): Double;
YieldDisc(Settlement: System.DateTime; Maturity: System.DateTime; Price: double; Redemption: double; Basis: integer): double;
Settlement. The payment day on securities. Must be less than Maturity.
Maturity. The security's maturity date. Must be greater than Settlement.
Price. The security's price per $100 face value. Must be positive.
Redemption. The security's redemption price per $100 face value. Must be positive.
Basis. The day calculation method used. Select a value from 0 to 4:
0. The day calculation method - American/360 days (NSAD method).
1. The day calculation method - Actual/actual.
2. The day calculation method - Actual/360 days.
3. The day calculation method - Actual/365 days.
4. The day calculation method - European 30/360 days.
The YieldDisc method returns annual profit for discounted securities.
The agreement date is the date of selling a coupon, for example, a bond, to the buyer. The payment date is the coupon expiry date. Consider a bond with duration of 30 years was issued on Jan 1 2008 and was acquired by a buyer in 6 months after the issue date. The issue date is Jan 1 2008, the settlement date - July 1 2008, and the maturity date is Jan 1 2038, that is 30 years after the issue date.
YieldDisc is calculated using the following formula:
,
where:
B. The number of days in a year, it depends on the selected Basis argument value.
DIM. The number of days from settlement date to maturity date.
Add a link to the MathFin system assembly.
Sub UserProc;
Var
r: Double;
Begin
r := Finance.YieldDisc(DateTime.ComposeDay(2008,02,16), DateTime.ComposeDay(2008,03,01), 99.795, 100, 2);
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: System.DateTime;
Begin
DateTime1 := New DateTime(2008,02,16);
DateTime2 := New DateTime(2008,03,01);
r := Finance.YieldDisc(DateTime1, DateTime2, 99.795, 100, 2);
System.Diagnostics.Debug.WriteLine(r);
End Sub;
After executing the example the console window displays the annual profit equal to 0.0528.
See also: