def get_data_coordinate( self, measure: DataMeasure, dimensions: Optional[DataDimensions] = None, frequency: DataFrequency = DataFrequency.ANY ) -> BaseDataCoordinate: """ Get data coordinate :param measure: measure to get as series :param dimensions: dimensions to query (e.g. tenor) :param frequency: data frequency to query :return: DataCoordinate **Usage** Get a given data coordinate for the asset and measure **Examples** Get close price series: >>> from gs_quant.markets.securities import SecurityMaster >>> from gs_quant.data import DataMeasure >>> >>> gs = SecurityMaster.get_asset("GS", AssetIdentifier.TICKER) >>> gs.get_data_coordinate(DataMeasure.CLOSE_PRICE) **See also** :class:`DataMeasure` """ asset_id = self.get_identifier(AssetIdentifier.MARQUEE_ID) data_providers = GsDataApi.get_data_providers(asset_id) available = data_providers.get(measure.value, {}) daily_dataset_id = available.get(DataFrequency.DAILY) rt_dataset_id = available.get(DataFrequency.REAL_TIME) dimensions = dimensions or {} dimensions['assetId'] = asset_id if frequency == DataFrequency.DAILY: return DataCoordinate(dataset_id=daily_dataset_id, measure=measure, dimensions=dimensions) if frequency == DataFrequency.REAL_TIME: return DataCoordinate(dataset_id=rt_dataset_id, measure=measure, dimensions=dimensions)
def get_benchmark_coordinate(self) -> DataQueryInfo: coordinate = DataCoordinate(measure=DataMeasure.CLOSE_PRICE, frequency=DataFrequency.DAILY) data_query = DataQuery(coordinate=coordinate, start=self.start, end=self.end) return DataQueryInfo('benchmark', None, data_query, self.benchmark)
def get_excess_returns_query(self) -> DataQueryInfo: marquee_id = SharpeAssets[self.currency.value].value entity = Stock(marquee_id, "", "") coordinate: DataCoordinate = DataCoordinate( measure=DataMeasure.CLOSE_PRICE, frequency=DataFrequency.DAILY ) data_query: DataQuery = DataQuery(coordinate=coordinate, start=self.start, end=self.end) return DataQueryInfo('excess_returns', None, data_query, entity)