def _total_unnormalised_weight_across_all_instruments_and_forecasts(
            self) -> pd.Series:
        list_of_instruments = self.get_instrument_list()
        list_of_weights = [
            self._total_unnormalised_weight_for_instrument(instrument_code)
            for instrument_code in list_of_instruments
        ]

        sum_of_weights = sum_series(list_of_weights)

        return sum_of_weights
    def _total_unnormalised_weight_for_instrument(
            self, instrument_code: str) -> pd.Series:
        list_of_rules = self.list_of_rules_for_code(instrument_code)
        list_of_weights = [
            self._unnormalised_weight_for_forecast_and_instrument(
                instrument_code, rule_variation_name)
            for rule_variation_name in list_of_rules
        ]

        sum_of_weights = sum_series(list_of_weights)

        return sum_of_weights
    def _total_unnormalised_weight_for_trading_rule(
            self, rule_variation_name: str) -> pd.Series:
        list_of_instruments = self.get_instrument_list()

        list_of_weights = [
            self._unnormalised_weight_for_forecast_and_instrument(
                instrument_code, rule_variation_name=rule_variation_name)
            for instrument_code in list_of_instruments
        ]

        sum_weights = sum_series(list_of_weights)

        return sum_weights