mirror of
https://github.com/wassname/catalyst.git
synced 2026-06-27 20:04:30 +08:00
Fixed an issue with the bar reader.
This commit is contained in:
@@ -3,7 +3,7 @@ import tempfile
|
||||
import pandas as pd
|
||||
|
||||
from catalyst.exchange.exchange_bundle import ExchangeBundle
|
||||
from catalyst.exchange.exchange_bcolz import BcolzExchangeBarWriter
|
||||
from catalyst.exchange.exchange_bcolz import BcolzExchangeBarWriter, BcolzExchangeBarReader
|
||||
|
||||
from nose.tools import assert_equals
|
||||
|
||||
@@ -19,16 +19,20 @@ class TestBcolzWriter(object):
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.root_dir) # Remove the directory after the test
|
||||
|
||||
def generate_df(self, exchange_name, freq, start, end):
|
||||
bundle = ExchangeBundle(exchange_name)
|
||||
index = bundle.get_calendar_periods_range(start, end,freq)
|
||||
df = pd.DataFrame(index=index, columns=self.columns)
|
||||
df.fillna(1, inplace=True)
|
||||
return df
|
||||
|
||||
|
||||
def test_bcolz_write_daily_past(self):
|
||||
start = pd.to_datetime('2016-01-01')
|
||||
end = pd.to_datetime('2016-12-31')
|
||||
freq = 'daily'
|
||||
|
||||
bundle = ExchangeBundle('bitfinex')
|
||||
index = bundle.get_calendar_periods_range(start, end,freq)
|
||||
df = pd.DataFrame(index=index, columns=self.columns)
|
||||
assert_equals(len(df.index), 366)
|
||||
df.fillna(1, inplace=True)
|
||||
df = self.generate_df('bitfinex', freq, start, end)
|
||||
|
||||
writer = BcolzExchangeBarWriter(
|
||||
rootdir=self.root_dir,
|
||||
@@ -47,10 +51,7 @@ class TestBcolzWriter(object):
|
||||
end = pd.to_datetime('today')
|
||||
freq = 'daily'
|
||||
|
||||
bundle = ExchangeBundle('bitfinex')
|
||||
index = bundle.get_calendar_periods_range(start, end,freq)
|
||||
df = pd.DataFrame(index=index, columns=self.columns)
|
||||
df.fillna(1, inplace=True)
|
||||
df = self.generate_df('bitfinex', freq, start, end)
|
||||
|
||||
writer = BcolzExchangeBarWriter(
|
||||
rootdir = self.root_dir,
|
||||
@@ -65,15 +66,11 @@ class TestBcolzWriter(object):
|
||||
pass
|
||||
|
||||
def test_bcolz_write_minute_past(self):
|
||||
start = pd.to_datetime('2015-04-01')
|
||||
end = pd.to_datetime('2015-04-30')
|
||||
start = pd.to_datetime('2015-04-01 00:00')
|
||||
end = pd.to_datetime('2015-04-30 23:59')
|
||||
freq = 'minute'
|
||||
|
||||
bundle = ExchangeBundle('bitfinex')
|
||||
index = bundle.get_calendar_periods_range(start, end,freq)
|
||||
df = pd.DataFrame(index=index, columns=self.columns)
|
||||
assert_equals(len(df.index), 30*24*60)
|
||||
df.fillna(1, inplace=True)
|
||||
df = self.generate_df('bitfinex', freq, start, end)
|
||||
|
||||
writer = BcolzExchangeBarWriter(
|
||||
rootdir = self.root_dir,
|
||||
@@ -89,14 +86,11 @@ class TestBcolzWriter(object):
|
||||
pass
|
||||
|
||||
def test_bcolz_write_minute_present(self):
|
||||
start = pd.to_datetime('2017-10-01')
|
||||
start = pd.to_datetime('2017-10-01 00:00')
|
||||
end = pd.to_datetime('today')
|
||||
freq = 'minute'
|
||||
|
||||
bundle = ExchangeBundle('bitfinex')
|
||||
index = bundle.get_calendar_periods_range(start, end,freq)
|
||||
df = pd.DataFrame(index=index, columns=self.columns)
|
||||
df.fillna(1, inplace=True)
|
||||
df = self.generate_df('bitfinex', freq, start, end)
|
||||
|
||||
writer = BcolzExchangeBarWriter(
|
||||
rootdir = self.root_dir,
|
||||
@@ -110,3 +104,39 @@ class TestBcolzWriter(object):
|
||||
writer.write(data)
|
||||
pass
|
||||
|
||||
def bcolz_exchange_daily_write_read(self, exchange_name):
|
||||
start = pd.to_datetime('2017-10-01 00:00')
|
||||
end = pd.to_datetime('today')
|
||||
freq = 'minute'
|
||||
|
||||
df = self.generate_df(exchange_name, freq, start, end)
|
||||
|
||||
writer = BcolzExchangeBarWriter(
|
||||
rootdir = self.root_dir,
|
||||
start_session = start,
|
||||
end_session = end,
|
||||
data_frequency = freq,
|
||||
write_metadata = True )
|
||||
|
||||
data = []
|
||||
data.append((1,df))
|
||||
writer.write(data)
|
||||
|
||||
reader = BcolzExchangeBarReader(rootdir = self.root_dir)
|
||||
|
||||
dx = reader.load_raw_arrays(self.columns, start, end, [1,])
|
||||
|
||||
assert_equals(dx,df)
|
||||
|
||||
def test_bcolz_bitfinex_daily_write_read(self):
|
||||
self.bcolz_exchange_daily_write_read('bitfinex')
|
||||
|
||||
def test_bcolz_poloniex_daily_write_read(self):
|
||||
self.bcolz_exchange_daily_write_read('poloniex')
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ from catalyst.finance.execution import (LimitOrder)
|
||||
log = Logger('test_bitfinex')
|
||||
|
||||
|
||||
class BitfinexTestCase(BaseExchangeTestCase):
|
||||
class TestBitfinexTestCase(BaseExchangeTestCase):
|
||||
@classmethod
|
||||
def setup(self):
|
||||
log.info('creating bitfinex object')
|
||||
|
||||
@@ -7,7 +7,7 @@ from catalyst.exchange.exchange_utils import get_exchange_auth
|
||||
log = Logger('test_bittrex')
|
||||
|
||||
|
||||
class BittrexTestCase(BaseExchangeTestCase):
|
||||
class TestBittrexTestCase(BaseExchangeTestCase):
|
||||
@classmethod
|
||||
def setup(self):
|
||||
print ('creating bittrex object')
|
||||
|
||||
@@ -17,7 +17,7 @@ from catalyst.utils.paths import ensure_directory
|
||||
log = Logger('test_exchange_bundle')
|
||||
|
||||
|
||||
class ExchangeBundleTestCase:
|
||||
class TestExchangeBundleTestCase:
|
||||
def test_spot_value(self):
|
||||
data_frequency = 'daily'
|
||||
exchange_name = 'poloniex'
|
||||
|
||||
@@ -12,7 +12,7 @@ from catalyst.exchange.exchange_utils import get_exchange_auth
|
||||
log = Logger('test_bitfinex')
|
||||
|
||||
|
||||
class ExchangeDataPortalTestCase:
|
||||
class TestExchangeDataPortalTestCase:
|
||||
@classmethod
|
||||
def setup(self):
|
||||
log.info('creating bitfinex exchange')
|
||||
|
||||
@@ -8,7 +8,7 @@ from catalyst.exchange.exchange_utils import get_exchange_auth
|
||||
log = Logger('test_poloniex')
|
||||
|
||||
|
||||
class PoloniexTestCase(BaseExchangeTestCase):
|
||||
class TestPoloniexTestCase(BaseExchangeTestCase):
|
||||
@classmethod
|
||||
def setup(self):
|
||||
print ('creating poloniex object')
|
||||
|
||||
Reference in New Issue
Block a user