Example #1
0
    def get_fx_forward_points(self,
                              start,
                              end,
                              cross,
                              tenor,
                              cut="BGN",
                              source="bloomberg",
                              cache_algo="internet_load_return"):
        """ get_forward_points = get forward points for specified cross, tenor and part of surface

        :param start: start date
        :param end: end date
        :param cross: asset to be calculated
        :param tenor: tenor to calculate
        :param cut: closing time of data
        :param source: source of data eg. bloomberg

        :return: forward points
        """

        market_data_request = MarketDataRequest()
        market_data_generator = self.market_data_generator

        market_data_request.data_source = source  # use bbg as a source
        market_data_request.start_date = start  # start_date
        market_data_request.finish_date = end  # finish_date

        if isinstance(cross, str): cross = [cross]
        if isinstance(tenor, str): tenor = [tenor]

        tenor = [x.replace('1Y', '12M') for x in tenor]

        tickers = []

        for cr in cross:
            for tn in tenor:
                tickers.append(cr + tn)

        market_data_request = MarketDataRequest(start_date=start,
                                                finish_date=end,
                                                data_source=source,
                                                category='fx-forwards',
                                                freq='daily',
                                                cut=cut,
                                                tickers=tickers,
                                                fields=['close'],
                                                cache_algo=cache_algo,
                                                environment='backtest')

        data_frame = market_data_generator.fetch_market_data(
            market_data_request)
        data_frame.columns = [
            x.replace('12M', '1Y') for x in data_frame.columns
        ]
        data_frame.index.name = 'Date'

        return data_frame
Example #2
0
    def get_fx_forward_points(self,
                              start,
                              end,
                              cross,
                              tenor,
                              cut="BGN",
                              data_source="bloomberg",
                              cache_algo="internet_load_return"):
        """Gets the forward points for a particular tenor and currency

               Parameter
               ---------
               start : Datetime
                   Start date
               end : Datetime
                   End data
               cross : str
                   FX crosses for which we want to download forward points
               tenor : str
                   Tenor of deposit rate
               cut : str
                   Closing time of the market data
               data_source : str
                   data_source of the market data eg. bloomberg
               cache_algo : str
                   Caching scheme for the data

               Returns
               -------
               pandas.DataFrame
                   Contains deposit rates
               """

        market_data_request = MarketDataRequest()
        market_data_generator = self.market_data_generator

        market_data_request.data_source = data_source  # use bbg as a data_source
        market_data_request.start_date = start  # start_date
        market_data_request.finish_date = end  # finish_date

        if isinstance(cross, str): cross = [cross]
        if isinstance(tenor, str): tenor = [tenor]

        tenor = [x.replace('1Y', '12M') for x in tenor]

        tickers = []

        for cr in cross:
            for tn in tenor:
                tickers.append(cr + tn)

        market_data_request = MarketDataRequest(start_date=start,
                                                finish_date=end,
                                                data_source=data_source,
                                                category='fx-forwards',
                                                freq='daily',
                                                cut=cut,
                                                tickers=tickers,
                                                fields=['close'],
                                                cache_algo=cache_algo,
                                                environment='backtest')

        data_frame = market_data_generator.fetch_market_data(
            market_data_request)
        data_frame.columns = [
            x.replace('12M', '1Y') for x in data_frame.columns
        ]
        data_frame.index.name = 'Date'

        return data_frame