summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pyisda/date.pyx13
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: