# assume data_frame is in GMT time # remove Fri after 22:00 GMT # remove Sat # remove Sun before 19:00 GMT # Monday = 0, ..., Sunday = 6 data_frame = data_frame.ix[~((data_frame.index.dayofweek == 4) & (data_frame.index.hour > 22))] data_frame = data_frame.ix[~((data_frame.index.dayofweek == 5))] data_frame = data_frame.ix[~((data_frame.index.dayofweek == 6)& (data_frame.index.hour < 19))] return data_frame # functions to test class if __name__ == '__main__': logger = LoggerManager.getLogger(__name__) tsf = TimeSeriesFilter() if False: start = pandas.to_datetime('2000-01-01') end = pandas.to_datetime('2020-01-01') logger.info('Get FX holidays') hols = tsf.get_holidays(start, end, cal='FX') print(hols) logger.info('Get business days, excluding holidays') bus_days = tsf.create_calendar_bus_days(start, end, cal='FX') print(bus_days)
elif freq == 'intraday': self.logger.info('Total calculated returns for intraday not implemented yet') return None if data_frame_agg is None: data_frame_agg = cross_vals else: data_frame_agg = data_frame_agg.join(cross_vals, how='outer') # strip the nan elements data_frame_agg = data_frame_agg.dropna() return data_frame_agg if __name__ == '__main__': logger = LoggerManager.getLogger(__name__) fxcf = FXCrossFactory() path = "d:/" import datetime # DEMO: download intraday download if True: # start = '01 Jan 2014' end = '06 Nov 2014' cross = 'EURGBP' intraday_vals = fxcf.get_fx_cross(start, end, cross, cut = "NYC", source = "bloomberg", freq = "intraday", cache_algo = 'cache_algo_return')