Beispiel #1
0
    def common_index(self):
        all_indices = [data_item.index for data_item in self]
        all_indices_flattened = flatten_list(all_indices)
        common_unique_index = list(set(all_indices_flattened))
        common_unique_index.sort()

        return common_unique_index
Beispiel #2
0
    def common_columns(self):
        all_columns = [data_item.columns for data_item in self]
        all_columns_flattened = flatten_list(all_columns)
        common_unique_columns = list(set(all_columns_flattened))
        common_unique_columns.sort()

        return common_unique_columns
Beispiel #3
0
    def as_df(self):
        instrument_codes = [
            instrument_object.instrument_code for instrument_object in self
        ]
        meta_data_keys = [
            instrument_object.meta_data.as_dict().keys() for instrument_object in self
        ]
        meta_data_keys_flattened = flatten_list(meta_data_keys)
        meta_data_keys_unique = list(set(meta_data_keys_flattened))

        meta_data_as_lists = dict(
            [
                (
                    metadata_name,
                    [
                        getattr(instrument_object.meta_data, metadata_name)
                        for instrument_object in self
                    ],
                )
                for metadata_name in meta_data_keys_unique
            ]
        )

        meta_data_as_dataframe = pd.DataFrame(
            meta_data_as_lists, index=instrument_codes
        )

        return meta_data_as_dataframe
Beispiel #4
0
def  _get_average_return_in_dict_for_column(returns_dict: dictOfReturnsForOptimisation,
                                                column: str) -> float:

    ## all daily data so can take an average
    series_of_returns = [returns_series[column].values
                         for returns_series in returns_dict.values()]
    all_returns = flatten_list(series_of_returns)

    return np.nanmean(all_returns)
Beispiel #5
0
    def _calculate_pseudo_fills(self) -> list:
        list_of_years_in_data = years_in_data(self.positions)
        fills_by_year = [
            self._pseudo_fills_for_year(year) for year in list_of_years_in_data
        ]

        fills_as_single_list = flatten_list(fills_by_year)

        return fills_as_single_list
Beispiel #6
0
    def assets_with_missing_data(self) -> list:
        missing_correlations = self.correlation.assets_with_missing_data()
        missing_means = self.correlation.assets_with_missing_data()
        missing_stdev = self.stdev.assets_with_missing_data()

        missing_assets = list(
            set(flatten_list([missing_stdev, missing_means, missing_correlations]))
        )

        return missing_assets
Beispiel #7
0
    def from_list_of_subportfolios(portfolioWeights,
                                   list_of_portfolio_weights):
        list_of_unique_asset_names = \
            list(set(flatten_list([list(subportfolio.keys()) for subportfolio in list_of_portfolio_weights])))

        portfolio_weights = portfolioWeights.allzeros(
            list_of_unique_asset_names)

        for subportfolio_weights in list_of_portfolio_weights:
            for asset_name in list(subportfolio_weights.keys()):
                portfolio_weights[asset_name] = portfolio_weights[
                    asset_name] + subportfolio_weights[asset_name]

        return portfolio_weights
Beispiel #8
0
def assets_in_cluster_order(corr_matrix: correlationEstimate,
                            cluster_size: int = 2):
    clusters_as_names = cluster_correlation_matrix(corr_matrix,
                                                   cluster_size=cluster_size)

    return flatten_list(clusters_as_names)