PriceDisc(Settlement: DateTime;
Maturity: DateTime;
Discount: Double;
Redemption: Double;
Basis: Integer): Double;
PriceDisc(Settlement: System.DateTime;
Maturity: System.DateTime;
Discount: double;
Redemption: double;
Basis: integer): double;
| Parameters | Description | Constraints |
| Settlement | Securities settlement date. | Must be less than Maturity. |
| Maturity | Securities maturity date. | Must be greater than Settlement. |
| Discount | Annual interest rate for securities coupons. | Cannot be negative. |
| Redemption | The security's redemption value per $100 face value. | Must be positive. |
| Basis | The method of day calculation in use: 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. |
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.
To execute the example, 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;
After executing the example the console window displays the price equal to 137.5.
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: 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;
See also: