diff options
Diffstat (limited to 'trade_queue.py')
-rw-r--r-- | trade_queue.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/trade_queue.py b/trade_queue.py index 5e7fb41..6e8c2c5 100644 --- a/trade_queue.py +++ b/trade_queue.py @@ -1,4 +1,5 @@ import logging +import bisect from collections import deque from copy import deepcopy from decimal import Decimal @@ -32,7 +33,7 @@ class FIFOQueue: Get amount of trades in the queue. """ return len(self.__queue) - + def __repr__(self) -> str: """ Get string representation of queue (for debugging). @@ -50,7 +51,11 @@ class FIFOQueue: Add a trade to the queue by specifying properties. """ trade = Trade(amount, total_cost, date) - self.__queue.append(trade) + bisect.insort( + self.__queue, + trade, + key=lambda t: t.date + ) self._cache_valid = False logger.info(f"Added trade: {trade}.") @@ -58,7 +63,11 @@ class FIFOQueue: """ Add a trade to the queue. """ - self.__queue.append(trade) + bisect.insort( + self.__queue, + trade, + key=lambda t: t.date + ) self._cache_valid = False logger.info(f"Added trade: {trade}.") |