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)
def LAST(dependency='x'): return SecurityLatestValueHolder(dependency)
def LAST(dependency='x', symbolList=None): return SecurityLatestValueHolder(dependency, symbolList)