Files
catalyst/tests/exchange/test_bundle.py
T

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