Пример #1
0
 def get_universe_factor_exposure(
     self,
     start_date: dt.date,
     end_date: dt.date = None,
     assets: DataAssetsRequest = DataAssetsRequest(UniverseIdentifier.gsid,
                                                   []),
     format: ReturnFormat = ReturnFormat.DATA_FRAME
 ) -> Union[List[Dict], pd.DataFrame]:
     """ Retrieve universe factor exposure data for existing risk model
         :param start_date: start date for data request
         :param end_date: end date for data request
         :param assets: DataAssetsRequest object with identifier and list of assets to retrieve for request
         :param format: which format to return the results in
         :return: factor exposure for assets requested """
     results = GsFactorRiskModelApi.get_risk_model_data(
         model_id=self.id,
         start_date=start_date,
         end_date=end_date,
         assets=assets,
         measures=[
             Measure.Universe_Factor_Exposure, Measure.Asset_Universe
         ],
         limit_factors=False).get('results')
     universe = assets.universe if assets.universe else results[0].get(
         'assetData').get('universe')
     factor_exposure = build_asset_data_map(results, universe,
                                            'factorExposure')
     if format == ReturnFormat.DATA_FRAME:
         factor_exposure = pd.DataFrame.from_dict(
             {(i, j): factor_exposure[i][j]
              for i in factor_exposure.keys()
              for j in factor_exposure[i].keys()},
             orient='index')
     return factor_exposure
Пример #2
0
 def get_residual_variance(
     self,
     start_date: dt.date,
     end_date: dt.date = None,
     assets: DataAssetsRequest = DataAssetsRequest(UniverseIdentifier.gsid,
                                                   []),
     format: ReturnFormat = ReturnFormat.DATA_FRAME
 ) -> Union[List[Dict], pd.DataFrame]:
     """ Retrieve residual variance data for existing risk model
         :param start_date: start date for data request
         :param end_date: end date for data request
         :param assets: DataAssetsRequest object with identifier and list of assets to retrieve for request
         :param format: which format to return the results in
         :return: residual variance for assets requested """
     results = GsFactorRiskModelApi.get_risk_model_data(
         model_id=self.id,
         start_date=start_date,
         end_date=end_date,
         assets=assets,
         measures=[Measure.Residual_Variance, Measure.Asset_Universe],
         limit_factors=False).get('results')
     universe = assets.universe if assets.universe else results[0].get(
         'assetData').get('universe')
     residual_variance = build_asset_data_map(results, universe,
                                              'residualVariance')
     if format == ReturnFormat.DATA_FRAME:
         residual_variance = pd.DataFrame(residual_variance)
     return residual_variance