Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wiseplat
GitHub Repository: wiseplat/python-code
Path: blob/master/ invest-robot-contest_TradingCompetition2022-main/stock/Stock.py
5927 views
1
from models.TradingModel import TradingModel
2
from logger.LoggerFactory import tech_log
3
4
5
class Stock:
6
"""
7
Class Stock provide full processing with ticker
8
"""
9
10
def __init__(self, ticker):
11
self._ticker = ticker # ID of Stock
12
self.id = self._ticker
13
self._logger = None # Object for collect log data
14
self._model = None # Link to trading model
15
self._figi = None
16
self._lot_available = 0
17
self._count_in_lot = 0
18
self.model_name = None
19
self._config = None
20
21
"""
22
{ Setter/Getter
23
"""
24
25
@property
26
def ticker(self):
27
return self._ticker
28
29
@property
30
def figi(self):
31
return self._figi
32
33
@figi.setter
34
def figi(self, figi):
35
self._figi = figi
36
37
@property
38
def config(self):
39
return self._config
40
41
@config.setter
42
def config(self, config):
43
self._config = config
44
45
@property
46
def count_in_lot(self):
47
return self._count_in_lot
48
49
@count_in_lot.setter
50
def count_in_lot(self, count):
51
self._count_in_lot = count
52
# ToDo Del this link. It is fast workaround :-(. (count_in_lot Should not be in both class
53
self._model.count_in_lot = count
54
55
@property
56
def logger(self):
57
return self._logger
58
59
@logger.setter
60
def logger(self, logger):
61
self._logger = logger
62
63
@property
64
def model(self):
65
return self._model
66
67
@model.setter
68
def model(self, model: TradingModel):
69
self._model = model
70
71
@property
72
def lot_available(self):
73
return self._lot_available
74
75
@tech_log
76
def set_available_lot(self, count):
77
self._lot_available = count
78
return self
79
80
@property
81
def is_trading_done(self) -> bool:
82
model = self._model
83
84
if model.is_long_available is True and model.is_long_open_done is True and model.is_long_close_done is True:
85
return True
86
# ToDo Add Short operation
87
88
return False
89
90