def init_class_fixtures(cls):
        super(WithInternationalDailyBarData, cls).init_class_fixtures()

        cls.daily_bar_sessions = {}
        cls.daily_bar_data = {}
        cls.daily_bar_readers = {}
        cls.daily_bar_currency_codes = {}

        for calendar, assets, in cls.assets_by_calendar.items():
            name = calendar.name
            start_delta = cls.DAILY_BAR_LOOKBACK_DAYS * calendar.day
            start_session = cls.DAILY_BAR_START_DATE - start_delta

            sessions = calendar.sessions_in_range(
                start_session, cls.DAILY_BAR_END_DATE,
            )

            cls.daily_bar_sessions[name] = sessions
            cls.daily_bar_data[name] = dict(cls.make_daily_bar_data(
                assets=assets, calendar=calendar, sessions=sessions,
            ))

            panel = (pd.Panel.from_dict(cls.daily_bar_data[name])
                     .transpose(2, 1, 0))

            cls.daily_bar_currency_codes[name] = cls.make_currency_codes(
                calendar,
                assets,
            )

            cls.daily_bar_readers[name] = InMemoryDailyBarReader.from_panel(
                panel,
                calendar,
                currency_codes=cls.daily_bar_currency_codes[name],
            )
    def init_class_fixtures(cls):
        super(WithInternationalDailyBarData, cls).init_class_fixtures()

        cls.daily_bar_sessions = {}
        cls.daily_bar_data = {}
        cls.daily_bar_readers = {}

        for calendar, assets, in cls.assets_by_calendar.items():
            name = calendar.name
            start_delta = cls.DAILY_BAR_LOOKBACK_DAYS * calendar.day
            start_session = cls.DAILY_BAR_START_DATE - start_delta

            sessions = calendar.sessions_in_range(
                start_session, cls.DAILY_BAR_END_DATE,
            )

            cls.daily_bar_sessions[name] = sessions
            cls.daily_bar_data[name] = dict(cls.make_daily_bar_data(
                assets=assets, calendar=calendar, sessions=sessions,
            ))

            panel = (pd.Panel.from_dict(cls.daily_bar_data[name])
                     .transpose(2, 1, 0))
            cls.daily_bar_readers[name] = InMemoryDailyBarReader.from_panel(
                panel,
                calendar,
            )
示例#3
0
 def in_memory_reader_for_close(self, close):
     nan_frame = pd.DataFrame(
         np.nan,
         index=close.index,
         columns=close.columns,
     )
     frames = {'close': close}
     for key in 'open', 'high', 'low', 'volume':
         frames[key] = nan_frame
     return InMemoryDailyBarReader(frames, self.trading_calendar)
示例#4
0
    def init_class_fixtures(cls):
        super(WithInternationalDailyBarData, cls).init_class_fixtures()

        cls.daily_bar_sessions = {}
        cls.daily_bar_data = {}
        cls.daily_bar_readers = {}
        cls.daily_bar_currency_codes = {}

        for calendar, assets, in cls.assets_by_calendar.items():
            name = calendar.name
            start_delta = cls.DAILY_BAR_LOOKBACK_DAYS * calendar.day
            start_session = cls.DAILY_BAR_START_DATE - start_delta

            sessions = calendar.sessions_in_range(
                start_session,
                cls.DAILY_BAR_END_DATE,
            )

            cls.daily_bar_sessions[name] = sessions
            cls.daily_bar_data[name] = d = dict(
                cls.make_daily_bar_data(
                    assets=assets,
                    calendar=calendar,
                    sessions=sessions,
                ))

            # panel = (pd.Panel.from_dict(cls.daily_bar_data[name])
            #          .transpose(2, 1, 0))

            frame_dict = defaultdict(list)
            for asset, data in d.items():
                for col in data.columns:
                    df = pd.DataFrame(data[col].values,
                                      columns=[asset],
                                      index=data[col].index)
                    frame_dict[col].append(df)

            frame_dict = {
                key: pd.concat(l, axis=1)
                for key, l in frame_dict.items()
            }

            cls.daily_bar_currency_codes[name] = cls.make_currency_codes(
                calendar,
                assets,
            )

            cls.daily_bar_readers[
                name] = InMemoryDailyBarReader.from_frame_dict(
                    frame_dict,
                    calendar,
                    currency_codes=cls.daily_bar_currency_codes[name],
                )
