Accrint(Issue: DateTime;
FirstInterest: DateTime;
Settlement: DateTime;
Rate: Double;
NominalCost: Double;
Frequency: Integer;
Basis: Integer): Double;
Accrint(Issue: System.DateTime;
FirstInterest: System.DateTime;
Settlement: System.DateTime;
Rate: double;
NominalCost: double;
Frequency: integer;
Basis: integer): double;
| Parameters | Description | Constraints |
| Issue | Securities issue date. | Must be less than Settlement. |
| FirstInterest | The date of first interest payment. | |
| Settlement | Securities settlement date. | Must be greater than Issue. |
| Rate | Annual interest rate for securities coupons. | Must be positive. |
| NominalCost | Securities 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. |
Must take the values 1, 2 or 4. |
| 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 Accrint method returns accumulated interest for securities with regular payment of interest.
Accrint is calculated using the following formula:
Where:
NC. The number of quasi coupon periods, which fit into the remaining period. If this number has a decimal part, it is rounded up to the next integer.
Ai. The number of accumulated days for i-th quasi coupon period in the remaining payment period.
NLi. Normal duration in days of i-th quasi coupon period in the remaining period.
To execute the example, add a link to the MathFin system assembly.
Sub UserProc;
Var
r: Double;
Begin
r := Finance.Accrint(DateTime.ComposeDay(2008,01,11),
DateTime.ComposeDay(2008,02,11), DateTime.ComposeDay(2008,03,11), 0.1, 1000, 2, 0);
Debug.WriteLine(r);
End Sub UserProc;
After executing the example the console window displays the accumulated percent that is equal to 16.67.
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: System.DateTime;
Begin
DateTime1 := New DateTime(2008,01,11);
DateTime2 := New DateTime(2008,02,11);
DateTime3 := New DateTime(2008,03,11);
r := Finance.Accrint(DateTime1, DateTime2, DateTime3, 0.1, 1000, 2, 0);
System.Diagnostics.Debug.WriteLine(r);
End Sub;
See also: