PriceDisc(Settlement: DateTime; Maturity: DateTime; Discount: Double; Redemption: Double; [Basis: Integer = 0]): Double;
PriceDisc(Settlement: System.DateTime; Maturity: System.DateTime; Discount: double; Redemption: double; Basis: integer): double;
Settlement. The payment day on securities. Must be greater than Maturity
Maturity. The security's maturity date. Must be greater than Settlement
Discount. Annual interest rate for coupons on securities. Must be positive
Redemption. The security's redemption value per $100 face value. Must be positive
Basis. The day calculation method used. Select a value from 0 to 4:
0. Day calculation method - American/360 days (NSAD method). Default value.
1. Day calculation method - Actual/actual.
2. Day calculation method - Actual/360 days.
3. Day calculation method - Actual/365 days.
4. Day calculation method - European 30/360 days.
Optional parameter.
The PriceDisc method returns the price for $100 of face value of securities, for which a discount is made.
PriceDisc is calculated using the following formula:
,
where:
B. The number of days in a year, depends on the used basis.
DSM. 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.PriceDisc(DateTime.ComposeDay(2008,01,01), DateTime.ComposeDay(2008,06,01), 0.2, 150, 0);
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,01,01);
DateTime2 := New DateTime(2008,06,01);
r := Finance.PriceDisc(DateTime1, DateTime2, 0.2, 150, 0);
System.Diagnostics.Debug.WriteLine(r);
End Sub;
After executing the example the console window displays the price equal to 137.5.
See also: