MakeSchedule4





http://www.QuantTools.com
CapeTools Calendars function list

Welcome | Documentation format | QuantTools Groups | QuantTools Categories | Licence

Key TAGs | Excel Index | API Index



Generates a schedule of start and end dates, given a SettleDate, DatedDate, a firstCouponDate, a penultCouponDate and a maturity date.

These inputs are similar to the ones passed into the bond creation object functions.

You can view the generated dates via the DisplaySchedule() function.

This function requires the input of a Calendar object key, which must have been produced via a call to one of the Calendar creation functions present within the CapeTools Calendars category of functions.

These functions would have returned a string 'KEY' which is to be passed to the 'CalendarKey' parameter of this function.

Please refer to the large number of enumeration functions present within the CapeTools Enums category of functions.

The CapeTools Enums category of functions return correct string codes that can be passed to parameters taking fixed string values defined by the library (ie - DayCount codes, frequency codes, currency codes, compounding codes, business day convention codes etc...).

You can thus execute these enumeration functions which return the proper code, instead of trying to remember the string code needed or making spelling mistakes which can be difficult to debug.

In addition there are specific Business day convention that allows you to generate End-Of-Month (EOM) or 3rd Wednesday of the month date periods (See the following : BDC_EOMRefUnadjusted(), BDC_EOMRefPreceding(), BDC_EOMRefFollowing(), BDC_EOMUnadjusted(), BDC_EOMPreceding(), BDC_EOMFollowing(), BDC_ThirdWednesday(), BDC_ThirdFriday() and BDC_2DThirdWednesday() functions ).



This function creates an object and returns a string-key value to represent this created object.
The TAG value of the string-key returned (second part of the key) is : "MSCH4"



Note: Within Excel, the function is named - CT.SCH.MakeSchedule4




High level graphic of MakeSchedule4() function with parameters. Blue square node is the actual function with the parameters ordered.



Parameter Description


  1. Key parameter

    Key value to use as a handle for the created object
  2. Reload parameter

    When creating this object for the first time, set this parameter to a positive value. Within Excel, when re-computing a worksheet where you do not wish to recreate the object, set this parameter to zero (0).
  3. CalendarKey parameter

    Calendar key for the adjustments of dates.
  4. SettleDate parameter

    Settlement date of the instrument.
  5. datedDate parameter

    Dated date of the instrument. Date on which the instrument begins to accrue interest. If you enter 0 for this parameter the datedDate will be computed internally based on the maturity date and the settlement date.
  6. firstCouponDate parameter

    First Coupon Date: Date that the first coupon is paid (if the instrument does not have an odd first period, leave blank or enter 0). If entered, this date value must be greater than the Dated Date, but less than the 'penultCouponDate' and 'matDate' parameters.
  7. penultCouponDate parameter

    Penultimate Coupon Date: Date that the penultimate coupon is paid (if the instrument does not have an odd last period, leave blank or enter 0). If entered, this date value must be greater than the 'datedDate' and 'firstCouponDate' parameters, but less than the 'matDate' parameter.
  8. matDate parameter

    Maturity date of the instrument.
  9. Freq parameter

    Frequency of the schedule.
  10. BusDayConv parameter

    Business day convention needed for day adjustments when an adjustment moves the date into the preceding, following month.


Extended information

Function Syntax

VB Syntax


String CTCalendars.MakeSchedule4( _
String Key, _
Long Reload, _
String CalendarKey, _
Long SettleDate, _
Long datedDate, _
Long firstCouponDate, _
Long penultCouponDate, _
Long matDate, _
FreqEnum Freq, _
BDCEnum BusDayConv)


Excel Spreadsheet Syntax


=CT.SCH.MakeSchedule4(
Excel String Cell Key,
Excel Numeric Cell Reload,
Excel String Cell CalendarKey,
Excel Numeric Cell SettleDate,
Excel Numeric Cell datedDate,
Excel Numeric Cell firstCouponDate,
Excel Numeric Cell penultCouponDate,
Excel Numeric Cell matDate,
Excel String Cell Freq,
Excel String Cell BusDayConv)


C++ Syntax


static std::string MakeSchedule4(
std::string Key,
long Reload,
std::string CalendarKey,
long SettleDate,
long datedDate,
long firstCouponDate,
long penultCouponDate,
long matDate,
FreqEnum Freq,
BDCEnum BusDayConv);


DotNET Syntax


System.String CTCalendarsSA.MakeSchedule4(
System.String Key,
System.Int32 Reload,
System.String CalendarKey,
System.Int32 SettleDate,
System.Int32 datedDate,
System.Int32 firstCouponDate,
System.Int32 penultCouponDate,
System.Int32 matDate,
CTIEnums.FreqEnum Freq,
CTIEnums.BDCEnum BusDayConv);

Parameter data types

ArgNameArgTypeIsKey
KeyStringFALSE
ReloadLongFALSE
CalendarKeyStringTRUE
SettleDateLongFALSE
datedDateLongFALSE
firstCouponDateLongFALSE
penultCouponDateLongFALSE
matDateLongFALSE
FreqFreqEnumFALSE
BusDayConvBDCEnumFALSE


Example Inputs

The first column represents the name of the parameters. The second column specifies whether the parameters are optional or not. Finally the last column provides some sample input data.
Function call input string-keys are always in the format : "NAME.EXTTAG.TICKER" The "EXTTAG.TICKER" part is determined from the output of other, capetools, object creation functions.


ArgNameIsOptional (Excel only)Example
KeyFALSEMySchedule4
ReloadFALSE1
CalendarKeyFALSECalendarKeyNAME.EXTTAG.TICKER (from a function call)
SettleDateFALSE19/Jul/2005 (serial date type)
datedDateTRUE21/Apr/2005 (serial date type)
firstCouponDateTRUE0
penultCouponDateTRUE0
matDateFALSE21/Apr/2015 (serial date type)
FreqFALSES
BusDayConvFALSEModifiedFollowing


Example function usage


The C# example below contains all the sub-function calls leading up to this function call. As a result, the example can contain a lot of code.

The VB.NET, J#, C++.NET, Java, Excel VBA, Visual Basic 6 (via COM) and C++ examples below contain function code stubs for the calls leading up to this function call. However, the function call for this function is displayed.
You can easily reproduce the stub functions code from the C# example.


If you are accessing this functrion via the MiniXL libraries, this function is present within the CT.QL.Curves20 MiniXL Excel Addin.

Within our Excel Example Addin Generator, we have used the following QuantTools sub-functions in order to prepare the arguments needed to call the MakeSchedule4() function. If you are executing this function via the MiniXL libraries, the module addin name, (in brackets, to the right of the sub-functions listed below), indicates the MiniXL library in which the sub-function is held. You will need to load this library into your Excel session (along with any other libraries that the sub-function call within the addin requires (ie - CT.QT.Utils20 addin in almost all cases) in order for the example to compute successfully.

These are the financial QuantTools sub-function calls that are used within the examples :





The objects generated by these sub-functions are inter-connected in the following way :




The following four examples demostrate calling this function within a Microsoft .NET environment

The following four examples demostrate calling this function within a non .NET environment

The following is a sample output from executing the MakeSchedule4() function call


MySchedule4_50.MSCH4.0

Copyright (c) 2003-2007 CapeTools - All Rights Reserved.