Path: blob/master/ invest-robot-contest_TradingCompetition2022-main/stock/Stock.py
5927 views
from models.TradingModel import TradingModel1from logger.LoggerFactory import tech_log234class Stock:5"""6Class Stock provide full processing with ticker7"""89def __init__(self, ticker):10self._ticker = ticker # ID of Stock11self.id = self._ticker12self._logger = None # Object for collect log data13self._model = None # Link to trading model14self._figi = None15self._lot_available = 016self._count_in_lot = 017self.model_name = None18self._config = None1920"""21{ Setter/Getter22"""2324@property25def ticker(self):26return self._ticker2728@property29def figi(self):30return self._figi3132@figi.setter33def figi(self, figi):34self._figi = figi3536@property37def config(self):38return self._config3940@config.setter41def config(self, config):42self._config = config4344@property45def count_in_lot(self):46return self._count_in_lot4748@count_in_lot.setter49def count_in_lot(self, count):50self._count_in_lot = count51# ToDo Del this link. It is fast workaround :-(. (count_in_lot Should not be in both class52self._model.count_in_lot = count5354@property55def logger(self):56return self._logger5758@logger.setter59def logger(self, logger):60self._logger = logger6162@property63def model(self):64return self._model6566@model.setter67def model(self, model: TradingModel):68self._model = model6970@property71def lot_available(self):72return self._lot_available7374@tech_log75def set_available_lot(self, count):76self._lot_available = count77return self7879@property80def is_trading_done(self) -> bool:81model = self._model8283if model.is_long_available is True and model.is_long_open_done is True and model.is_long_close_done is True:84return True85# ToDo Add Short operation8687return False888990