예제 #1
0
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
예제 #3
0
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
예제 #4
0
    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
예제 #5
0
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")