コード例 #1
0
    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)
コード例 #2
0
 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)
コード例 #3
0
    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)