summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--trade_queue.py15
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}.")