def get_index_investing_data(): from db import Symbol from data import get_trend recommendation = [] for s in Symbol.query.filter( db.and_(Symbol.symbol_type == 'ETF', Symbol.index == True)): data = [x.close for x in s.get_historical_data_monthly()] trend = get_trend(data) if trend > 0: recommendation.append((s, trend)) recommendation.sort(key=operator.itemgetter(1)) return [recommendation[0][0], recommendation[1][0], recommendation[2][0]]
def test_inverse_bellcurve_trend(self): self.assertLessEqual(get_trend([4, 3, 2, 4]), 0)
def test_bellcurve_trend(self): self.assertLessEqual(get_trend([2, 3, 4, 3, 2]), 0)
def test_recovering_trend(self): self.assertGreater(get_trend([5, 2, 3, 4, 5]), 0)
def test_downward_trend(self): self.assertLess(get_trend([5, 4, 3, 2, 1]), 0)
def test_upward_trend(self): self.assertGreater(get_trend([1, 2, 3, 4, 5]), 0)
def post(self): num = json_decode(self.get_argument('num')) base = json_decode(self.get_argument('base')) res = data.get_trend(int(num), base) response = {'status': 'ok', 'trend': res} self.write(json_encode(response))