예제 #1
0
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]]
예제 #2
0
 def test_inverse_bellcurve_trend(self):
     self.assertLessEqual(get_trend([4, 3, 2, 4]), 0)
예제 #3
0
 def test_bellcurve_trend(self):
     self.assertLessEqual(get_trend([2, 3, 4, 3, 2]), 0)
예제 #4
0
 def test_recovering_trend(self):
     self.assertGreater(get_trend([5, 2, 3, 4, 5]), 0)
예제 #5
0
 def test_downward_trend(self):
     self.assertLess(get_trend([5, 4, 3, 2, 1]), 0)
예제 #6
0
 def test_upward_trend(self):
     self.assertGreater(get_trend([1, 2, 3, 4, 5]), 0)
예제 #7
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))