def test_fetch_window1(self): df1_1 = self.fetcher.fetch_window('level1', self.dates) df1_2 = self.fetcher.fetch_window('sector', self.dates) df2_1 = self.fetcher.fetch_window('level2', self.dates) df2_2 = self.fetcher.fetch_window('industry', self.dates) df3_1 = self.fetcher.fetch_window('level3', self.dates) df3_2 = self.fetcher.fetch_window('subindustry', self.dates) self.assertTrue(frames_equal(df1_1, df1_2) & frames_equal(df2_1, df2_2) & frames_equal(df3_1, df3_2))
def test_fetch(self): barra1_1 = self.barra.fetch(self.dates[0], self.dates[-1]) barra1_2 = self.barra.fetch_window(self.dates) barra2_1 = self.barra.fetch('industry', self.dates[0], self.dates[-1]) barra2_2 = self.barra.fetch_window('industry', self.dates) barra3_1 = self.barra.fetch(['CNE5D_COUNTRY'], self.dates[0], self.dates[-1]) barra3_2 = self.barra.fetch_window(['CNE5D_COUNTRY'], self.dates) barra4_1 = self.barra.fetch('CNE5D_COUNTRY', self.dates[0], self.dates[-1]) barra4_2 = self.barra.fetch_window('CNE5D_COUNTRY', self.dates) print pd.concat([barra4_1, barra4_2], axis=1) self.assertTrue(frames_equal(barra1_1, barra1_2) & frames_equal(barra2_1, barra2_2) & frames_equal(barra3_1, barra3_2) & series_equal(barra4_1, barra4_2))
def test_loader_getitem(self): self.saver['data'] = self.data self.loader.configure(parse_dates=True) data = self.loader['data'] data.index = self.data.index data.columns = self.data.columns self.assertTrue(frames_equal(data, self.data))
def test_filter_1(self): df = self.fetcher.fetch_window('close', DATES[self.si-window: self.ei+1]) df = pd.rolling_sum(df.fillna(0), window) > 2 * pd.rolling_count(df, window) df1 = df.shift(1).iloc[window:].astype(bool) df2 = self.filter.filter(self.startdate, self.enddate) print 'bm', df1.sum(axis=1) self.assertTrue(frames_equal(df1, df2))
def test_filter_2(self): df = self.fetcher.fetch_window('close', DATES[self.si-window: self.ei+1]) parent = df.notnull() df = df.shift(1) df[~parent] = None df = pd.rolling_sum(df.fillna(0), window) > 2 * pd.rolling_count(df, window) df[~parent] = False df = df.iloc[window:] self.assertTrue(frames_equal(df, self.filter.filter(self.startdate, self.enddate, parent)))
def test_filter_1(self): df = self.fetcher.fetch_window('close', DATES[self.si - window:self.ei + 1]) df = pd.rolling_sum(df.fillna(0), window) > 2 * pd.rolling_count(df, window) df1 = df.shift(1).iloc[window:].astype(bool) df2 = self.filter.filter(self.startdate, self.enddate) print 'bm', df1.sum(axis=1) self.assertTrue(frames_equal(df1, df2))
def test_returns_N_eq1_1(self): df1 = self.fetcher.fetch('returns', self.dates[5], self.dates[-1], backdays=5) df2 = self.fetcher.fetch('returnsN', 1, self.dates[5], self.dates[-1], backdays=5) self.assertTrue(frames_equal(df1, df2))
def test_returns_N_eq1_3(self): df1 = self.fetcher.fetch_history('returns', self.dates[-1], 45, delay=5) df2 = self.fetcher.fetch_history('returnsN', 1, self.dates[-1], 45, delay=5) self.assertTrue(frames_equal(df1, df2))
def test_filter_2(self): df = self.fetcher.fetch_window('close', DATES[self.si - window:self.ei + 1]) parent = df.notnull() df = df.shift(1) df[~parent] = None df = pd.rolling_sum(df.fillna(0), window) > 2 * pd.rolling_count(df, window) df[~parent] = False df = df.iloc[window:] self.assertTrue( frames_equal( df, self.filter.filter(self.startdate, self.enddate, parent)))
def test_summary(self): ir1 = self.alpha1.summary(group='ir', by='A') ir2 = self.alpha1.summary_ir(by='A') self.assertTrue(frames_equal(ir1, ir2))
def test_components_filter(self): HS300 = ComponentsFilter('HS300').filter(window[0], window[-1]) self.assertTrue(frames_equal(hs300, HS300))
def test_returns_N_eq1_2(self): df1 = self.fetcher.fetch_window('returns', self.dates) df2 = self.fetcher.fetch_window('returnsN', 1, self.dates) self.assertTrue(frames_equal(df1, df2))
def test_volume4(self): vol1 = self.adjfetcher.fetch_window('adj_volume', self.dates) vol2 = self.fetcher.fetch_window('volume', self.dates) self.assertTrue(frames_equal(vol1.notnull(), vol2.notnull()))
def test_noadjust(self): ret1 = self.adjfetcher.fetch_window('adj_returns', self.dates) ret2 = self.fetcher.fetch_window('returns', self.dates) amt1 = self.adjfetcher.fetch_window('adj_amount', self.dates) amt2 = self.fetcher.fetch_window('amount', self.dates) self.assertTrue(frames_equal(ret1, ret2) & frames_equal(amt1, amt2))
def test_volume4(self): vol1 = self.adjfetcher.fetch_window('adj_volume', self.dates) vol2 = self.fetcher.fetch_window('volume', self.dates) self.assertTrue(frames_equal(vol1.notnull(), vol2.notnull()))
def test_get1(self): self.assertTrue(frames_equal(self.perf.get_long().alpha, self.alpha2.alpha) and frames_equal(self.perf.get_short().alpha, self.alpha3.alpha))
def test_summary(self): ir1 = self.alpha1.summary(group='ir', by='A') ir2 = self.alpha1.summary_ir(by='A') self.assertTrue(frames_equal(ir1, ir2))
def test_top(self): df = pd.DataFrame(np.random.randn(20, 40)) top1 = api.top(df, 1) maxdf = df.max(axis=1) top2 = df.eq(maxdf, axis=0) self.assertTrue(frames_equal(top1, top2))
def test_qbottom(self): df = pd.DataFrame(np.random.randn(50, 500)) bot1 = api.qbottom(df, 0.01) bot2 = api.bottom(df, 5) self.assertTrue(frames_equal(bot1, bot2))
def test_industry_filter(self): finance = IndustryFilter(['480000', '490000']).filter(window[0], window[-1]) self.assertTrue(frames_equal(sector.isin(['480000', '490000']), finance))
def test_components_filter(self): HS300 = ComponentsFilter('HS300').filter(window[0], window[-1]) self.assertTrue(frames_equal(hs300, HS300))
def test_fetch_window_classmethod(self): df1 = self.fetcher.fetch_window('close', self.dates) df2 = QuoteFetcher.fetch_window('close', self.dates) self.assertTrue(frames_equal(df1, df2))
def test_active_filter(self): active1 = ActiveFilter().filter(window[0], window[-1]) active2 = ~close.isnull() self.assertTrue(frames_equal(active1, active2))
def test_loader_getitem(self): self.saver['data'] = self.data data = self.loader['data'] self.assertTrue(frames_equal(data, self.data))
def test_history3(self): cls1 = self.adjfetcher.fetch_history('adj_close', self.dates[-1], len(self.dates) - 1) cls2 = self.adjfetcher.fetch_window('adj_close', self.dates[:-1], self.dates[-1]) self.assertTrue(frames_equal(cls1, cls2))
def test_barra_corr_neut(self): df = random_alpha(n=20) neut_df1 = api.barra_corr_neut(df, 'short', 'industry') neut_df2 = api.barra_corr_neut(neut_df1, 'short', 'industry') self.assertTrue(frames_equal(neut_df1, neut_df2))
def test_price4(self): cls1 = self.adjfetcher.fetch_window('adj_close', self.dates) cls2 = self.fetcher.fetch_window('close', self.dates) self.assertTrue(frames_equal(cls1.notnull(), cls2.notnull()))
def test_fetch_window2(self): df1 = self.fetcher.fetch_window('level1', self.dates) df2 = self.fetcher.fetch_window('level1', self.dates, standard='ZX') self.assertFalse(frames_equal(df1, df2))
def test_returns_N_eq1_3(self): df1 = self.fetcher.fetch_history('returns', self.dates[-1], 45, delay=5) df2 = self.fetcher.fetch_history('returnsN', 1, self.dates[-1], 45, delay=5) self.assertTrue(frames_equal(df1, df2))
def test_fetch_daily1(self): cov1 = self.barra.fetch_daily(self.dates[0]) cov2 = self.barra.fetch_daily(self.dates[1], offset=1) self.assertTrue(frames_equal(cov1, cov2))
def test_loader_getitem(self): self.saver['data'] = self.data data = self.loader['data'] self.assertTrue(frames_equal(data, self.data))
def test_fetch_daily2(self): cov0 = self.barra.fetch_daily(self.dates[0]) sids = cov0.index[:200] cov1 = cov0.ix[sids, sids] cov2 = self.barra.fetch_daily(self.dates[0], sids=sids) self.assertTrue(frames_equal(cov1, cov2))
def test_active_filter(self): active1 = ActiveFilter().filter(window[0], window[-1]) active2 = ~close.isnull() self.assertTrue(frames_equal(active1, active2))
def test_returns_N_eq1_2(self): df1 = self.fetcher.fetch_window('returns', self.dates) df2 = self.fetcher.fetch_window('returnsN', 1, self.dates) self.assertTrue(frames_equal(df1, df2))
def test_industry_filter(self): finance = IndustryFilter(['480000', '490000']).filter(window[0], window[-1]) self.assertTrue( frames_equal(sector.isin(['480000', '490000']), finance))
def test_returns_N_eq1_1(self): df1 = self.fetcher.fetch('returns', self.dates[5], self.dates[-1], backdays=5) df2 = self.fetcher.fetch('returnsN', 1, self.dates[5], self.dates[-1], backdays=5) self.assertTrue(frames_equal(df1, df2))
def test_get1(self): self.assertTrue( frames_equal(self.perf.get_long().alpha, self.alpha2.alpha) and frames_equal(self.perf.get_short().alpha, self.alpha3.alpha))
def test_noadjust(self): ret1 = self.adjfetcher.fetch_window('adj_returns', self.dates) ret2 = self.fetcher.fetch_window('returns', self.dates) amt1 = self.adjfetcher.fetch_window('adj_amount', self.dates) amt2 = self.fetcher.fetch_window('amount', self.dates) self.assertTrue(frames_equal(ret1, ret2) & frames_equal(amt1, amt2))
def test_price4(self): cls1 = self.adjfetcher.fetch_window('adj_close', self.dates) cls2 = self.fetcher.fetch_window('close', self.dates) self.assertTrue(frames_equal(cls1.notnull(), cls2.notnull()))
def test_industry_neut1(self): df = random_alpha(n=20) neut1_df = api.industry_neut(df, 'level2') neut2_df = api.industry_neut(neut1_df, 'level1') self.assertTrue(frames_equal(neut1_df, neut2_df))
def test_history3(self): cls1 = self.adjfetcher.fetch_history('adj_close', self.dates[-1], len(self.dates)-1) cls2 = self.adjfetcher.fetch_window('adj_close', self.dates[:-1], self.dates[-1]) self.assertTrue(frames_equal(cls1, cls2))
def test_fetch_window_classmethod(self): df1 = self.fetcher.fetch_window('close', self.dates) df2 = QuoteFetcher.fetch_window('close', self.dates) self.assertTrue(frames_equal(df1, df2))