MAINT: Add equity to naming of bar data classes.

In preparation of adding futures, add equity to the names of both the
classes and methods for writing bcolz data. Futures data will use a
different minutes per day with a separate reader. This change will allow
both equity and futures fixtures to be side by side.

Also, break out the method which generates the dataframes and trading
days member into fixtures (`EquityMinuteBarData` and
`EquityDailyBarData`) on which the `*BarReader` fixture depends.  This
fixture is separated out to enable reader/writers in different formats
to use the same data setup. (There is internal code which needs to write
minute and daily bar data in a database format.)
This commit is contained in:
Eddie Hebert
2016-06-30 08:21:42 -04:00
parent c89e957905
commit 51eda06323
22 changed files with 349 additions and 278 deletions
+2 -2
View File
@@ -176,7 +176,7 @@ class BundleCoreTestCase(WithInstanceTmpDir, ZiplineTestCase):
columns = 'open', 'high', 'low', 'close', 'volume'
actual = bundle.minute_bar_reader.load_raw_arrays(
actual = bundle.equity_minute_bar_reader.load_raw_arrays(
columns,
minutes[0],
minutes[-1],
@@ -190,7 +190,7 @@ class BundleCoreTestCase(WithInstanceTmpDir, ZiplineTestCase):
msg=colname,
)
actual = bundle.daily_bar_reader.load_raw_arrays(
actual = bundle.equity_daily_bar_reader.load_raw_arrays(
columns,
calendar[0],
calendar[-1],
+1 -1
View File
@@ -216,7 +216,7 @@ class QuandlBundleTestCase(ZiplineTestCase):
assert_equal(equity.end_date, self.asset_end, msg=equity)
cal = self.calendar
actual = bundle.daily_bar_reader.load_raw_arrays(
actual = bundle.equity_daily_bar_reader.load_raw_arrays(
self.columns,
cal[cal.get_loc(self.asset_start, 'bfill')],
cal[cal.get_loc(self.asset_end, 'ffill')],
+1 -1
View File
@@ -177,7 +177,7 @@ class YahooBundleTestCase(WithResponses, ZiplineTestCase):
assert_equal(equity.start_date, self.asset_start, msg=equity)
assert_equal(equity.end_date, self.asset_end, msg=equity)
actual = bundle.daily_bar_reader.load_raw_arrays(
actual = bundle.equity_daily_bar_reader.load_raw_arrays(
self.columns,
cal[cal.get_loc(self.asset_start, 'bfill')],
cal[cal.get_loc(self.asset_end, 'ffill')],
+10 -10
View File
@@ -43,7 +43,7 @@ from zipline.pipeline.loaders.synthetic import (
)
from zipline.testing import seconds_to_timestamp
from zipline.testing.fixtures import (
WithBcolzDailyBarReader,
WithBcolzEquityDailyBarReader,
ZiplineTestCase,
)
from zipline.utils.calendars import get_calendar
@@ -79,19 +79,19 @@ EQUITY_INFO = DataFrame(
TEST_QUERY_ASSETS = EQUITY_INFO.index
class BcolzDailyBarTestCase(WithBcolzDailyBarReader, ZiplineTestCase):
BCOLZ_DAILY_BAR_START_DATE = TEST_CALENDAR_START
BCOLZ_DAILY_BAR_END_DATE = TEST_CALENDAR_STOP
class BcolzDailyBarTestCase(WithBcolzEquityDailyBarReader, ZiplineTestCase):
EQUITY_DAILY_BAR_START_DATE = TEST_CALENDAR_START
EQUITY_DAILY_BAR_END_DATE = TEST_CALENDAR_STOP
@classmethod
def make_equity_info(cls):
return EQUITY_INFO
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
return make_bar_data(
EQUITY_INFO,
cls.bcolz_daily_bar_days,
cls.equity_daily_bar_days,
)
@classmethod
@@ -187,12 +187,12 @@ class BcolzDailyBarTestCase(WithBcolzDailyBarReader, ZiplineTestCase):
def test_read_first_trading_day(self):
self.assertEqual(
self.bcolz_daily_bar_reader.first_trading_day,
self.bcolz_equity_daily_bar_reader.first_trading_day,
self.trading_days[0],
)
def _check_read_results(self, columns, assets, start_date, end_date):
results = self.bcolz_daily_bar_reader.load_raw_arrays(
results = self.bcolz_equity_daily_bar_reader.load_raw_arrays(
columns,
start_date,
end_date,
@@ -280,7 +280,7 @@ class BcolzDailyBarTestCase(WithBcolzDailyBarReader, ZiplineTestCase):
)
def test_unadjusted_spot_price(self):
reader = self.bcolz_daily_bar_reader
reader = self.bcolz_equity_daily_bar_reader
# At beginning
price = reader.spot_price(1, Timestamp('2015-06-01', tz='UTC'),
'close')
@@ -318,7 +318,7 @@ class BcolzDailyBarTestCase(WithBcolzDailyBarReader, ZiplineTestCase):
reader.spot_price(4, Timestamp('2015-06-16', tz='UTC'), 'close')
def test_unadjusted_spot_price_empty_value(self):
reader = self.bcolz_daily_bar_reader
reader = self.bcolz_equity_daily_bar_reader
# A sid, day and corresponding index into which to overwrite a zero.
zero_sid = 1
+4 -4
View File
@@ -32,7 +32,7 @@ from zipline.finance.blotter import Order
from zipline.data.data_portal import DataPortal
from zipline.protocol import BarData
from zipline.testing import tmp_bcolz_minute_bar_reader
from zipline.testing import tmp_bcolz_equity_minute_bar_reader
from zipline.testing.fixtures import (
WithDataPortal,
WithSimParams,
@@ -57,7 +57,7 @@ class SlippageTestCase(WithSimParams, WithDataPortal, ZiplineTestCase):
)
@classmethod
def make_minute_bar_data(cls):
def make_equity_minute_bar_data(cls):
yield 133, pd.DataFrame(
{
'open': [3.0, 3.0, 3.5, 4.0, 3.5],
@@ -91,7 +91,7 @@ class SlippageTestCase(WithSimParams, WithDataPortal, ZiplineTestCase):
start=normalize_date(self.minutes[0]),
end=normalize_date(self.minutes[-1])
)
with tmp_bcolz_minute_bar_reader(self.trading_schedule, days, assets) \
with tmp_bcolz_equity_minute_bar_reader(self.trading_schedule, days, assets) \
as reader:
data_portal = DataPortal(
self.env.asset_finder, self.trading_schedule,
@@ -481,7 +481,7 @@ class SlippageTestCase(WithSimParams, WithDataPortal, ZiplineTestCase):
start=normalize_date(self.minutes[0]),
end=normalize_date(self.minutes[-1])
)
with tmp_bcolz_minute_bar_reader(self.trading_schedule, days, assets) \
with tmp_bcolz_equity_minute_bar_reader(self.trading_schedule, days, assets) \
as reader:
data_portal = DataPortal(
self.env.asset_finder, self.trading_schedule,
+3 -3
View File
@@ -893,10 +893,10 @@ class SyntheticBcolzTestCase(WithAdjustmentReader,
return ret
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
return make_bar_data(
cls.equity_info,
cls.bcolz_daily_bar_days,
cls.equity_daily_bar_days,
)
@classmethod
@@ -905,7 +905,7 @@ class SyntheticBcolzTestCase(WithAdjustmentReader,
cls.all_asset_ids = cls.asset_finder.sids
cls.last_asset_end = cls.equity_info['end_date'].max()
cls.pipeline_loader = USEquityPricingLoader(
cls.bcolz_daily_bar_reader,
cls.bcolz_equity_daily_bar_reader,
cls.adjustment_reader,
)
+5 -5
View File
@@ -56,7 +56,7 @@ from zipline.testing import (
)
from zipline.testing.fixtures import (
WithAdjustmentReader,
WithBcolzDailyBarReaderFromCSVs,
WithBcolzEquityDailyBarReaderFromCSVs,
WithDataPortal,
ZiplineTestCase,
)
@@ -120,7 +120,7 @@ class ClosesOnly(WithDataPortal, ZiplineTestCase):
return ret
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
cls.closes = DataFrame(
{sid: arange(1, len(cls.dates) + 1) * sid for sid in cls.sids},
index=cls.dates,
@@ -340,7 +340,7 @@ class MockDailyBarSpotReader(object):
return 100.0
class PipelineAlgorithmTestCase(WithBcolzDailyBarReaderFromCSVs,
class PipelineAlgorithmTestCase(WithBcolzEquityDailyBarReaderFromCSVs,
WithAdjustmentReader,
ZiplineTestCase):
AAPL = 1
@@ -352,7 +352,7 @@ class PipelineAlgorithmTestCase(WithBcolzDailyBarReaderFromCSVs,
END_DATE = Timestamp('2015')
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
resources = {
cls.AAPL: join(TEST_RESOURCE_PATH, 'AAPL.csv'),
cls.MSFT: join(TEST_RESOURCE_PATH, 'MSFT.csv'),
@@ -398,7 +398,7 @@ class PipelineAlgorithmTestCase(WithBcolzDailyBarReaderFromCSVs,
def init_class_fixtures(cls):
super(PipelineAlgorithmTestCase, cls).init_class_fixtures()
cls.pipeline_loader = USEquityPricingLoader(
cls.bcolz_daily_bar_reader,
cls.bcolz_equity_daily_bar_reader,
cls.adjustment_reader,
)
cls.dates = cls.raw_data[cls.AAPL].index.tz_localize('UTC')
@@ -277,14 +277,14 @@ class USEquityPricingLoaderTestCase(WithAdjustmentReader,
return DIVIDENDS
@classmethod
def make_adjustment_writer_daily_bar_reader(cls):
def make_adjustment_writer_equity_daily_bar_reader(cls):
return MockDailyBarReader()
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
return make_bar_data(
EQUITY_INFO,
cls.bcolz_daily_bar_days,
cls.equity_daily_bar_days,
)
@classmethod
@@ -306,13 +306,13 @@ class USEquityPricingLoaderTestCase(WithAdjustmentReader,
self.assertLessEqual(eff_date, asset_end)
def calendar_days_between(self, start_date, end_date, shift=0):
slice_ = self.bcolz_daily_bar_days.slice_indexer(start_date, end_date)
slice_ = self.equity_daily_bar_days.slice_indexer(start_date, end_date)
start = slice_.start + shift
stop = slice_.stop + shift
if start < 0:
raise KeyError(start_date, shift)
return self.bcolz_daily_bar_days[start:stop]
return self.equity_daily_bar_days[start:stop]
def expected_adjustments(self, start_date, end_date):
price_adjustments = {}
@@ -417,7 +417,7 @@ class USEquityPricingLoaderTestCase(WithAdjustmentReader,
self.assertEqual(adjustments, [{}, {}])
pricing_loader = USEquityPricingLoader(
self.bcolz_daily_bar_reader,
self.bcolz_equity_daily_bar_reader,
adjustment_reader,
)
@@ -494,7 +494,7 @@ class USEquityPricingLoaderTestCase(WithAdjustmentReader,
)
pricing_loader = USEquityPricingLoader(
self.bcolz_daily_bar_reader,
self.bcolz_equity_daily_bar_reader,
self.adjustment_reader,
)
+14 -14
View File
@@ -741,7 +741,7 @@ class TestTransformAlgorithm(WithLogger,
return pd.DataFrame.from_dict({3: {'multiplier': 10}}, 'index')
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
return trades_by_sid_to_dfs(
{
sid: factory.create_trade_history(
@@ -1010,7 +1010,7 @@ class TestBeforeTradingStart(WithDataPortal,
END_DATE = pd.Timestamp('2016-01-07', tz='utc')
SIM_PARAMS_CAPITAL_BASE = 10000
SIM_PARAMS_DATA_FREQUENCY = 'minute'
BCOLZ_DAILY_BAR_LOOKBACK_DAYS = BCOLZ_MINUTE_BAR_LOOKBACK_DAYS = 1
EQUITY_DAILY_BAR_LOOKBACK_DAYS = EQUITY_MINUTE_BAR_LOOKBACK_DAYS = 1
data_start = ASSET_FINDER_EQUITY_START_DATE = pd.Timestamp(
'2016-01-05',
@@ -1021,7 +1021,7 @@ class TestBeforeTradingStart(WithDataPortal,
ASSET_FINDER_EQUITY_SIDS = 1, 2, SPLIT_ASSET_SID
@classmethod
def make_minute_bar_data(cls):
def make_equity_minute_bar_data(cls):
asset_minutes = \
cls.trading_schedule.execution_minutes_for_days_in_range(
cls.data_start,
@@ -1066,7 +1066,7 @@ class TestBeforeTradingStart(WithDataPortal,
])
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
for sid in cls.ASSET_FINDER_EQUITY_SIDS:
yield sid, create_daily_df_for_asset(
cls.trading_schedule,
@@ -1357,7 +1357,7 @@ class TestAlgoScript(WithLogger,
START_DATE = pd.Timestamp('2006-01-03', tz='utc')
END_DATE = pd.Timestamp('2006-12-31', tz='utc')
DATA_PORTAL_USE_MINUTE_DATA = False
BCOLZ_DAILY_BAR_LOOKBACK_DAYS = 5 # max history window length
EQUITY_DAILY_BAR_LOOKBACK_DAYS = 5 # max history window length
ARG_TYPE_TEST_CASES = (
('history__assets', (bad_type_history_assets, 'Asset, str', True)),
@@ -1397,8 +1397,8 @@ class TestAlgoScript(WithLogger,
return data
@classmethod
def make_daily_bar_data(cls):
days = len(cls.bcolz_daily_bar_days)
def make_equity_daily_bar_data(cls):
days = len(cls.equity_daily_bar_days)
return trades_by_sid_to_dfs(
{
0: factory.create_trade_history(
@@ -1416,7 +1416,7 @@ class TestAlgoScript(WithLogger,
cls.sim_params,
cls.trading_schedule)
},
index=cls.bcolz_daily_bar_days,
index=cls.equity_daily_bar_days,
)
def test_noop(self):
@@ -1942,7 +1942,7 @@ class TestCapitalChanges(WithLogger,
return data
@classmethod
def make_minute_bar_data(cls):
def make_equity_minute_bar_data(cls):
minutes = cls.trading_schedule.execution_minutes_for_days_in_range(
pd.Timestamp('2006-01-03', tz='UTC'),
pd.Timestamp('2006-01-09', tz='UTC')
@@ -1961,7 +1961,7 @@ class TestCapitalChanges(WithLogger,
)
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
days = cls.trading_schedule.execution_days_in_range(
pd.Timestamp('2006-01-03', tz='UTC'),
pd.Timestamp('2006-01-09', tz='UTC')
@@ -2904,7 +2904,7 @@ class TestAccountControls(WithDataPortal, WithSimParams, ZiplineTestCase):
sidint, = ASSET_FINDER_EQUITY_SIDS = (133,)
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
return trades_by_sid_to_dfs(
{
cls.sidint: factory.create_trade_history(
@@ -3051,7 +3051,7 @@ class TestFutureFlip(WithDataPortal, WithSimParams, ZiplineTestCase):
sid, = ASSET_FINDER_EQUITY_SIDS = (1,)
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
return trades_by_sid_to_dfs(
{
cls.sid: factory.create_trade_history(
@@ -3169,7 +3169,7 @@ class TestOrderCancelation(WithDataPortal,
)
@classmethod
def make_minute_bar_data(cls):
def make_equity_minute_bar_data(cls):
asset_minutes = \
cls.trading_schedule.execution_minutes_for_days_in_range(
cls.sim_params.period_start,
@@ -3192,7 +3192,7 @@ class TestOrderCancelation(WithDataPortal,
)
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
yield 1, pd.DataFrame(
{
'open': np.full(3, 1),
+3 -3
View File
@@ -121,7 +121,7 @@ class TestAPIShim(WithDataPortal, WithSimParams, ZiplineTestCase):
sids = ASSET_FINDER_EQUITY_SIDS = 1, 2, 3
@classmethod
def make_minute_bar_data(cls):
def make_equity_minute_bar_data(cls):
for sid in cls.sids:
yield sid, create_minute_df_for_asset(
cls.trading_schedule,
@@ -130,7 +130,7 @@ class TestAPIShim(WithDataPortal, WithSimParams, ZiplineTestCase):
)
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
for sid in cls.sids:
yield sid, create_daily_df_for_asset(
cls.trading_schedule,
@@ -149,7 +149,7 @@ class TestAPIShim(WithDataPortal, WithSimParams, ZiplineTestCase):
])
@classmethod
def make_adjustment_writer_daily_bar_reader(cls):
def make_adjustment_writer_equity_daily_bar_reader(cls):
return MockDailyBarReader()
@classmethod
+42 -41
View File
@@ -103,7 +103,7 @@ class TestMinuteBarData(WithBarDataChecks,
HILARIOUSLY_ILLIQUID_ASSET_SID = 5
@classmethod
def make_minute_bar_data(cls):
def make_equity_minute_bar_data(cls):
# asset1 has trades every minute
# asset2 has trades every 10 minutes
# split_asset trades every minute
@@ -111,22 +111,22 @@ class TestMinuteBarData(WithBarDataChecks,
for sid in (1, cls.SPLIT_ASSET_SID):
yield sid, create_minute_df_for_asset(
cls.trading_schedule,
cls.bcolz_minute_bar_days[0],
cls.bcolz_minute_bar_days[-1],
cls.equity_minute_bar_days[0],
cls.equity_minute_bar_days[-1],
)
for sid in (2, cls.ILLIQUID_SPLIT_ASSET_SID):
yield sid, create_minute_df_for_asset(
cls.trading_schedule,
cls.bcolz_minute_bar_days[0],
cls.bcolz_minute_bar_days[-1],
cls.equity_minute_bar_days[0],
cls.equity_minute_bar_days[-1],
10,
)
yield cls.HILARIOUSLY_ILLIQUID_ASSET_SID, create_minute_df_for_asset(
cls.trading_schedule,
cls.bcolz_minute_bar_days[0],
cls.bcolz_minute_bar_days[-1],
cls.equity_minute_bar_days[0],
cls.equity_minute_bar_days[-1],
50,
)
@@ -167,7 +167,7 @@ class TestMinuteBarData(WithBarDataChecks,
# grab minutes that include the day before the asset start
minutes = self.trading_schedule.execution_minutes_for_day(
self.trading_schedule.previous_execution_day(
self.bcolz_minute_bar_days[0]
self.equity_minute_bar_days[0]
)
)
@@ -195,7 +195,7 @@ class TestMinuteBarData(WithBarDataChecks,
def test_regular_minute(self):
minutes = self.trading_schedule.execution_minutes_for_day(
self.bcolz_minute_bar_days[0]
self.equity_minute_bar_days[0]
)
for idx, minute in enumerate(minutes):
@@ -287,7 +287,7 @@ class TestMinuteBarData(WithBarDataChecks,
def test_minute_of_last_day(self):
minutes = self.trading_schedule.execution_minutes_for_day(
self.bcolz_daily_bar_days[-1],
self.equity_daily_bar_days[-1],
)
# this is the last day the assets exist
@@ -300,12 +300,12 @@ class TestMinuteBarData(WithBarDataChecks,
def test_minute_after_assets_stopped(self):
minutes = self.trading_schedule.execution_minutes_for_day(
self.trading_schedule.next_execution_day(
self.bcolz_minute_bar_days[-1]
self.equity_minute_bar_days[-1]
)
)
last_trading_minute = self.trading_schedule.execution_minutes_for_day(
self.bcolz_minute_bar_days[-1]
self.equity_minute_bar_days[-1]
)[-1]
# this entire day is after both assets have stopped trading
@@ -347,8 +347,8 @@ class TestMinuteBarData(WithBarDataChecks,
# ... but that's it's not applied when using spot value
minutes = self.trading_schedule.execution_minutes_for_days_in_range(
start=self.bcolz_minute_bar_days[0],
end=self.bcolz_minute_bar_days[1]
start=self.equity_minute_bar_days[0],
end=self.equity_minute_bar_days[1]
)
for idx, minute in enumerate(minutes):
@@ -362,10 +362,10 @@ class TestMinuteBarData(WithBarDataChecks,
# on cls.days[1], the first 9 minutes of ILLIQUID_SPLIT_ASSET are
# missing. let's get them.
day0_minutes = self.trading_schedule.execution_minutes_for_day(
self.bcolz_minute_bar_days[0]
self.equity_minute_bar_days[0]
)
day1_minutes = self.trading_schedule.execution_minutes_for_day(
self.bcolz_minute_bar_days[1]
self.equity_minute_bar_days[1]
)
for idx, minute in enumerate(day0_minutes[-10:-1]):
@@ -396,7 +396,7 @@ class TestMinuteBarData(WithBarDataChecks,
def test_spot_price_at_midnight(self):
# make sure that if we try to get a minute price at a non-market
# minute, we use the previous market close's timestamp
day = self.bcolz_minute_bar_days[1]
day = self.equity_minute_bar_days[1]
eight_fortyfive_am_eastern = \
pd.Timestamp("{0}-{1}-{2} 8:45".format(
@@ -439,7 +439,7 @@ class TestMinuteBarData(WithBarDataChecks,
# make sure that if we use `can_trade` at midnight, we don't pretend
# we're in the previous day's last minute
the_day_after = self.trading_schedule.next_execution_day(
self.bcolz_minute_bar_days[-1]
self.equity_minute_bar_days[-1]
)
bar_data = BarData(self.data_portal, lambda: the_day_after, "minute")
@@ -453,7 +453,7 @@ class TestMinuteBarData(WithBarDataChecks,
# but make sure it works when the assets are alive
bar_data2 = BarData(
self.data_portal,
lambda: self.bcolz_minute_bar_days[1],
lambda: self.equity_minute_bar_days[1],
"minute",
)
for asset in [self.ASSET1, self.HILARIOUSLY_ILLIQUID_ASSET]:
@@ -465,7 +465,7 @@ class TestMinuteBarData(WithBarDataChecks,
def test_is_stale_at_midnight(self):
bar_data = BarData(
self.data_portal,
lambda: self.bcolz_minute_bar_days[1],
lambda: self.equity_minute_bar_days[1],
"minute",
)
@@ -487,7 +487,7 @@ class TestMinuteBarData(WithBarDataChecks,
)
# Current day is 1/06/16
day = self.bcolz_daily_bar_days[1]
day = self.equity_daily_bar_days[1]
eight_fortyfive_am_eastern = \
pd.Timestamp("{0}-{1}-{2} 8:45".format(
day.year, day.month, day.day),
@@ -602,16 +602,16 @@ class TestDailyBarData(WithBarDataChecks,
)
@classmethod
def make_adjustment_writer_daily_bar_reader(cls):
def make_adjustment_writer_equity_daily_bar_reader(cls):
return MockDailyBarReader()
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
for sid in cls.sids:
yield sid, create_daily_df_for_asset(
cls.trading_schedule,
cls.bcolz_daily_bar_days[0],
cls.bcolz_daily_bar_days[-1],
cls.equity_daily_bar_days[0],
cls.equity_daily_bar_days[-1],
interval=2 - sid % 2
)
@@ -642,9 +642,9 @@ class TestDailyBarData(WithBarDataChecks,
cls.ASSETS = [cls.ASSET1, cls.ASSET2]
def test_day_before_assets_trading(self):
# use the day before self.bcolz_daily_bar_days[0]
# use the day before self.equity_daily_bar_days[0]
day = self.trading_schedule.previous_execution_day(
self.bcolz_daily_bar_days[0]
self.equity_daily_bar_days[0]
)
bar_data = BarData(self.data_portal, lambda: day, "daily")
@@ -668,10 +668,10 @@ class TestDailyBarData(WithBarDataChecks,
self.assertTrue(asset_value is pd.NaT)
def test_semi_active_day(self):
# on self.bcolz_daily_bar_days[0], only asset1 has data
# on self.equity_daily_bar_days[0], only asset1 has data
bar_data = BarData(
self.data_portal,
lambda: self.bcolz_daily_bar_days[0],
lambda: self.equity_daily_bar_days[0],
"daily",
)
self.check_internal_consistency(bar_data)
@@ -691,7 +691,7 @@ class TestDailyBarData(WithBarDataChecks,
self.assertEqual(2, bar_data.current(self.ASSET1, "close"))
self.assertEqual(200, bar_data.current(self.ASSET1, "volume"))
self.assertEqual(2, bar_data.current(self.ASSET1, "price"))
self.assertEqual(self.bcolz_daily_bar_days[0],
self.assertEqual(self.equity_daily_bar_days[0],
bar_data.current(self.ASSET1, "last_traded"))
for field in OHLCP:
@@ -706,12 +706,12 @@ class TestDailyBarData(WithBarDataChecks,
def test_fully_active_day(self):
bar_data = BarData(
self.data_portal,
lambda: self.bcolz_daily_bar_days[1],
lambda: self.equity_daily_bar_days[1],
"daily",
)
self.check_internal_consistency(bar_data)
# on self.bcolz_daily_bar_days[1], both assets have data
# on self.equity_daily_bar_days[1], both assets have data
for asset in self.ASSETS:
self.assertTrue(bar_data.can_trade(asset))
self.assertFalse(bar_data.is_stale(asset))
@@ -723,14 +723,14 @@ class TestDailyBarData(WithBarDataChecks,
self.assertEqual(300, bar_data.current(asset, "volume"))
self.assertEqual(3, bar_data.current(asset, "price"))
self.assertEqual(
self.bcolz_daily_bar_days[1],
self.equity_daily_bar_days[1],
bar_data.current(asset, "last_traded")
)
def test_last_active_day(self):
bar_data = BarData(
self.data_portal,
lambda: self.bcolz_daily_bar_days[-1],
lambda: self.equity_daily_bar_days[-1],
"daily",
)
self.check_internal_consistency(bar_data)
@@ -749,7 +749,7 @@ class TestDailyBarData(WithBarDataChecks,
def test_after_assets_dead(self):
# both assets end on self.day[-1], so let's try the next day
next_day = self.trading_schedule.next_execution_day(
self.bcolz_daily_bar_days[-1]
self.equity_daily_bar_days[-1]
)
bar_data = BarData(self.data_portal, lambda: next_day, "daily")
@@ -767,9 +767,10 @@ class TestDailyBarData(WithBarDataChecks,
last_traded_dt = bar_data.current(asset, "last_traded")
if asset == self.ASSET1:
self.assertEqual(self.bcolz_daily_bar_days[-2], last_traded_dt)
self.assertEqual(self.equity_daily_bar_days[-2],
last_traded_dt)
else:
self.assertEqual(self.bcolz_daily_bar_days[1], last_traded_dt)
self.assertEqual(self.equity_daily_bar_days[1], last_traded_dt)
@parameterized.expand([
("split", 2, 3, 3, 1.5),
@@ -805,7 +806,7 @@ class TestDailyBarData(WithBarDataChecks,
# ... but that's it's not applied when using spot value
bar_data = BarData(
self.data_portal,
lambda: self.bcolz_daily_bar_days[0],
lambda: self.equity_daily_bar_days[0],
"daily",
)
self.assertEqual(
@@ -814,7 +815,7 @@ class TestDailyBarData(WithBarDataChecks,
)
bar_data = BarData(
self.data_portal,
lambda: self.bcolz_daily_bar_days[1],
lambda: self.equity_daily_bar_days[1],
"daily",
)
self.assertEqual(
@@ -826,7 +827,7 @@ class TestDailyBarData(WithBarDataChecks,
# ILLIQUID_ASSET has no data on days 0 and 2, and a split on day 2
bar_data = BarData(
self.data_portal,
lambda: self.bcolz_daily_bar_days[1],
lambda: self.equity_daily_bar_days[1],
"daily",
)
self.assertEqual(
@@ -835,7 +836,7 @@ class TestDailyBarData(WithBarDataChecks,
bar_data = BarData(
self.data_portal,
lambda: self.bcolz_daily_bar_days[2],
lambda: self.equity_daily_bar_days[2],
"daily",
)
+4 -4
View File
@@ -25,7 +25,7 @@ from zipline.sources.benchmark_source import BenchmarkSource
from zipline.testing import (
MockDailyBarReader,
create_minute_bar_data,
tmp_bcolz_minute_bar_reader,
tmp_bcolz_equity_minute_bar_reader,
)
from zipline.testing.fixtures import (
WithDataPortal,
@@ -65,7 +65,7 @@ class TestBenchmark(WithDataPortal, WithSimParams, WithTradingSchedule,
)
@classmethod
def make_adjustment_writer_daily_bar_reader(cls):
def make_adjustment_writer_equity_daily_bar_reader(cls):
return MockDailyBarReader()
@classmethod
@@ -147,7 +147,7 @@ class TestBenchmark(WithDataPortal, WithSimParams, WithTradingSchedule,
self.sim_params.trading_days[5]
)
tmp_reader = tmp_bcolz_minute_bar_reader(
tmp_reader = tmp_bcolz_equity_minute_bar_reader(
self.trading_schedule,
self.trading_schedule.all_execution_days,
create_minute_bar_data(minutes, [2]),
@@ -157,7 +157,7 @@ class TestBenchmark(WithDataPortal, WithSimParams, WithTradingSchedule,
self.env.asset_finder, self.trading_schedule,
first_trading_day=reader.first_trading_day,
equity_minute_reader=reader,
equity_daily_reader=self.bcolz_daily_bar_reader,
equity_daily_reader=self.bcolz_equity_daily_bar_reader,
adjustment_reader=self.adjustment_reader,
)
+1 -1
View File
@@ -49,7 +49,7 @@ class BlotterTestCase(WithLogger,
ASSET_FINDER_EQUITY_SIDS = 24, 25
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
yield 24, pd.DataFrame(
{
'open': [50, 50],
+1 -1
View File
@@ -130,7 +130,7 @@ class CommissionAlgorithmTests(WithDataPortal, WithSimParams, ZiplineTestCase):
)
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
num_days = len(cls.sim_params.trading_days)
return trades_by_sid_to_dfs(
+8 -8
View File
@@ -25,7 +25,7 @@ from zipline.testing import (
MockDailyBarReader,
)
from zipline.testing.fixtures import (
WithBcolzMinuteBarReader,
WithBcolzEquityMinuteBarReader,
WithDataPortal,
ZiplineTestCase,
alias,
@@ -223,7 +223,7 @@ class WithHistory(WithDataPortal):
)
@classmethod
def make_adjustment_writer_daily_bar_reader(cls):
def make_adjustment_writer_equity_daily_bar_reader(cls):
return MockDailyBarReader()
def verify_regular_dt(self, idx, dt, mode, fields=None, assets=None):
@@ -447,11 +447,11 @@ MINUTE_FIELD_INFO = {
class MinuteEquityHistoryTestCase(WithHistory, ZiplineTestCase):
BCOLZ_DAILY_BAR_SOURCE_FROM_MINUTE = True
EQUITY_DAILY_BAR_SOURCE_FROM_MINUTE = True
DATA_PORTAL_FIRST_TRADING_DAY = alias('TRADING_START_DT')
@classmethod
def make_minute_bar_data(cls):
def make_equity_minute_bar_data(cls):
data = {}
sids = {2, 5, cls.SHORT_ASSET_SID, cls.HALF_DAY_TEST_ASSET_SID}
for sid in sids:
@@ -1314,7 +1314,7 @@ class MinuteEquityHistoryTestCase(WithHistory, ZiplineTestCase):
class DailyEquityHistoryTestCase(WithHistory, ZiplineTestCase):
@classmethod
def make_daily_bar_data(cls):
def make_equity_daily_bar_data(cls):
yield 1, cls.create_df_for_asset(
cls.START_DATE,
pd.Timestamp('2016-01-30', tz='UTC')
@@ -1715,7 +1715,7 @@ class DailyEquityHistoryTestCase(WithHistory, ZiplineTestCase):
window_2[self.ASSET2].values)
class MinuteToDailyAggregationTestCase(WithBcolzMinuteBarReader,
class MinuteToDailyAggregationTestCase(WithBcolzEquityMinuteBarReader,
ZiplineTestCase):
# March 2016
@@ -1740,7 +1740,7 @@ class MinuteToDailyAggregationTestCase(WithBcolzMinuteBarReader,
tz='US/Eastern').tz_convert('UTC')
@classmethod
def make_minute_bar_data(cls):
def make_equity_minute_bar_data(cls):
# sid data is created so that at least one high is lower than a
# previous high, and the inverse for low
yield 1, pd.DataFrame(
@@ -1804,7 +1804,7 @@ class MinuteToDailyAggregationTestCase(WithBcolzMinuteBarReader,
# needs to be tested.
self.equity_daily_aggregator = DailyHistoryAggregator(
self.trading_schedule.schedule.market_open,
self.bcolz_minute_bar_reader,
self.bcolz_equity_minute_bar_reader,
)
@parameterized.expand([