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
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