mirror of
https://github.com/wassname/catalyst.git
synced 2026-07-17 11:25:55 +08:00
61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
from datetime import timedelta
|
|
|
|
import os
|
|
import pandas as pd
|
|
from logging import Logger
|
|
|
|
from catalyst import get_calendar
|
|
|
|
from catalyst.data.minute_bars import BcolzMinuteBarWriter
|
|
from catalyst.exchange.exchange_bundle import exchange_bundle
|
|
from catalyst.exchange.exchange_utils import get_exchange_minute_writer_root
|
|
|
|
log = Logger('test_exchange_bundle')
|
|
|
|
|
|
class ExchangeBundleTestCase:
|
|
def test_ingest(self):
|
|
exchange_name = 'bitfinex'
|
|
|
|
start = pd.Timestamp.utcnow() - timedelta(days=2)
|
|
end = pd.Timestamp.utcnow()
|
|
open_calendar = get_calendar('OPEN')
|
|
|
|
root = get_exchange_minute_writer_root(exchange_name)
|
|
filename = os.path.join(root, 'metadata.json')
|
|
|
|
if os.path.isfile(filename):
|
|
minute_bar_writer = BcolzMinuteBarWriter.open(root, end)
|
|
else:
|
|
# TODO: need to be able to write more precise numbers
|
|
minute_bar_writer = BcolzMinuteBarWriter(
|
|
rootdir=root,
|
|
calendar=open_calendar,
|
|
minutes_per_day=1440,
|
|
start_session=start.floor('1d'),
|
|
end_session=end,
|
|
write_metadata=True
|
|
)
|
|
|
|
ingest = exchange_bundle(
|
|
exchange_name=exchange_name,
|
|
symbols=['btc_usd']
|
|
)
|
|
|
|
ingest(
|
|
environ=os.environ,
|
|
asset_db_writer=None, # TODO: nice to have
|
|
minute_bar_writer=minute_bar_writer,
|
|
daily_bar_writer=None, # TODO: add later
|
|
adjustment_writer=None, # Not applicable to crypto
|
|
calendar=open_calendar,
|
|
start_session=start,
|
|
end_session=end,
|
|
cache=dict(),
|
|
show_progress=True,
|
|
output_dir=exchange_name, # TODO: not sure
|
|
start=start,
|
|
end=end
|
|
)
|
|
pass
|