def test_composite(self): u0 = SZ.filter_daily(date) u1 = CYB.filter_daily(date) u2 = ZXB.filter_daily(date) big1 = u0 & ~(u1 | u2) big2 =ChainFilter([(nCYB, NegateFilter(UnionFilter([CYB, ZXB])))]).filter_daily(date) self.assertTrue(series_equal(big1, big2))
def test_composite(self): u0 = SZ.filter_daily(date) u1 = CYB.filter_daily(date) u2 = ZXB.filter_daily(date) big1 = u0 & ~(u1 | u2) big2 = ChainFilter([(nCYB, NegateFilter(UnionFilter([CYB, ZXB]))) ]).filter_daily(date) self.assertTrue(series_equal(big1, big2))
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_returns_N_gt1(self): df = self.fetcher.fetch_window('returns', self.dates[:2]) s1 = (df.iloc[0].fillna(0) + 1) * (df.iloc[1] + 1) - 1 s1.name = self.dates[1] s2 = self.fetcher.fetch_daily('returnsN', 2, self.dates[1]) self.assertTrue(series_equal(s1, s2))
def test_union(self): u1 = SZ.filter_daily(date) u2 = UnionFilter([CYB, nCYB]).filter_daily(date) self.assertTrue(series_equal(u1, u2))
def test_intersect1(self): u1 = ChainFilter([(SZ, CYB)]).filter_daily(date) u2 = CYB.filter_daily(date) self.assertTrue(series_equal(u1, u2))
def test_negate(self): u0 = SZ.filter_daily(date) u1 = NegateFilter(CYB).filter_daily(date) u1 &= u0 u2 = nCYB.filter_daily(date) self.assertTrue(series_equal(u1, u2))
def test_sequence(self): u1 = ChainFilter([SZ, CYB]).filter_daily(date) u2 = CYB.filter_daily(date) self.assertTrue(series_equal(u1, u2))
def test_returns_N_eq1_4(self): s1 = self.fetcher.fetch_daily('returns', self.dates[-1], offset=49) s2 = self.fetcher.fetch_daily('returnsN', 1, self.dates[-1], offset=49) self.assertTrue(series_equal(s1, s2))
def test_price3(self): self.adjfetcher.mode = AdjQuoteFetcher.FORWARD cls1 = self.adjfetcher.fetch_window('adj_close', self.dates) cls2 = self.fetcher.fetch_window('close', self.dates) self.adjfetcher.mode = AdjQuoteFetcher.BACKWARD self.assertTrue(series_equal(cls1.iloc[0], cls2.iloc[0]))
def test_price2(self): cls1 = self.adjfetcher.fetch_window('adj_close', self.dates) cls2 = self.fetcher.fetch_window('close', self.dates) self.assertTrue(series_equal(cls1.iloc[-1], cls2.iloc[-1]))
def test_fetch_daily2(self): ret1 = self.barra.fetch_daily('returns', self.dates[0]) ret2 = self.barra.fetch_window(self.dates[:2]).iloc[0] self.assertTrue(series_equal(ret1, ret2))
def test_ic(self): ic1 = self.alpha1.get_ic() ic2 = data.corrwith(self.alpha1.alpha.shift(1), axis=1).iloc[1:] self.assertTrue(series_equal(ic1, ic2))
def test_get_bms(self): b, m, s = self.perf.get_bms() b, m, s = b.alpha, m.alpha, s.alpha self.assertTrue(series_equal(self.perf.alpha.count(axis=1), b.count(axis=1)+m.count(axis=1)+s.count(axis=1)))
def test_trading_days_filter(self): trd_filter = TradingDaysFilter(50, count_gt(40), delay=0) trd1 = trd_filter.filter_daily(window[-1]) trd2 = close.count() > 40 self.assertTrue(series_equal(trd1, trd2))
def test_get_bms(self): b, m, s = self.perf.get_bms() b, m, s = b.alpha, m.alpha, s.alpha self.assertTrue( series_equal(self.perf.alpha.count(axis=1), b.count(axis=1) + m.count(axis=1) + s.count(axis=1)))
def test_ic(self): ic1 = self.alpha1.get_ic() ic2 = data.corrwith(self.alpha1.alpha.shift(1), axis=1).iloc[1:] self.assertTrue(series_equal(ic1, ic2))
def test_volume2(self): vol1 = self.adjfetcher.fetch_window('adj_volume', self.dates) vol2 = self.fetcher.fetch_window('volume', self.dates) self.assertTrue(series_equal(vol1.iloc[-1], vol2.iloc[-1]))
def test_returns_N_gt1(self): df = self.fetcher.fetch_window('returns', self.dates[:2]) s1 = (df.iloc[0].fillna(0) + 1) * (df.iloc[1] + 1) - 1 s1.name = self.dates[1] s2 = self.fetcher.fetch_daily('returnsN', 2, self.dates[1]) self.assertTrue(series_equal(s1, s2))
def test_volume3(self): self.adjfetcher.mode = AdjQuoteFetcher.FORWARD vol1 = self.adjfetcher.fetch_window('adj_volume', self.dates) vol2 = self.fetcher.fetch_window('volume', self.dates) self.adjfetcher.mode = AdjQuoteFetcher.BACKWARD self.assertTrue(series_equal(vol1.iloc[0], vol2.iloc[0]))
def test_intersect1(self): u1 = ChainFilter([(SZ, CYB)]).filter_daily(date) u2 = CYB.filter_daily(date) self.assertTrue(series_equal(u1, u2))
def test_price2(self): cls1 = self.adjfetcher.fetch_window('adj_close', self.dates) cls2 = self.fetcher.fetch_window('close', self.dates) self.assertTrue(series_equal(cls1.iloc[-1], cls2.iloc[-1]))
def test_union(self): u1 = SZ.filter_daily(date) u2 = UnionFilter([CYB, nCYB]).filter_daily(date) self.assertTrue(series_equal(u1, u2))
def test_price3(self): self.adjfetcher.mode = AdjQuoteFetcher.FORWARD cls1 = self.adjfetcher.fetch_window('adj_close', self.dates) cls2 = self.fetcher.fetch_window('close', self.dates) self.adjfetcher.mode = AdjQuoteFetcher.BACKWARD self.assertTrue(series_equal(cls1.iloc[0], cls2.iloc[0]))
def test_sequence(self): u1 = ChainFilter([SZ, CYB]).filter_daily(date) u2 = CYB.filter_daily(date) self.assertTrue(series_equal(u1, u2))
def test_volume2(self): vol1 = self.adjfetcher.fetch_window('adj_volume', self.dates) vol2 = self.fetcher.fetch_window('volume', self.dates) self.assertTrue(series_equal(vol1.iloc[-1], vol2.iloc[-1]))
def test_negate(self): u0 = SZ.filter_daily(date) u1 = NegateFilter(CYB).filter_daily(date) u1 &= u0 u2 = nCYB.filter_daily(date) self.assertTrue(series_equal(u1, u2))
def test_volume3(self): self.adjfetcher.mode = AdjQuoteFetcher.FORWARD vol1 = self.adjfetcher.fetch_window('adj_volume', self.dates) vol2 = self.fetcher.fetch_window('volume', self.dates) self.adjfetcher.mode = AdjQuoteFetcher.BACKWARD self.assertTrue(series_equal(vol1.iloc[0], vol2.iloc[0]))
def test_trading_days_filter(self): trd_filter = TradingDaysFilter(50, count_gt(40), delay=0) trd1 = trd_filter.filter_daily(window[-1]) trd2 = close.count() > 40 self.assertTrue(series_equal(trd1, trd2))
def test_returns_N_eq1_4(self): s1 = self.fetcher.fetch_daily('returns', self.dates[-1], offset=49) s2 = self.fetcher.fetch_daily('returnsN', 1, self.dates[-1], offset=49) self.assertTrue(series_equal(s1, s2))