dcf#
- rateslib.calendars.dcf(start, end, convention, termination=NoInput.blank, frequency_months=NoInput.blank, stub=NoInput.blank, roll=NoInput.blank, calendar=NoInput.blank)#
Calculate the day count fraction of a period.
- Parameters:
start (datetime) – The adjusted start date of the calculation period.
end (datetime) – The adjusted end date of the calculation period.
convention (str) – The day count convention of the calculation period accrual. See notes.
termination (datetime, optional) –
The adjusted termination date of the leg. Required only if
convention
is one of the following values:”30E360ISDA” (since end Feb is adjusted to 30 unless it aligns with
termination
of a leg)”ACTACTICMA”, “ACTACTISMA”, “ACTACTBOND”, “ACTACTICMA_STUB365F”, (if the period is a stub the
termination
of the leg is used to assess front or back stubs and adjust the calculation accordingly)
frequency_months (int, optional) – The number of months according to the frequency of the period. Required only with specific values for
convention
.stub (bool, optional) – Required for “ACTACTICMA”, “ACTACTISMA”, “ACTACTBOND”, “ACTACTICMA_STUB365F”. Non-stub periods will return a fraction equal to the frequency, e.g. 0.25 for quarterly.
roll (str, int, optional) – Used by “ACTACTICMA”, “ACTACTISMA”, “ACTACTBOND”, “ACTACTICMA_STUB365F” to project regular periods when calculating stubs.
calendar (str, Calendar, optional) – Currently unused.
- Return type:
float
Notes
Permitted values for the convention are:
“1”: Returns 1 for any period.
“1+”: Returns the number of months between dates divided by 12.
“Act365F”: Returns actual number of days divided by a fixed 365 denominator.
“Act365F+”: Returns the number of years and the actual number of days in the fractional year divided by a fixed 365 denominator.
“Act360”: Returns actual number of days divided by a fixed 360 denominator.
“30E360”, “EuroBondBasis”: Months are treated as having 30 days and start and end dates are converted under the rule:
start day is minimum of (30, start day),
end day is minimum of (30, end day).
“30360”, “360360”, “BondBasis”: Months are treated as having 30 days and start and end dates are converted under the rule:
start day is minimum of (30, start day),
end day is minimum of (30, start day) only if start day was adjusted.
“30360ISDA”: Months are treated as having 30 days and start and end dates are converted under the rule:
start day is converted to 30 if it is a month end.
end day is converted to 30 if it is a month end.
end day is not converted if it coincides with the leg termination and is in February.
“ActAct”, “ActActISDA”: Calendar days between start and end are divided by 365 or 366 dependent upon whether they fall within a leap year or not.
“ActActICMA”, “ActActISMA”, “ActActBond”, “ActActICMA_stub365f”: Returns a fraction relevant to the frequency of the schedule if a regular period. If a stub then projects a regular period and returns a fraction of that period.
Further information can be found in the
2006 ISDA definitions
and2006 ISDA 30360 example
.Examples
In [1]: dcf(dt(2000, 1, 1), dt(2000, 4, 3), "Act360") Out[1]: 0.25833333333333336 In [2]: dcf(dt(2000, 1, 1), dt(2000, 4, 3), "Act365f") Out[2]: 0.2547945205479452 In [3]: dcf(dt(2000, 1, 1), dt(2000, 4, 3), "ActActICMA", dt(2010, 1, 1), 3, False) Out[3]: 0.25 In [4]: dcf(dt(2000, 1, 1), dt(2000, 4, 3), "ActActICMA", dt(2010, 1, 1), 3, True) Out[4]: 0.2554347826086957