diff options
| -rw-r--r-- | pyisda/date.pyx | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/pyisda/date.pyx b/pyisda/date.pyx index 2482fbd..72a1413 100644 --- a/pyisda/date.pyx +++ b/pyisda/date.pyx @@ -70,10 +70,15 @@ def previous_twentieth(d, bint roll=True): @cython.cdivision(True) -def cds_accrued(d, double coupon): - cdef TDate date = pydate_to_TDate(d) + 1 - cdef TDate date1 = next_business_day(date, PREVIOUS) - return (date - _previous_twentieth(date1, True))/360. * coupon +def cds_accrued(d, double coupon, bint include_cashflow=False): + cdef: + TDate date = pydate_to_TDate(d) + 1 + TDate date1 = next_business_day(date, PREVIOUS) + TDate date_prev = _previous_twentieth(date1, True) + + if date_prev == date and include_cashflow: + date_prev = _previous_twentieth(date - 1, True) + return (date - date_prev)/360. * coupon cdef TMonthDayYear next_twentieth(TDate d) nogil: |
