Files
catalyst/tests/exchange/test_data_portal.py
T
2018-03-16 15:46:05 -04:00

118 lines
3.6 KiB
Python

import pandas as pd
from logbook import Logger
from catalyst import get_calendar
from catalyst.exchange.exchange_asset_finder import ExchangeAssetFinder
from catalyst.exchange.exchange_data_portal import (
DataPortalExchangeBacktest,
DataPortalExchangeLive
)
from catalyst.exchange.utils.exchange_utils import get_common_assets
from catalyst.exchange.utils.factory import get_exchanges
from .test_utils import rnd_history_date_days, rnd_bar_count
log = Logger('test_bitfinex')
class TestExchangeDataPortal:
@classmethod
def setup(self):
log.info('creating bitfinex exchange')
exchanges = get_exchanges(['bitfinex', 'bittrex', 'poloniex'])
open_calendar = get_calendar('OPEN')
asset_finder = ExchangeAssetFinder()
self.data_portal_live = DataPortalExchangeLive(
exchanges=exchanges,
asset_finder=asset_finder,
trading_calendar=open_calendar,
first_trading_day=pd.to_datetime('today', utc=True)
)
self.data_portal_backtest = DataPortalExchangeBacktest(
exchanges=exchanges,
asset_finder=asset_finder,
trading_calendar=open_calendar,
first_trading_day=None # will set dynamically based on assets
)
def test_get_history_window_live(self):
# asset_finder = self.data_portal_live.asset_finder
# assets = [
# asset_finder.lookup_symbol('eth_btc', self.bitfinex),
# asset_finder.lookup_symbol('eth_btc', self.bittrex)
# ]
# now = pd.Timestamp.utcnow()
# data = self.data_portal_live.get_history_window(
# assets,
# now,
# 10,
# '1m',
# 'price')
pass
def test_get_spot_value_live(self):
# asset_finder = self.data_portal_live.asset_finder
# assets = [
# asset_finder.lookup_symbol('eth_btc', self.bitfinex),
# asset_finder.lookup_symbol('eth_btc', self.bittrex)
# ]
# now = pd.Timestamp.utcnow()
# value = self.data_portal_live.get_spot_value(
# assets, 'price', now, '1m')
pass
def test_get_history_window_backtest(self):
asset_finder = self.data_portal_live.asset_finder
assets = [
asset_finder.lookup_symbol('neo_btc', self.bitfinex),
]
date = pd.to_datetime('2017-09-10', utc=True)
data = self.data_portal_backtest.get_history_window(
assets,
date,
10,
'1m',
'close',
'minute')
log.info('found history window: {}'.format(data))
pass
def test_get_spot_value_backtest(self):
asset_finder = self.data_portal_backtest.asset_finder
assets = [
asset_finder.lookup_symbol('neo_btc', self.bitfinex),
]
date = pd.to_datetime('2017-09-10', utc=True)
value = self.data_portal_backtest.get_spot_value(
assets, 'close', date, 'minute')
log.info('found spot value {}'.format(value))
pass
def test_history_compare_exchanges(self):
exchanges = get_exchanges(['bittrex', 'bitfinex', 'poloniex'])
assets = get_common_assets(exchanges)
date = rnd_history_date_days()
bar_count = rnd_bar_count()
data = self.data_portal_backtest.get_history_window(
assets=assets,
end_dt=date,
bar_count=bar_count,
frequency='1d',
field='close',
data_frequency='daily'
)
log.info('found history window: {}'.format(data))
def test_validate_resample(self):
pass