OddlPrice(Settlement: DateTime, Maturity: DateTime, LastCouponDate: DateTime, Rate: Double, YieldP: Double, Redemption: Double, Frequency: Integer, [Basis: Ingteger = 0]): Double;
OddlPrice(Settlement: System.DateTime, Maturity: System.DateTime, LastCouponDate: System.DateTime, Rate: double, YieldP: double, Redemption: double, Frequency: integer, Basis: ingteger): double;
Settlement. The payment day on securities. Must be greater than Maturity
Maturity. The security's maturity date. Must be greater than LastCouponDate
LastCouponDate. The date of the last coupon payment on securities. Must be less than Settlement
Rate. The security's interest rate. Must be positive
YieldP. The annual income on securities. Must be positive
Redemption. The security's redemption value per $100 face value. Must be positive
Frequency. The annual number of coupon payments. The parameter can take the following values:
1. Annual payments.
2. Semi-annual payments.
4. Quarterly payments.
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 OddlPrice method returns the price for 100 rubles of the face value for an irregular (short or long) last coupon period.
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. For example, 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. For example, 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.
To execute the example, add a link to the MathFin system assembly.
Sub UserProc;
Var
r: Double;
Begin
r := Finance.OddlPrice(DateTime.ComposeDay(2008,02,07), DateTime.ComposeDay(2008,06,15),
DateTime.ComposeDay(2007,10,15), 0.1275, 0.1025, 200, 4, 3);
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, DateTime3: System.DateTime;
Begin
DateTime1 := New DateTime(2008,02,07);
DateTime2 := New DateTime(2008,06,15);
DateTime3 := New DateTime(2007,10,15);
r := Finance.OddlPrice(DateTime1, DateTime2, DateTime3, 0.1275, 0.1025, 200, 4, 3);
System.Diagnostics.Debug.WriteLine(r);
End Sub;
After executing the example the console window displays the price equal to 197.2097.
See also: