From 9f9bb410476298f1bcd4af3405eb88c98be7b92f Mon Sep 17 00:00:00 2001 From: Guillaume Horel Date: Sun, 5 Apr 2020 21:46:31 -0400 Subject: pyisda/date.pyx --- pyisda/date.pyx | 13 +++++++++---- 1 file 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: -- cgit v1.2.3-70-g09d2