I'm trying to make a payment schedule for different bonds in quantlib. For example, I made such a schedule:

schedule = ql.Schedule(effective_date, maturity_date, ql.Period(ql.Semiannual),
ql.India(), ql.ModifiedFollowing, ql.Actual365Fixed.Standard, ql.DateGeneration.Backward, False)

However, when I am trying to make another schedule with actual/360 day convention, I can't find any method in the class ql.Actual360 (like Standard in ql.Actual365Fixed) that works. I just tried this code:

schedule = ql.Schedule(effective_date, maturity_date, ql.Period(ql.Quarterly),
ql.India(), ql.ModifiedFollowing, ql.Actual360(), ql.DateGeneration.Backward, False)

with just ql.Actual360() instead. I received the following error:

TypeError: Wrong number or type of arguments for overloaded function 'new_Schedule'.

Is there a way to build a schedule with the Actual360 convention in quantlib?


1 Answer 1


The day-count convention doesn't enter in the schedule construction, which gives you a set of coupon dates. It only matters after the schedule is built, and gives you a measure of the time between any two dates in the schedule.

You can have the same schedule, but you can calculate the time between its dates according to different day-count conventions.

The fact that the day count seems to be used in the first constructor is misleading. ql.Actual365Fixed.Standard is a Python proxy for an enumeration, and it's actually the number 0. At that place, the Schedule constructor expects a business-day convention, another enumeration, and your 0 is interpreted as ql.Following. You're not using act/365 at all, I'm afraid.


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.