def testTimeseries(self): cal = Calendar('China.SSE') dates = cal.bizDatesList(Date(2014, 1, 1), Date(2015, 7, 21)) values = [0.1 * i for i, _ in enumerate(dates)] ts = Timeseries(dates, values) self.assertEqual(ts.size(), len(dates)) firstDate = ts.firstDate() lastDate = ts.lastDate() self.assertEqual( dates[0], firstDate, "Expected first date {0} is not equal to ts's first date {1}". format(dates[0], firstDate)) self.assertEqual( dates[-1], lastDate, "Expected last date {0} is not equal to ts's last date {1}".format( dates[-1], lastDate)) for date, value in zip(dates, values): self.assertEqual( ts[date], value, "Expected value at day {0} is not equal to expected {1:f}". format(date, value))
def __init__(self, type=NormalizingType.Null): self._previous = None self._current = None self._type = type if self._type == NormalizingType.BizDay or self._type == NormalizingType.CalendarDay: self._isFirst = True if self._type == NormalizingType.BizDay: self._cal = Calendar('China.SSE')
def testHolDatesList(self): holDtList = holDatesList('China.SSE', self.fromDate, self.toDate) fromDate = Date.fromDateTime(self.fromDate) currentDate = fromDate.toDateTime() cal = Calendar('China.SSE') while currentDate <= self.toDate: finpyDate = Date.fromDateTime(currentDate) if not cal.isBizDay(finpyDate): self.assertTrue(finpyDate.toDateTime() in holDtList, "{0} is expected as a holiday in {1}".format(finpyDate, cal)) currentDate = (finpyDate + 1).toDateTime()
def testAdjustDateByCalendar(self): referenceDate = Date(2014, 10, 1) cal = Calendar('China.SSE') expected = adjustDateByCalendar('China.SSE', referenceDate.toDateTime()) calculated = cal.adjustDate(referenceDate) self.assertEqual(expected, calculated.toDateTime()) referenceDate = Date(2014, 10, 8) expected = adjustDateByCalendar('China.SSE', referenceDate.toDateTime(), BizDayConventions.Preceding) calculated = cal.adjustDate(referenceDate, BizDayConventions.Preceding) self.assertEqual(expected, calculated.toDateTime())
def __init__(self, type=NormalizingType.Null): self._previous = None self._current = None self._type = type if self._type == NormalizingType.BizDay or self._type == NormalizingType.CalendarDay: self._isFirst = True if self._type == NormalizingType.BizDay: self._cal = Calendar("China.SSE")
def testAdvanceDateByCalendar(self): referenceDate = Date(2014, 10, 1) cal = Calendar('China.SSE') expected = advanceDateByCalendar('China.SSE', referenceDate.toDateTime(), '2D') calculated = cal.advanceDate(referenceDate, '2D') self.assertEqual(expected, calculated.toDateTime()) expected = advanceDateByCalendar('China.SSE', referenceDate.toDateTime(), '2D') calculated = cal.advanceDate(referenceDate, '2D') self.assertEqual(expected, calculated.toDateTime()) expected = advanceDateByCalendar('China.SSE', referenceDate.toDateTime(), '2B') calculated = cal.advanceDate(referenceDate, '2B') self.assertEqual(expected, calculated.toDateTime()) expected = advanceDateByCalendar('China.SSE', referenceDate.toDateTime(), '1Y') calculated = cal.advanceDate(referenceDate, '1Y') self.assertEqual(expected, calculated.toDateTime())
def testTimeseries(self): cal = Calendar('China.SSE') dates = cal.bizDatesList(Date(2014, 1, 1), Date(2015, 7, 21)) values = [0.1 * i for i, _ in enumerate(dates)] ts = Timeseries(dates, values) self.assertEqual(ts.size(), len(dates)) firstDate = ts.firstDate() lastDate = ts.lastDate() self.assertEqual(dates[0], firstDate, "Expected first date {0} is not equal to ts's first date {1}" .format(dates[0], firstDate)) self.assertEqual(dates[-1], lastDate, "Expected last date {0} is not equal to ts's last date {1}" .format(dates[-1], lastDate)) for date, value in zip(dates, values): self.assertEqual(ts[date], value, "Expected value at day {0} is not equal to expected {1:f}" .format(date, value))
class Normalizer(object): def __init__(self, type=NormalizingType.Null): self._previous = None self._current = None self._type = type if self._type == NormalizingType.BizDay or self._type == NormalizingType.CalendarDay: self._isFirst = True if self._type == NormalizingType.BizDay: self._cal = Calendar('China.SSE') def normalizeOneDayReturn(self, pDate, pReturn): if self._type == NormalizingType.Null: return pReturn elif self._type == NormalizingType.CalendarDay: return self._calendarDayCalcualtion(pDate, pReturn) elif self._type == NormalizingType.BizDay: return self._bizDayCalculation(pDate, pReturn) def _calendarDayCalcualtion(self, pDate, pReturn): if self._isFirst: self._isFirst = False else: daysBetween = pDate - self._previous pReturn /= daysBetween self._previous = pDate return pReturn def _bizDayCalculation(self, pDate, pReturn): if self._isFirst: self._isFirst = False else: daysBetween = self._cal.bizDaysBetween(self._previous, pDate, True, False) pReturn /= daysBetween self._previous = pDate return pReturn
class Normalizer(object): def __init__(self, type=NormalizingType.Null): self._previous = None self._current = None self._type = type if self._type == NormalizingType.BizDay or self._type == NormalizingType.CalendarDay: self._isFirst = True if self._type == NormalizingType.BizDay: self._cal = Calendar("China.SSE") def normalizeOneDayReturn(self, pDate, pReturn): if self._type == NormalizingType.Null: return pReturn elif self._type == NormalizingType.CalendarDay: return self._calendarDayCalcualtion(pDate, pReturn) elif self._type == NormalizingType.BizDay: return self._bizDayCalculation(pDate, pReturn) def _calendarDayCalcualtion(self, pDate, pReturn): if self._isFirst: self._isFirst = False else: daysBetween = pDate - self._previous pReturn /= daysBetween self._previous = pDate return pReturn def _bizDayCalculation(self, pDate, pReturn): if self._isFirst: self._isFirst = False else: daysBetween = self._cal.bizDaysBetween(self._previous, pDate, True, False) pReturn /= daysBetween self._previous = pDate return pReturn
def testAdvanceDateByCalendar(self): referenceDate = Date(2014, 10, 1) cal = Calendar('China.SSE') expected = advanceDateByCalendar('China.SSE', referenceDate.toDateTime(), '2D') calculated = cal.advanceDate(referenceDate, Period('2D')) self.assertEqual(expected, calculated.toDateTime()) expected = advanceDateByCalendar('China.SSE', referenceDate.toDateTime(), '2D') calculated = cal.advanceDate(referenceDate, Period('2D')) self.assertEqual(expected, calculated.toDateTime()) expected = advanceDateByCalendar('China.SSE', referenceDate.toDateTime(), '2B') calculated = cal.advanceDate(referenceDate, Period('2B')) self.assertEqual(expected, calculated.toDateTime()) expected = advanceDateByCalendar('China.SSE', referenceDate.toDateTime(), '1Y') calculated = cal.advanceDate(referenceDate, Period('1Y')) self.assertEqual(expected, calculated.toDateTime())
def setUp(self): cal = Calendar('China.SSE') self.dates = cal.bizDatesList(Date(2014, 1, 1), Date(2015, 7, 21)) self.rets = [0.05 for _ in self.dates]