def test_absolute_classify(self): classifier = cl.BuySellClassifier() res = classifier.absolute_classify(self.tf) rets = cl.n_day_returns(5, self.tf) for x in (np.random.rand(10) * len(rets)).round(): i = int(x) if rets[i] <= 0: self.assertEqual(res[i], 0) else: self.assertEqual(res[i], 1)
def test_buy_sell_classifier(self): classifier = cl.BuySellClassifier() res = classifier.classify(self.tf) rets = cl.n_day_returns(5, self.tf) for x in (np.random.rand(10) * len(rets)).round(): i = int(x) self.assertTrue(np.equal(res[i], cl._buy_sell_threshold(rets[i])).all()) self.assertTrue(all(map(lambda x: x == None, res[-5:]))) self.assertFalse(res[-6] == None) self.assertTrue(res.index[0], self.tf.feature_data.index[0]) self.assertTrue(res.index[-1], self.tf.feature_data.index[-1])
def test_3_day_returns(self): rets = cl.n_day_returns(3, self.tf) self.assertEqual(rets.index[0], self.tf.feature_data.index[0]) self.assertEqual(rets.index[-1], self.tf.feature_data.index[-1]) data = self.tf.relative_close_data_trimmed() res0 = (data[3]/data[0]) - 1 res1 = (data[4]/data[1]) - 1 res20 = (data[23]/data[20]) - 1 self.assertEqual(rets[0], res0) self.assertEqual(rets[1], res1) self.assertEqual(rets[20], res20)