mirror of
https://github.com/wassname/catalyst.git
synced 2026-07-03 23:14:26 +08:00
MAINT: DataPortal env -> asset_finder
This commit is contained in:
@@ -42,7 +42,6 @@ from zipline.data.minute_bars import (
|
||||
US_EQUITIES_MINUTES_PER_DAY,
|
||||
BcolzMinuteWriterColumnMismatch
|
||||
)
|
||||
from zipline.utils.calendars import get_calendar
|
||||
|
||||
from zipline.testing.fixtures import (
|
||||
WithInstanceTmpDir,
|
||||
@@ -63,7 +62,7 @@ class BcolzMinuteBarTestCase(WithTradingSchedule, WithInstanceTmpDir,
|
||||
@classmethod
|
||||
def init_class_fixtures(cls):
|
||||
super(BcolzMinuteBarTestCase, cls).init_class_fixtures()
|
||||
trading_days = get_calendar('NYSE').trading_days(
|
||||
trading_days = cls.trading_schedule.trading_sessions(
|
||||
TEST_CALENDAR_START, TEST_CALENDAR_STOP
|
||||
)
|
||||
cls.market_opens = trading_days.market_open
|
||||
|
||||
@@ -94,7 +94,7 @@ class SlippageTestCase(WithSimParams, WithDataPortal, ZiplineTestCase):
|
||||
with tmp_bcolz_minute_bar_reader(self.trading_schedule, days, assets) \
|
||||
as reader:
|
||||
data_portal = DataPortal(
|
||||
self.env, self.trading_schedule,
|
||||
self.env.asset_finder, self.trading_schedule,
|
||||
first_trading_day=reader.first_trading_day,
|
||||
equity_minute_reader=reader,
|
||||
)
|
||||
@@ -484,7 +484,7 @@ class SlippageTestCase(WithSimParams, WithDataPortal, ZiplineTestCase):
|
||||
with tmp_bcolz_minute_bar_reader(self.trading_schedule, days, assets) \
|
||||
as reader:
|
||||
data_portal = DataPortal(
|
||||
self.env, self.trading_schedule,
|
||||
self.env.asset_finder, self.trading_schedule,
|
||||
first_trading_day=reader.first_trading_day,
|
||||
equity_minute_reader=reader,
|
||||
)
|
||||
|
||||
@@ -957,7 +957,7 @@ def before_trading_start(context, data):
|
||||
)
|
||||
|
||||
data_portal = create_data_portal(
|
||||
env,
|
||||
env.asset_finder,
|
||||
tempdir,
|
||||
sim_params,
|
||||
equities.index,
|
||||
@@ -1556,8 +1556,8 @@ def handle_data(context, data):
|
||||
trades = factory.create_daily_trade_source(
|
||||
[0], self.sim_params, self.env, self.trading_schedule)
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env, self.trading_schedule, tempdir, self.sim_params,
|
||||
{0: trades})
|
||||
self.env.asset_finder, self.trading_schedule, tempdir,
|
||||
self.sim_params, {0: trades})
|
||||
results = test_algo.run(data_portal)
|
||||
|
||||
all_txns = [
|
||||
@@ -2727,7 +2727,7 @@ class TestTradingControls(WithSimParams, WithDataPortal, ZiplineTestCase):
|
||||
)
|
||||
|
||||
data_portal = create_data_portal(
|
||||
env,
|
||||
env.asset_finder,
|
||||
tempdir,
|
||||
sim_params,
|
||||
[1],
|
||||
@@ -2849,7 +2849,7 @@ class TestTradingControls(WithSimParams, WithDataPortal, ZiplineTestCase):
|
||||
env=env,
|
||||
)
|
||||
data_portal = create_data_portal(
|
||||
env,
|
||||
env.asset_finder,
|
||||
tempdir,
|
||||
self.sim_params,
|
||||
[0],
|
||||
@@ -2864,7 +2864,7 @@ class TestTradingControls(WithSimParams, WithDataPortal, ZiplineTestCase):
|
||||
with TempDirectory() as tempdir, \
|
||||
tmp_trading_env(equities=metadata) as env:
|
||||
data_portal = create_data_portal(
|
||||
env,
|
||||
env.asset_finder,
|
||||
tempdir,
|
||||
self.sim_params,
|
||||
[0],
|
||||
@@ -2884,7 +2884,7 @@ class TestTradingControls(WithSimParams, WithDataPortal, ZiplineTestCase):
|
||||
with TempDirectory() as tempdir, \
|
||||
tmp_trading_env(equities=metadata) as env:
|
||||
data_portal = create_data_portal(
|
||||
env,
|
||||
env.asset_finder,
|
||||
tempdir,
|
||||
self.sim_params,
|
||||
[0],
|
||||
@@ -3454,7 +3454,7 @@ class TestEquityAutoClose(WithTmpDir, WithTradingSchedule, ZiplineTestCase):
|
||||
)
|
||||
reader = BcolzDailyBarReader(path)
|
||||
data_portal = DataPortal(
|
||||
env, self.trading_schedule,
|
||||
env.asset_finder, self.trading_schedule,
|
||||
first_trading_day=reader.first_trading_day,
|
||||
equity_daily_reader=reader,
|
||||
)
|
||||
@@ -3484,7 +3484,7 @@ class TestEquityAutoClose(WithTmpDir, WithTradingSchedule, ZiplineTestCase):
|
||||
)
|
||||
reader = BcolzMinuteBarReader(self.tmpdir.path)
|
||||
data_portal = DataPortal(
|
||||
env, self.trading_schedule,
|
||||
env.asset_finder, self.trading_schedule,
|
||||
first_trading_day=reader.first_trading_day,
|
||||
equity_minute_reader=reader,
|
||||
)
|
||||
|
||||
@@ -154,7 +154,7 @@ class TestBenchmark(WithDataPortal, WithSimParams, WithTradingSchedule,
|
||||
)
|
||||
with tmp_reader as reader:
|
||||
data_portal = DataPortal(
|
||||
self.env, self.trading_schedule,
|
||||
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,
|
||||
|
||||
@@ -26,7 +26,8 @@ class TestDataPortal(WithTradingEnvironment, ZiplineTestCase):
|
||||
def init_instance_fixtures(self):
|
||||
super(TestDataPortal, self).init_instance_fixtures()
|
||||
|
||||
self.data_portal = DataPortal(self.env, self.trading_schedule,
|
||||
self.data_portal = DataPortal(self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
first_trading_day=None)
|
||||
|
||||
def test_bar_count_for_simple_transforms(self):
|
||||
|
||||
@@ -226,7 +226,7 @@ class FinanceTestCase(WithLogger,
|
||||
equity_minute_reader = BcolzMinuteBarReader(tempdir.path)
|
||||
|
||||
data_portal = DataPortal(
|
||||
env, self.trading_schedule,
|
||||
env.asset_finder, self.trading_schedule,
|
||||
first_trading_day=equity_minute_reader.first_trading_day,
|
||||
equity_minute_reader=equity_minute_reader,
|
||||
)
|
||||
@@ -254,7 +254,7 @@ class FinanceTestCase(WithLogger,
|
||||
equity_daily_reader = BcolzDailyBarReader(path)
|
||||
|
||||
data_portal = DataPortal(
|
||||
env, self.trading_schedule,
|
||||
env.asset_finder, self.trading_schedule,
|
||||
first_trading_day=equity_daily_reader.first_trading_day,
|
||||
equity_daily_reader=equity_daily_reader,
|
||||
)
|
||||
|
||||
+20
-20
@@ -316,7 +316,7 @@ class TestSplitPerformance(WithSimParams, WithTmpDir, ZiplineTestCase):
|
||||
# set up a long position in sid 1
|
||||
# 100 shares at $20 apiece = $2000 position
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.tmpdir,
|
||||
self.sim_params,
|
||||
@@ -456,7 +456,7 @@ class TestDividendPerformance(WithSimParams,
|
||||
writer.write(splits, mergers, dividends)
|
||||
adjustment_reader = SQLiteAdjustmentReader(dbpath)
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -533,7 +533,7 @@ class TestDividendPerformance(WithSimParams,
|
||||
adjustment_reader = SQLiteAdjustmentReader(dbpath)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -598,7 +598,7 @@ class TestDividendPerformance(WithSimParams,
|
||||
adjustment_reader = SQLiteAdjustmentReader(dbpath)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -660,7 +660,7 @@ class TestDividendPerformance(WithSimParams,
|
||||
adjustment_reader = SQLiteAdjustmentReader(dbpath)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -723,7 +723,7 @@ class TestDividendPerformance(WithSimParams,
|
||||
adjustment_reader = SQLiteAdjustmentReader(dbpath)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -790,7 +790,7 @@ class TestDividendPerformance(WithSimParams,
|
||||
adjustment_reader = SQLiteAdjustmentReader(dbpath)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -852,7 +852,7 @@ class TestDividendPerformance(WithSimParams,
|
||||
adjustment_reader = SQLiteAdjustmentReader(dbpath)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -911,7 +911,7 @@ class TestDividendPerformance(WithSimParams,
|
||||
adjustment_reader = SQLiteAdjustmentReader(dbpath)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -981,7 +981,7 @@ class TestDividendPerformance(WithSimParams,
|
||||
sim_params.update_internal_from_trading_schedule(self.trading_schedule)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
sim_params,
|
||||
@@ -1085,7 +1085,7 @@ class TestPositionPerformance(WithInstanceTmpDir, WithTradingSchedule,
|
||||
)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -1182,7 +1182,7 @@ class TestPositionPerformance(WithInstanceTmpDir, WithTradingSchedule,
|
||||
)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -1274,7 +1274,7 @@ class TestPositionPerformance(WithInstanceTmpDir, WithTradingSchedule,
|
||||
)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -1392,7 +1392,7 @@ single short-sale transaction"""
|
||||
trades_1 = trades[:-2]
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -1624,7 +1624,7 @@ cost of sole txn in test"
|
||||
)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -1744,7 +1744,7 @@ single short-sale transaction"""
|
||||
)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -1989,7 +1989,7 @@ trade after cover"""
|
||||
)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -2078,7 +2078,7 @@ shares in position"
|
||||
transactions = factory.create_txn_history(*history_args)[:4]
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -2238,7 +2238,7 @@ shares in position"
|
||||
)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
@@ -2283,7 +2283,7 @@ shares in position"
|
||||
)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
self.instance_tmpdir,
|
||||
self.sim_params,
|
||||
|
||||
@@ -110,7 +110,7 @@ class SecurityListTestCase(WithLogger, WithTradingSchedule, ZiplineTestCase):
|
||||
cls.tempdir2 = cls.enter_class_context(tmp_dir())
|
||||
|
||||
cls.data_portal = create_data_portal(
|
||||
env=cls.env,
|
||||
asset_finder=cls.env.asset_finder,
|
||||
tempdir=cls.tempdir,
|
||||
sim_params=cls.sim_params,
|
||||
sids=range(0, 5),
|
||||
@@ -118,7 +118,7 @@ class SecurityListTestCase(WithLogger, WithTradingSchedule, ZiplineTestCase):
|
||||
)
|
||||
|
||||
cls.data_portal2 = create_data_portal(
|
||||
env=cls.env2,
|
||||
asset_finder=cls.env2.asset_finder,
|
||||
tempdir=cls.tempdir2,
|
||||
sim_params=cls.sim_params2,
|
||||
sids=range(0, 5),
|
||||
@@ -221,7 +221,7 @@ class SecurityListTestCase(WithLogger, WithTradingSchedule, ZiplineTestCase):
|
||||
LEVERAGED_ETFS.keys())[0] + timedelta(days=7), num_days=5)
|
||||
|
||||
data_portal = create_data_portal(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.tempdir,
|
||||
sim_params=sim_params,
|
||||
sids=range(0, 5),
|
||||
@@ -273,7 +273,7 @@ class SecurityListTestCase(WithLogger, WithTradingSchedule, ZiplineTestCase):
|
||||
add_security_data([], ['BZQ'])
|
||||
|
||||
data_portal = create_data_portal(
|
||||
env,
|
||||
env.asset_finder,
|
||||
new_tempdir,
|
||||
sim_params,
|
||||
range(0, 5),
|
||||
|
||||
@@ -203,7 +203,7 @@ cdef class BarData:
|
||||
view = self._views[asset]
|
||||
except KeyError:
|
||||
try:
|
||||
asset = self.data_portal.env.asset_finder.retrieve_asset(asset)
|
||||
asset = self.data_portal.asset_finder.retrieve_asset(asset)
|
||||
except ValueError:
|
||||
# assume fetcher
|
||||
pass
|
||||
|
||||
@@ -632,7 +632,7 @@ class TradingAlgorithm(object):
|
||||
copy_panel.items, copy_panel.major_axis[0],
|
||||
)
|
||||
self._assets_from_source = (
|
||||
self.trading_environment.asset_finder.retrieve_all(
|
||||
self.asset_finder.retrieve_all(
|
||||
copy_panel.items
|
||||
)
|
||||
)
|
||||
@@ -641,7 +641,7 @@ class TradingAlgorithm(object):
|
||||
copy_panel,
|
||||
)
|
||||
self.data_portal = DataPortal(
|
||||
self.trading_environment,
|
||||
self.asset_finder,
|
||||
self.trading_schedule,
|
||||
first_trading_day=equity_daily_reader.first_trading_day,
|
||||
equity_daily_reader=equity_daily_reader,
|
||||
|
||||
@@ -495,7 +495,7 @@ class DataPortal(object):
|
||||
other adjustment data to the raw data from the readers.
|
||||
"""
|
||||
def __init__(self,
|
||||
env,
|
||||
asset_finder,
|
||||
trading_schedule,
|
||||
first_trading_day,
|
||||
equity_daily_reader=None,
|
||||
@@ -503,13 +503,12 @@ class DataPortal(object):
|
||||
future_daily_reader=None,
|
||||
future_minute_reader=None,
|
||||
adjustment_reader=None):
|
||||
self.env = env
|
||||
|
||||
self.trading_schedule = trading_schedule
|
||||
self.asset_finder = asset_finder
|
||||
|
||||
self.views = {}
|
||||
|
||||
self._asset_finder = env.asset_finder
|
||||
|
||||
self._carrays = {
|
||||
'open': {},
|
||||
'high': {},
|
||||
|
||||
+12
-11
@@ -475,15 +475,15 @@ def write_daily_data(tempdir, sim_params, sids):
|
||||
return path
|
||||
|
||||
|
||||
def create_data_portal(env, tempdir, sim_params, sids, trading_schedule,
|
||||
adjustment_reader=None):
|
||||
def create_data_portal(asset_finder, tempdir, sim_params, sids,
|
||||
trading_schedule, adjustment_reader=None):
|
||||
if sim_params.data_frequency == "daily":
|
||||
daily_path = write_daily_data(tempdir, sim_params, sids)
|
||||
|
||||
equity_daily_reader = BcolzDailyBarReader(daily_path)
|
||||
|
||||
return DataPortal(
|
||||
env, trading_schedule,
|
||||
asset_finder, trading_schedule,
|
||||
first_trading_day=equity_daily_reader.first_trading_day,
|
||||
equity_daily_reader=equity_daily_reader,
|
||||
adjustment_reader=adjustment_reader
|
||||
@@ -500,7 +500,7 @@ def create_data_portal(env, tempdir, sim_params, sids, trading_schedule,
|
||||
equity_minute_reader = BcolzMinuteBarReader(minute_path)
|
||||
|
||||
return DataPortal(
|
||||
env, trading_schedule,
|
||||
asset_finder, trading_schedule,
|
||||
first_trading_day=equity_minute_reader.first_trading_day,
|
||||
equity_minute_reader=equity_minute_reader,
|
||||
adjustment_reader=adjustment_reader
|
||||
@@ -613,8 +613,8 @@ def trades_by_sid_to_dfs(trades_by_sid, index):
|
||||
)
|
||||
|
||||
|
||||
def create_data_portal_from_trade_history(env, trading_schedule, tempdir,
|
||||
sim_params, trades_by_sid):
|
||||
def create_data_portal_from_trade_history(asset_finder, trading_schedule,
|
||||
tempdir, sim_params, trades_by_sid):
|
||||
if sim_params.data_frequency == "daily":
|
||||
path = os.path.join(tempdir.path, "testdaily.bcolz")
|
||||
BcolzDailyBarWriter(path, sim_params.trading_days).write(
|
||||
@@ -624,7 +624,7 @@ def create_data_portal_from_trade_history(env, trading_schedule, tempdir,
|
||||
equity_daily_reader = BcolzDailyBarReader(path)
|
||||
|
||||
return DataPortal(
|
||||
env, trading_schedule,
|
||||
asset_finder, trading_schedule,
|
||||
first_trading_day=equity_daily_reader.first_trading_day,
|
||||
equity_daily_reader=equity_daily_reader,
|
||||
)
|
||||
@@ -676,7 +676,7 @@ def create_data_portal_from_trade_history(env, trading_schedule, tempdir,
|
||||
equity_minute_reader = BcolzMinuteBarReader(tempdir.path)
|
||||
|
||||
return DataPortal(
|
||||
env, trading_schedule,
|
||||
asset_finder, trading_schedule,
|
||||
first_trading_day=equity_minute_reader.first_trading_day,
|
||||
equity_minute_reader=equity_minute_reader,
|
||||
)
|
||||
@@ -689,7 +689,8 @@ class FakeDataPortal(DataPortal):
|
||||
if env is None:
|
||||
env = TradingEnvironment()
|
||||
|
||||
super(FakeDataPortal, self).__init__(env, trading_schedule,
|
||||
super(FakeDataPortal, self).__init__(env.asset_finder,
|
||||
trading_schedule,
|
||||
first_trading_day)
|
||||
|
||||
def get_spot_value(self, asset, field, dt, data_frequency):
|
||||
@@ -721,8 +722,8 @@ class FetcherDataPortal(DataPortal):
|
||||
Mock dataportal that returns fake data for history and non-fetcher
|
||||
spot value.
|
||||
"""
|
||||
def __init__(self, env, trading_schedule, first_trading_day=None):
|
||||
super(FetcherDataPortal, self).__init__(env, trading_schedule,
|
||||
def __init__(self, asset_finder, trading_schedule, first_trading_day=None):
|
||||
super(FetcherDataPortal, self).__init__(asset_finder, trading_schedule,
|
||||
first_trading_day)
|
||||
|
||||
def get_spot_value(self, asset, field, dt, data_frequency):
|
||||
|
||||
@@ -1197,7 +1197,7 @@ class WithDataPortal(WithAdjustmentReader,
|
||||
first_trading_day = None
|
||||
|
||||
return DataPortal(
|
||||
self.env,
|
||||
self.env.asset_finder,
|
||||
self.trading_schedule,
|
||||
first_trading_day=first_trading_day,
|
||||
equity_daily_reader=(
|
||||
|
||||
@@ -130,7 +130,7 @@ def _run(handle_data,
|
||||
)
|
||||
env = TradingEnvironment(asset_db_path=connstr)
|
||||
data = DataPortal(
|
||||
env, default_nyse_schedule,
|
||||
env.asset_finder, default_nyse_schedule,
|
||||
first_trading_day=bundle_data.minute_bar_reader.first_trading_day,
|
||||
equity_minute_reader=bundle_data.minute_bar_reader,
|
||||
equity_daily_reader=bundle_data.daily_bar_reader,
|
||||
|
||||
@@ -82,7 +82,7 @@ def create_test_zipline(**config):
|
||||
trades_by_sid[trade.sid].append(trade)
|
||||
|
||||
data_portal = create_data_portal_from_trade_history(
|
||||
config['env'],
|
||||
config['env'].asset_finder,
|
||||
trading_schedule,
|
||||
config['tempdir'],
|
||||
config['sim_params'],
|
||||
|
||||
Reference in New Issue
Block a user