Path: blob/master/ invest-robot-contest_TradingCompetition2022-main/order/OrderStorage.py
5929 views
from collections import defaultdict1from order.Orders import Order2from stock.Stock import Stock345class OrderStorage:6# Instance for storage all orders7_orders = None8_orders_archive = []910@classmethod11def get_order_storage(cls):12if cls._orders is None:13cls._orders = OrderStorage()14return cls._orders1516def __init__(self):17self._orders = defaultdict(set)1819def add_order(self, order_id, lots_requested, stock: Stock, order_type):20self._orders[stock.ticker].add(Order(order_id, lots_requested, order_type))21self._orders_archive.append(self._orders[stock.ticker])22return self2324def free_stock_orders(self,stock):25if stock.ticker in self._orders:26del self._orders[stock.ticker]27return self2829def get_order_by_ticker(self, ticker):30return self._orders[ticker]3132@property33def orders(self):34return self._orders3536def __iter__(self):37self.__storage_keys = list(self._orders.keys())38self.__iter_pos = 039return self4041def __next__(self):42if self.__iter_pos < len(self.__storage_keys):43key = self.__storage_keys[self.__iter_pos]44self.__iter_pos += 145return self._orders[key]46else:47raise StopIteration484950