Misc small fixes

This commit is contained in:
fredfortier
2017-10-20 13:17:02 -04:00
parent 946d24bd7a
commit f72074876d
8 changed files with 40 additions and 10 deletions
+2 -2
View File
@@ -105,8 +105,8 @@ def load_crypto_market_data(trading_day=None, trading_days=None,
# if trading_days is None:
# trading_days = get_calendar('OPEN').schedule
if start_dt is None:
start_dt = get_calendar('OPEN').first_trading_session
# if start_dt is None:
start_dt = get_calendar('OPEN').first_trading_session
if end_dt is None:
end_dt = pd.Timestamp.utcnow()
+1 -1
View File
@@ -21,7 +21,7 @@ def initialize(context):
context.ASSET_NAME = 'etc_btc'
context.asset = symbol(context.ASSET_NAME)
context.TARGET_POSITIONS = 3
context.TARGET_POSITIONS = 30
context.PROFIT_TARGET = 0.1
context.SLIPPAGE_ALLOWED = 0.02
+3 -2
View File
@@ -56,7 +56,7 @@ class Bitfinex(Exchange):
# Max is 90 but playing it safe
# https://www.bitfinex.com/posts/188
self.max_requests_per_minute = 20
self.max_requests_per_minute = 80
self.request_cpt = dict()
self.bundle = ExchangeBundle(self)
@@ -665,10 +665,11 @@ class Bitfinex(Exchange):
return time.strftime('%Y-%m-%d',
time.gmtime(int(response.json()[-1][0] / 1000)))
def get_orderbook(self, asset, order_type='all'):
def get_orderbook(self, asset, order_type='all', limit=100):
exchange_symbol = asset.exchange_symbol
try:
self.ask_request()
# TODO: implement limit
response = self._request(
'book/{}'.format(exchange_symbol), None)
data = response.json()
+6 -2
View File
@@ -358,7 +358,7 @@ class Bittrex(Exchange):
json.dump(symbol_map, f, sort_keys=True, indent=2,
separators=(',', ':'))
def get_orderbook(self, asset, order_type='all'):
def get_orderbook(self, asset, order_type='all', limit=100):
if order_type == 'all':
order_type = 'both'
elif order_type == 'bid':
@@ -369,7 +369,11 @@ class Bittrex(Exchange):
raise ValueError('invalid type')
exchange_symbol = asset.exchange_symbol
data = self.api.getorderbook(market=exchange_symbol, type=order_type)
data = self.api.getorderbook(
market=exchange_symbol,
type=order_type,
depth=100
)
result = dict()
for exchange_type in data:
+1 -1
View File
@@ -49,7 +49,7 @@ class Poloniex(Exchange):
self.transactions = defaultdict(list)
self.num_candles_limit = 2000
self.max_requests_per_minute = 20
self.max_requests_per_minute = 60
self.request_cpt = dict()
self.bundle = ExchangeBundle(self)
+7 -1
View File
@@ -72,7 +72,13 @@ class BenchmarkSource(object):
"benchmark_returns.")
def get_value(self, dt):
return self._precalculated_series.loc[dt]
try:
series = self._precalculated_series
value = series.loc[dt]
return value
except Exception:
# TODO: workaround, find permanent fix
return 0
def get_range(self, start_dt, end_dt):
return self._precalculated_series.loc[start_dt:end_dt]
+1 -1
View File
@@ -268,7 +268,7 @@ def _run(handle_data,
)
# TODO: use the constructor instead
# sim_params._arena = 'live'
sim_params._arena = 'live'
algorithm_class = partial(
ExchangeTradingAlgorithmLive,
+19
View File
@@ -17,6 +17,25 @@ log = Logger('test_exchange_bundle')
class ExchangeBundleTestCase:
def test_spot_value(self):
data_frequency = 'daily'
exchange_name = 'poloniex'
exchange = get_exchange(exchange_name)
exchange_bundle = ExchangeBundle(exchange)
assets = [
exchange.get_asset('btc_usdt')
]
dt = pd.to_datetime('2017-9-29 23:59', utc=True)
values = exchange_bundle.get_spot_values(
assets=assets,
field='close',
dt=dt,
data_frequency=data_frequency
)
pass
def test_ingest_minute(self):
data_frequency = 'minute'
exchange_name = 'bitfinex'