In QuantLib an object of class Schedule takes const Period &tenor as argument.

I would like to know what that tenor is supposed to be.

Let I would like to price a floating rate bond (that is, to use the Schedule object as argument for FloatingRateBond object) which pays quarterly EURIBOR every two months: from what I've read so far, the quarterly EURIBOR (forward) rate is set through an IborIndex class object while I'm not sure of how I can set the payment frequency.

Maybe I should use that Schedule argument (tenor = "2M" here)?

P.S.: in order to avoid too many questions regarding QuantLib here, I'm looking for some reference which explain topics like the one of this question, that is, the natural language definition of classes' and methods' arguments. Can you suggest me any source suitable to this purpose?

  • 1
    $\begingroup$ Try Period(Bimonthly) as parameter it means every second month, wilmott forums could be a good source of reference. $\endgroup$ Sep 18, 2013 at 13:32
  • 1
    $\begingroup$ Then what's the tenor argument of Schedule? $\endgroup$
    – Lisa Ann
    Sep 18, 2013 at 13:44
  • $\begingroup$ it is the frequency of the schedule (e.g. monthly, bimonthly, annual, quarterly...) $\endgroup$ Sep 18, 2013 at 13:51
  • $\begingroup$ Uhmm... I guess it's not really clear to me what Schedule is. Doesn't a Schedule object states all the "temporal" elements of a bond? Let you have a bond like the UCGIM Float 10/31/13 ~ IT0004416886 (this one pays quarterly EURIBOR): if you had to price it via QuantLib, what the tenor argument of Schedule would be equal to? Thanks, $\endgroup$
    – Lisa Ann
    Sep 18, 2013 at 13:59

1 Answer 1


Tenor is just a different term for time to maturity. A schedule is generated from startDate and endDate in combination with a time to maturity and some info on calendar specifics.

Here is an example from Dimitri Reiswich' Presentation from quantlib.com, I hope it makes the use of schedule clearer to you:

void testingSchedule1 (){
Date begin (30 , September ,2009) , end (15 , Jun ,2012);
Calendar myCal = Japan ();
BusinessDayConvention bdC= BusinessDayConvention ( Following );
Period myTenor (6, Months );
DateGeneration :: Rule myRule = DateGeneration :: Forward ;
Schedule mySched (begin ,end , myTenor ,myCal ,bdC ,bdC , myRule , true );
std :: vector <Date > finalSched = mySched . dates ();
BOOST_FOREACH ( Date d, finalSched ) std :: cout << d << std :: endl ;

which generates the following dates:

September 30th, 2009
March 31st, 2010
September 30th, 2010
March 31st, 2011
September 30th, 2011
March 30th, 2012
June 15th, 2012

As you can see, your assumption is actually right - the schedule contains all the payment dates. The Input you need to give it simply

Period myTenor (2, Months );

General info on classes

If you are looking for something that specifically deals with design patterns for finance, I recommend Mark Joshis Book on that topic. But, be warned, its pretty hard for C++ Newbies, the finance part is actually quite easy. Otherwise, I think you should look into Design Patterns in general, unfortunately the only book I've actually read about those is the Heads First book, I really cannot recommend those provided you're older than 12.

  • $\begingroup$ Thank you, phi. If I'm right, this means that a bond which pays quarterly EURIBOR every 2 months requires an IborIndex object whose tenor is equal to 3M for what regards the floating rate and a Schedule object whose tenor is equal to 2M for what regards the payment frequency. $\endgroup$
    – Lisa Ann
    Sep 19, 2013 at 8:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.