forked from pst-group/pysystemtrade
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtemporary_override.py
More file actions
49 lines (36 loc) · 1.76 KB
/
temporary_override.py
File metadata and controls
49 lines (36 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
from sysdata.base_data import baseData
from sysobjects.production.override import Override
from syslogging.logger import get_logger
class temporaryOverrideData(baseData):
"""
Temporary close is a way of temporarily setting position limits to
zero
We use this table to store the old position limits
"""
def __init__(self, log=get_logger("temporaryOverrideData")):
super().__init__(log=log)
def add_stored_override(
self, instrument_code: str, override_for_instrument: Override
):
if self.does_instrument_have_override_stored(instrument_code):
raise Exception(
"Need to clear_stored_override_for_instrument before adding a new one for %s"
% instrument_code
)
self._add_stored_override_without_checking(
instrument_code=instrument_code,
override_for_instrument=override_for_instrument,
)
def get_stored_override_for_instrument(self, instrument_code: str) -> Override:
raise NotImplementedError("Need to use inheriting class")
def clear_stored_override_for_instrument(self, instrument_code: str):
if self.does_instrument_have_override_stored(instrument_code):
self._delete_stored_override_without_checking(instrument_code)
def _add_stored_override_without_checking(
self, instrument_code: str, override_for_instrument: Override
):
raise NotImplementedError("Need to use inheriting class")
def does_instrument_have_override_stored(self, instrument_code) -> bool:
raise NotImplementedError("Need to use inheriting class")
def _delete_stored_override_without_checking(self, instrument_code: str):
raise NotImplementedError("Need to use inheriting class")