def testMovingRSI(self): window = 10 rsi = MovingRSI(window=window, dependency='x') pos_avg = MovingPositiveDifferenceAverage(window=window, dependency='x') neg_avg = MovingNegativeDifferenceAverage(window=window, dependency='x') for i, value in enumerate(self.sample): rsi.push(dict(x=value)) pos_avg.push(dict(x=value)) neg_avg.push(dict(x=value)) calculated = rsi.value expected = pos_avg.value / (pos_avg.value - neg_avg.value) * 100 if i > 0: self.assertAlmostEqual(calculated, expected, 8, "at index {0:d}\n" "negative average expected: {1:f}\n" "negative average calculated: {2:f}".format(i, expected, calculated))
def testMovingRSI(self): window = 10 rsi = MovingRSI(window=window, dependency='x') pos_avg = MovingPositiveDifferenceAverage(window=window, dependency='x') neg_avg = MovingNegativeDifferenceAverage(window=window, dependency='x') for i, value in enumerate(self.sample): rsi.push(dict(x=value)) pos_avg.push(dict(x=value)) neg_avg.push(dict(x=value)) calculated = rsi.value expected = pos_avg.value / (pos_avg.value - neg_avg.value) * 100 if i > 0: self.assertAlmostEqual( calculated, expected, 8, "at index {0:d}\n" "negative average expected: {1:f}\n" "negative average calculated: {2:f}".format( i, expected, calculated))
def testMovingNegativeDifferenceAverage(self): window = 10 mv = MovingNegativeDifferenceAverage(window=window, dependency='x') last = self.sample[0] diff_list = [] for i, value in enumerate(self.sample): mv.push(dict(x=value)) diff = value - last if i > 0: diff_list.append(diff) last = value neg_list = np.minimum(diff_list[-window:], 0.) expected = 0. if np.isnan(np.mean(neg_list)) else np.mean(neg_list) calculated = mv.result() if i > 0: self.assertAlmostEqual( calculated, expected, 8, "at index {0:d}\n" "negative average expected: {1:f}\n" "negative average calculated: {2:f}".format( i, expected, calculated))
def testMovingNegativeDifferenceAverage(self): window = 10 mv = MovingNegativeDifferenceAverage(window=window, dependency='x') last = self.sample[0] diff_list = [] for i, value in enumerate(self.sample): mv.push(dict(x=value)) diff = value - last if i > 0: diff_list.append(diff) last = value neg_list = np.minimum(diff_list[-window:], 0.) expected = 0. if np.isnan(np.mean(neg_list)) else np.mean(neg_list) calculated = mv.result() if i > 0: self.assertAlmostEqual(calculated, expected, 8, "at index {0:d}\n" "negative average expected: {1:f}\n" "negative average calculated: {2:f}".format(i, expected, calculated))