def _update_override(self, override_type: str, key: str, new_override_object: Override): if new_override_object.is_no_override(): self._update_override_to_no_override(override_type, key, new_override_object) else: self._update_other_type_of_override(override_type, key, new_override_object)
def get_overide_object_from_user(): invalid_input = True while invalid_input: print( "Overide options are: A number between 0.0 and 1.0 that we multiply the natural position by," ) print(" or one of the following special values %s" % override_dict) value = input("Your value?") value = float(value) try: override_object = Override.from_numeric_value(value) return override_object except Exception as e: print(e)
""" An override is something that affects our normal trading behaviour """ from syslogdiag.log import logtoscreen from sysobjects.production.override import Override from sysobjects.production.tradeable_object import instrumentStrategy from sysdata.base_data import baseData DEFAULT_OVERRIDE = Override(1.0) strategy_overrides = "strategies" instrument_overrides = "instruments" strategy_instruments_overrides = "strategies_instruments" class overrideData(baseData): def __init__(self, log=logtoscreen("Overrides")): super().__init__(log=log) def default_override(self): return DEFAULT_OVERRIDE def get_cumulative_override_for_instrument_strategy( self, instrument_strategy: instrumentStrategy) -> Override: strategy_override = self._get_override_for_strategy( instrument_strategy.strategy_name) instrument_override = self._get_override_for_instrument( instrument_strategy.instrument_code) strategy_instrument_override = self._get_override_for_instrument_strategy( instrument_strategy)
def _from_override_to_dict(override: Override) -> dict: override_as_value = override.as_numeric_value() override_as_dict = {OVERRIDE_VALUE: override_as_value} return override_as_dict
def _from_dict_to_override(result_dict: dict) -> Override: value = result_dict[OVERRIDE_VALUE] override = Override.from_numeric_value(value) return override