示例#5
0
    def empty_in_memory_reader(self, dates, sids):
        nan_frame = pd.DataFrame(
            np.nan,
            index=dates,
            columns=sids,
        )
        frames = {
            key: nan_frame
            for key in ('open', 'high', 'low', 'close', 'volume')
        }

        return InMemoryDailyBarReader(frames, self.trading_calendar)
示例#6
0
    def init_class_fixtures(cls):
        super(WithInternationalDailyBarData, cls).init_class_fixtures()

        cls.daily_bar_sessions = {}
        cls.daily_bar_data = {}
        cls.daily_bar_readers = {}
        cls.daily_bar_currency_codes = {}

        for (
            calendar,
            assets,
        ) in cls.assets_by_calendar.items():
            name = calendar.name
            start_delta = cls.DAILY_BAR_LOOKBACK_DAYS * calendar.day
            start_session = cls.DAILY_BAR_START_DATE - start_delta

            sessions = calendar.sessions_in_range(
                start_session,
                cls.DAILY_BAR_END_DATE,
            )

            cls.daily_bar_sessions[name] = sessions
            cls.daily_bar_data[name] = dict(
                cls.make_daily_bar_data(
                    assets=assets,
                    calendar=calendar,
                    sessions=sessions,
                )
            )

            bar_data = cls.daily_bar_data[name]
            df = (
                pd.concat(bar_data, keys=bar_data.keys()).stack().unstack(0).swaplevel()
            )
            frames = {
                field: frame.reset_index(level=0, drop=True)
                for field, frame in df.groupby(level=0)
            }

            # panel = (pd.Panel.from_dict(cls.daily_bar_data[name])
            #          .transpose(2, 1, 0))

            cls.daily_bar_currency_codes[name] = cls.make_currency_codes(
                calendar,
                assets,
            )

            cls.daily_bar_readers[name] = InMemoryDailyBarReader(
                frames=frames,
                calendar=calendar,
                currency_codes=cls.daily_bar_currency_codes[name],
            )
    def empty_in_memory_reader(self, dates, sids):
        nan_frame = pd.DataFrame(
            np.nan,
            index=dates,
            columns=sids,
        )
        frames = {key: nan_frame for key in ("open", "high", "low", "close", "volume")}

        return InMemoryDailyBarReader(
            frames,
            self.trading_calendar,
            currency_codes=pd.Series(index=sids, data="USD"),
        )
 def in_memory_reader_for_close(self, close):
     nan_frame = pd.DataFrame(
         np.nan,
         index=close.index,
         columns=close.columns,
     )
     frames = {"close": close}
     for key in "open", "high", "low", "volume":
         frames[key] = nan_frame
     return InMemoryDailyBarReader(
         frames,
         self.trading_calendar,
         currency_codes=pd.Series(index=close.columns, data="USD"),
     )
    def init_class_fixtures(cls):
        super(WithInternationalDailyBarData, cls).init_class_fixtures()

        cls.daily_bar_sessions = {}
        cls.daily_bar_data = {}
        cls.daily_bar_readers = {}
        cls.daily_bar_currency_codes = {}

        for calendar, assets, in cls.assets_by_calendar.items():
            name = calendar.name
            start_delta = cls.DAILY_BAR_LOOKBACK_DAYS * calendar.day
            start_session = cls.DAILY_BAR_START_DATE - start_delta

            sessions = calendar.sessions_in_range(
                start_session,
                cls.DAILY_BAR_END_DATE,
            )

            cls.daily_bar_sessions[name] = sessions
            cls.daily_bar_data[name] = dict(
                cls.make_daily_bar_data(
                    assets=assets,
                    calendar=calendar,
                    sessions=sessions,
                ))

            panel = pd.concat(cls.daily_bar_data[name], axis=0)
            dict_data = {}
            for column in panel.columns:
                dict_data[column] = pd.DataFrame(
                    panel[column]).unstack(level=0)
                dict_data[column].columns = dict_data[
                    column].columns.droplevel(0)

            cls.daily_bar_currency_codes[name] = cls.make_currency_codes(
                calendar,
                assets,
            )

            cls.daily_bar_readers[name] = InMemoryDailyBarReader.from_panel(
                dict_data,
                calendar,
                currency_codes=cls.daily_bar_currency_codes[name],
            )