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')
Пример #3
0
 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 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()
Пример #5
0
    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 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())
Пример #7
0
    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")
Пример #8
0
    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())
Пример #9
0
    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))
Пример #10
0
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
Пример #11
0
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())
Пример #13
0
 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]
Пример #14
0
 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]