def view_overrides(data): diag_overrides = diagOverrides(data) all_overrides = diag_overrides.get_dict_of_all_overrides() print("All overrides:\n") for key, item in all_overrides.items(): print("%s %s" % (key, str(item))) print("\n")
def apply_overrides_for_instrument_and_strategy(self, proposed_order: instrumentOrder)\ -> instrumentOrder: """ Apply an override to a trade :param strategy_name: str :param instrument_code: str :return: int, updated position """ diag_overrides = diagOverrides(self.data) diag_positions = diagPositions(self.data) instrument_strategy = proposed_order.instrument_strategy original_position = diag_positions.get_current_position_for_instrument_strategy( instrument_strategy) override = diag_overrides.get_cumulative_override_for_instrument_strategy( instrument_strategy) revised_order = override.apply_override(original_position, proposed_order) if revised_order.trade != proposed_order.trade: log = proposed_order.log_with_attributes(self.log) log.msg("%s trade change from %s to %s because of override %s" % ( instrument_strategy.key, str(revised_order.trade), str(proposed_order.trade), str(override), )) return revised_order
def get_overrides_as_df(data): diag_overrides = diagOverrides(data) all_overrides = diag_overrides.get_dict_of_all_overrides() all_overrides_as_list = [dataOverride(key, value) for key, value in all_overrides.items()] pdf = make_df_from_list_of_named_tuple(dataOverride, all_overrides_as_list) return pdf
def apply_overrides_for_instrument_and_strategy(self, proposed_order): """ Apply an override to a trade :param strategy_name: str :param instrument_code: str :return: int, updated position """ diag_overrides = diagOverrides(self.data) diag_positions = diagPositions(self.data) strategy_name = proposed_order.strategy_name instrument_code = proposed_order.instrument_code original_position = diag_positions.get_position_for_strategy_and_instrument( strategy_name, instrument_code) override = diag_overrides.get_cumulative_override_for_strategy_and_instrument( strategy_name, instrument_code) revised_order = override.apply_override(original_position, proposed_order) if revised_order.trade != proposed_order.trade: self.log.msg( "%s/%s trade change from %d to %d because of override %s" % (strategy_name, instrument_code, revised_order.trade, proposed_order.trade, str(override)), strategy_name=strategy_name, instrument_code=instrument_code) return revised_order
def get_override_for_instrument_strategy( data: dataBlob, instrument_strategy: instrumentStrategy) -> Override: diag_overrides = diagOverrides(data) override = diag_overrides.get_cumulative_override_for_instrument_strategy( instrument_strategy) return override
def view_overrides(data): diag_overrides = diagOverrides(data) all_overrides = diag_overrides.get_dict_of_all_overrides_with_reasons() print("All overrides:\n") list_of_keys = list(all_overrides.keys()) list_of_keys.sort() for key in list_of_keys: print("%s %s" % (key, str(all_overrides[key]))) print("\n")