コード例 #1
0
    def testShiftedSecurityValueHolder(self):
        mm = SecurityMovingAverage(2, 'close')
        shifted1 = mm.shift(1)

        data1 = {'aapl': {'close': 1.0},
                 'ibm': {'close': 2.0},
                 'goog': {'close': 3.0}}
        shifted1.push(data1)
        calculated = shifted1.value
        for name in calculated.index():
            self.assertTrue(np.isnan(calculated[name]))

        data2 = {'aapl': {'close': 2.0},
                 'ibm': {'close': 3.0},
                 'goog': {'close': 4.0}}

        shifted1.push(data2)
        expected = SeriesValues({'aapl': 1.0,
                                 'ibm': 2.0,
                                 'goog': 3.0})
        calculated = shifted1.value
        for name in expected.index():
            self.assertAlmostEqual(expected[name], calculated[name])

        data3 = ({'aapl': {'close': 3.0},
                  'ibm': {'close': 4.0},
                  'goog': {'close': 5.0}})

        shifted1.push(data3)
        expected = SeriesValues({'aapl': 1.5,
                                 'ibm': 2.5,
                                 'goog': 3.5})
        calculated = shifted1.value
        for name in expected.index():
            self.assertAlmostEqual(expected[name], calculated[name])
コード例 #2
0
    def testSecurityValuesInit(self):
        data = np.array([1, 2, 3])
        index = ['c', 'b', 'a']

        test = SeriesValues(data, dict(zip(index, range(len(index)))))
        expected = dict(zip(index, data))

        for name in test.index():
            self.assertEqual(test[name], expected[name])
コード例 #3
0
    def testDeltaSecurityValueHolder(self):
        mm = SecurityMovingAverage(2, 'close')
        delta1 = SecurityDeltaValueHolder(mm, 2)

        data1 = {'aapl': {'close': 1.0},
                 'ibm': {'close': 2.0},
                 'goog': {'close': 3.0}}
        delta1.push(data1)
        calculated = delta1.value
        for name in calculated.index():
            self.assertTrue(np.isnan(calculated[name]))

        data2 = {'aapl': {'close': 2.0},
                 'ibm': {'close': 3.0},
                 'goog': {'close': 4.0}}

        delta1.push(data2)

        data3 = {'aapl': {'close': 3.0},
                 'ibm': {'close': 4.0},
                 'goog': {'close': 5.0}}

        delta1.push(data3)

        expected = SeriesValues({'aapl': 1.5,
                                 'ibm': 1.5,
                                 'goog': 1.5})
        calculated = delta1.value
        for name in expected.index():
            self.assertAlmostEqual(expected[name], calculated[name])

        data4 = ({'aapl': {'close': 4.0},
                  'ibm': {'close': 5.0},
                  'goog': {'close': 6.0}})

        delta1.push(data4)
        expected = SeriesValues({'aapl': 2.0,
                                 'ibm': 2.0,
                                 'goog': 2.0})
        calculated = delta1.value
        for name in expected.index():
            self.assertAlmostEqual(expected[name], calculated[name])
コード例 #4
0
    def testSecurityValuesUnit(self):
        data = np.array([3, -2, np.nan, np.nan, 4, 5])
        index = [1, 2, 3, 4, 5, 6]
        test = SeriesValues(data, index)
        test = test.unit()

        expected = SeriesValues(data / np.nansum(np.abs(data)), dict(zip(index, range(len(index)))))
        for name in test.index():
            if np.isnan(test[name]):
                self.assertTrue(np.isnan(expected[name]))
            else:
                self.assertEqual(test[name], expected[name])
コード例 #5
0
    def testSecurityConstArrayValueHolder(self):
        constArray = SecurityConstArrayValueHolder({'a': 1.0, 'b': 2.0})

        testValue = constArray.value
        expectedValue = SeriesValues(np.array([1.0, 2.0]), index=['a', 'b'])

        for name in expectedValue.index():
            self.assertAlmostEqual(testValue[name], expectedValue[name])

        testValue = constArray.value_by_name('a')
        self.assertAlmostEqual(1.0, testValue)

        testValue = constArray.value_by_names(['b', 'a', 'c'])
        expectedValue = SeriesValues(np.array([2.0, 1.0, np.nan]), index=['b', 'a', 'c'])

        np.testing.assert_array_almost_equal(testValue.values, expectedValue.values)
        self.assertEqual(testValue.name_mapping, expectedValue.name_mapping)