def testRankedSecurityValueHolder(self):
        benchmark = SecurityLatestValueHolder(dependency='close')
        rankHolder = RankedSecurityValueHolder(benchmark)

        for i in range(len(self.datas['aapl']['close'])):
            data = {'aapl': {Factors.CLOSE: self.datas['aapl'][Factors.CLOSE][i],
                             Factors.OPEN: self.datas['aapl'][Factors.OPEN][i]},
                    'ibm': {Factors.CLOSE: self.datas['ibm'][Factors.CLOSE][i],
                            Factors.OPEN: self.datas['ibm'][Factors.OPEN][i]}}
            benchmark.push(data)
            rankHolder.push(data)
            benchmarkValues = benchmark.value
            np.testing.assert_array_almost_equal(benchmarkValues.rank(), rankHolder.value)
    def testFilteredSecurityValueHolder(self):
        benchmark = SecurityLatestValueHolder(dependency='close') > 0
        filtered = FilteredSecurityValueHolder(benchmark, benchmark)

        for i in range(len(self.datas['aapl']['close'])):
            data = {'aapl': {Factors.CLOSE: self.datas['aapl'][Factors.CLOSE][i],
                             Factors.OPEN: self.datas['aapl'][Factors.OPEN][i]},
                    'ibm': {Factors.CLOSE: self.datas['ibm'][Factors.CLOSE][i],
                            Factors.OPEN: self.datas['ibm'][Factors.OPEN][i]}}
            benchmark.push(data)
            filtered.push(data)
            if np.isnan(filtered['aapl']):
                self.assertTrue(filtered['aapl'])
            if np.isnan(filtered['ibm']):
                self.assertTrue(filtered['ibm'])
    def testRankedSecurityValueHolder(self):
        benchmark = SecurityLatestValueHolder(dependency='close')
        rankHolder = RankedSecurityValueHolder(benchmark)

        for i in range(len(self.datas['aapl']['close'])):
            data = {
                'aapl': {
                    Factors.CLOSE: self.datas['aapl'][Factors.CLOSE][i],
                    Factors.OPEN: self.datas['aapl'][Factors.OPEN][i]
                },
                'ibm': {
                    Factors.CLOSE: self.datas['ibm'][Factors.CLOSE][i],
                    Factors.OPEN: self.datas['ibm'][Factors.OPEN][i]
                }
            }
            benchmark.push(data)
            rankHolder.push(data)
            benchmarkValues = benchmark.value
            np.testing.assert_array_almost_equal(benchmarkValues.rank(),
                                                 rankHolder.value)
    def testFilteredSecurityValueHolder(self):
        benchmark = SecurityLatestValueHolder(dependency='close') > 0
        filtered = FilteredSecurityValueHolder(benchmark, benchmark)

        for i in range(len(self.datas['aapl']['close'])):
            data = {
                'aapl': {
                    Factors.CLOSE: self.datas['aapl'][Factors.CLOSE][i],
                    Factors.OPEN: self.datas['aapl'][Factors.OPEN][i]
                },
                'ibm': {
                    Factors.CLOSE: self.datas['ibm'][Factors.CLOSE][i],
                    Factors.OPEN: self.datas['ibm'][Factors.OPEN][i]
                }
            }
            benchmark.push(data)
            filtered.push(data)
            if np.isnan(filtered['aapl']):
                self.assertTrue(filtered['aapl'])
            if np.isnan(filtered['ibm']):
                self.assertTrue(filtered['ibm'])
    def testGtSecurityValueHolder(self):
        filter = SecurityLatestValueHolder('close') > 10.0
        ma = SecurityMovingAverage(10, 'close')[filter]

        data = {
            'aapl': {
                'close': 15.
            },
            'ibm': {
                'close': 8.
            },
            'goog': {
                'close': 7.
            }
        }

        ma.push(data)
        expected = {'aapl': 15.}
        calculated = ma.value
        for name in expected:
            self.assertAlmostEqual(expected[name], calculated[name], 15)

        data = {
            'aapl': {
                'close': 9.
            },
            'ibm': {
                'close': 11.
            },
            'goog': {
                'close': 8.
            }
        }

        ma.push(data)
        expected = {'ibm': 9.5}
        calculated = ma.value
        for name in expected:
            self.assertAlmostEqual(expected[name], calculated[name], 15)
示例#6
0
def LAST(dependency='x'):
    return SecurityLatestValueHolder(dependency)
示例#7
0
def LAST(dependency='x', symbolList=None):
    return SecurityLatestValueHolder(dependency, symbolList)