Beispiel #1
0
    def get_latest_orderbook_for_exchange(self, gds_db, exchange):
        orderbook = None

        if self.no_lookback_limit is True:
            orderbook = gds_db.query(Orderbook)\
                .filter(Orderbook.exchange == exchange.name.upper())\
                .order_by(Orderbook.timestamp.desc())\
                .first()
        else:
            # We only show orderbooks from the last hour.
            now = Delorean()
            latest_orderbook_time = now.naive
            earliest_orderbook_time = now.last_hour(1).naive

            orderbook = gds_db.query(Orderbook)\
                .filter(Orderbook.exchange == exchange.name.upper())\
                .filter(Orderbook.timestamp > earliest_orderbook_time)\
                .filter(Orderbook.timestamp <= latest_orderbook_time)\
                .order_by(Orderbook.timestamp.desc())\
                .first()

        return orderbook