mirror of
https://github.com/wassname/catalyst.git
synced 2026-09-12 12:12:04 +08:00
Merge branch 'develop' of github.com:enigmampc/catalyst into develop
This commit is contained in:
@@ -232,12 +232,12 @@ class ExchangeBundle:
|
|||||||
|
|
||||||
problem = '{name} ({start_dt} to {end_dt}) has empty ' \
|
problem = '{name} ({start_dt} to {end_dt}) has empty ' \
|
||||||
'periods: {dates}'.format(
|
'periods: {dates}'.format(
|
||||||
name=asset.symbol,
|
name=asset.symbol,
|
||||||
start_dt=asset.start_date.strftime(
|
start_dt=asset.start_date.strftime(
|
||||||
DATE_TIME_FORMAT),
|
DATE_TIME_FORMAT),
|
||||||
end_dt=end_dt.strftime(DATE_TIME_FORMAT),
|
end_dt=end_dt.strftime(DATE_TIME_FORMAT),
|
||||||
dates=[date.strftime(
|
dates=[date.strftime(
|
||||||
DATE_TIME_FORMAT) for date in dates])
|
DATE_TIME_FORMAT) for date in dates])
|
||||||
|
|
||||||
if empty_rows_behavior == 'warn':
|
if empty_rows_behavior == 'warn':
|
||||||
log.warn(problem)
|
log.warn(problem)
|
||||||
@@ -286,12 +286,12 @@ class ExchangeBundle:
|
|||||||
|
|
||||||
problem = '{name} ({start_dt} to {end_dt}) has {threshold} ' \
|
problem = '{name} ({start_dt} to {end_dt}) has {threshold} ' \
|
||||||
'identical close values on: {dates}'.format(
|
'identical close values on: {dates}'.format(
|
||||||
name=asset.symbol,
|
name=asset.symbol,
|
||||||
start_dt=asset.start_date.strftime(DATE_TIME_FORMAT),
|
start_dt=asset.start_date.strftime(DATE_TIME_FORMAT),
|
||||||
end_dt=end_dt.strftime(DATE_TIME_FORMAT),
|
end_dt=end_dt.strftime(DATE_TIME_FORMAT),
|
||||||
threshold=threshold,
|
threshold=threshold,
|
||||||
dates=[pd.to_datetime(date).strftime(DATE_TIME_FORMAT)
|
dates=[pd.to_datetime(date).strftime(DATE_TIME_FORMAT)
|
||||||
for date in dates])
|
for date in dates])
|
||||||
|
|
||||||
problems.append(problem)
|
problems.append(problem)
|
||||||
|
|
||||||
@@ -629,8 +629,8 @@ class ExchangeBundle:
|
|||||||
show_progress,
|
show_progress,
|
||||||
label='Ingesting {frequency} price data on '
|
label='Ingesting {frequency} price data on '
|
||||||
'{exchange}'.format(
|
'{exchange}'.format(
|
||||||
exchange=self.exchange_name,
|
exchange=self.exchange_name,
|
||||||
frequency=data_frequency,
|
frequency=data_frequency,
|
||||||
)) as it:
|
)) as it:
|
||||||
for chunk in it:
|
for chunk in it:
|
||||||
problems += self.ingest_ctable(
|
problems += self.ingest_ctable(
|
||||||
@@ -964,15 +964,15 @@ class ExchangeBundle:
|
|||||||
data_frequency,
|
data_frequency,
|
||||||
trailing_bar_count=None,
|
trailing_bar_count=None,
|
||||||
reset_reader=False):
|
reset_reader=False):
|
||||||
|
if trailing_bar_count:
|
||||||
|
delta = get_delta(trailing_bar_count, data_frequency)
|
||||||
|
end_dt += delta
|
||||||
|
|
||||||
start_dt = get_start_dt(end_dt, bar_count, data_frequency, False)
|
start_dt = get_start_dt(end_dt, bar_count, data_frequency, False)
|
||||||
start_dt, _ = self.get_adj_dates(
|
start_dt, _ = self.get_adj_dates(
|
||||||
start_dt, end_dt, assets, data_frequency
|
start_dt, end_dt, assets, data_frequency
|
||||||
)
|
)
|
||||||
|
|
||||||
if trailing_bar_count:
|
|
||||||
delta = get_delta(trailing_bar_count, data_frequency)
|
|
||||||
end_dt += delta
|
|
||||||
|
|
||||||
# This is an attempt to resolve some caching with the reader
|
# This is an attempt to resolve some caching with the reader
|
||||||
# when auto-ingesting data.
|
# when auto-ingesting data.
|
||||||
# TODO: needs more work
|
# TODO: needs more work
|
||||||
|
|||||||
@@ -21,10 +21,11 @@ pd.set_option('display.max_colwidth', 1000)
|
|||||||
|
|
||||||
class TestSuiteBundle(WithLogger, ZiplineTestCase):
|
class TestSuiteBundle(WithLogger, ZiplineTestCase):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_data_portal(exchange_names):
|
def get_data_portal(exchanges):
|
||||||
open_calendar = get_calendar('OPEN')
|
open_calendar = get_calendar('OPEN')
|
||||||
asset_finder = ExchangeAssetFinder()
|
asset_finder = ExchangeAssetFinder(exchanges)
|
||||||
|
|
||||||
|
exchange_names = [exchange.name for exchange in exchanges]
|
||||||
data_portal = DataPortalExchangeBacktest(
|
data_portal = DataPortalExchangeBacktest(
|
||||||
exchange_names=exchange_names,
|
exchange_names=exchange_names,
|
||||||
asset_finder=asset_finder,
|
asset_finder=asset_finder,
|
||||||
@@ -97,7 +98,7 @@ class TestSuiteBundle(WithLogger, ZiplineTestCase):
|
|||||||
def test_validate_bundles(self):
|
def test_validate_bundles(self):
|
||||||
# exchange_population = 3
|
# exchange_population = 3
|
||||||
asset_population = 3
|
asset_population = 3
|
||||||
data_frequency = random.choice(['minute', 'daily'])
|
data_frequency = random.choice(['minute'])
|
||||||
|
|
||||||
# bundle = 'dailyBundle' if data_frequency
|
# bundle = 'dailyBundle' if data_frequency
|
||||||
# == 'daily' else 'minuteBundle'
|
# == 'daily' else 'minuteBundle'
|
||||||
@@ -105,11 +106,9 @@ class TestSuiteBundle(WithLogger, ZiplineTestCase):
|
|||||||
# population=exchange_population,
|
# population=exchange_population,
|
||||||
# features=[bundle],
|
# features=[bundle],
|
||||||
# ) # Type: list[Exchange]
|
# ) # Type: list[Exchange]
|
||||||
exchanges = [get_exchange('bitfinex', skip_init=True)]
|
exchanges = [get_exchange('poloniex', skip_init=True)]
|
||||||
|
|
||||||
data_portal = TestSuiteBundle.get_data_portal(
|
data_portal = TestSuiteBundle.get_data_portal(exchanges)
|
||||||
[exchange.name for exchange in exchanges]
|
|
||||||
)
|
|
||||||
for exchange in exchanges:
|
for exchange in exchanges:
|
||||||
exchange.init()
|
exchange.init()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user