Merge branch 'exchange-trading' of github.com:enigmampc/catalyst into exchange-trading

This commit is contained in:
Victor Grau Serrat
2017-09-01 09:28:48 -06:00
4 changed files with 19 additions and 89 deletions
+1 -1
View File
@@ -33,7 +33,7 @@ def initialize(context):
context.TARGET_POSITIONS = 5000
context.PROFIT_TARGET = 0.1
context.SLIPPAGE_ALLOWED = 0.02
context.SLIPPAGE_ALLOWED = 0.05
context.retry_check_open_orders = 10
context.retry_update_portfolio = 10
+1 -1
View File
@@ -69,7 +69,7 @@ class ExchangeTradingAlgorithm(TradingAlgorithm):
self.stats_minutes = 5
super(self.__class__, self).__init__(*args, **kwargs)
self._create_minute_writer()
# self._create_minute_writer()
signal.signal(signal.SIGINT, self.signal_handler)
+12 -7
View File
@@ -25,6 +25,9 @@ class Bittrex(Exchange):
self.base_currency = base_currency
self._portfolio = portfolio
self.minute_writer=None
self.minute_reader=None
self.assets = dict()
self.load_assets()
@@ -85,8 +88,9 @@ class Bittrex(Exchange):
return std_balances
def create_order(self, asset, amount, is_buy, style):
log.info('creating order')
log.info('creating {} order'.format('buy' if is_buy else 'sell'))
exchange_symbol = self.get_symbol(asset)
if isinstance(style, LimitOrder) or isinstance(style, StopLimitOrder):
if isinstance(style, StopLimitOrder):
log.warn('{} will ignore the stop price'.format(self.name))
@@ -94,9 +98,11 @@ class Bittrex(Exchange):
price = style.get_limit_price(is_buy)
try:
if is_buy:
order_status = self.api.buylimit(exchange_symbol, amount, price)
order_status = self.api.buylimit(exchange_symbol, amount,
price)
else:
order_status = self.api.selllimit(exchange_symbol, amount, price)
order_status = self.api.selllimit(exchange_symbol,
abs(amount), price)
except Exception as e:
raise ExchangeRequestError(error=e)
@@ -161,7 +167,7 @@ class Bittrex(Exchange):
return order, executed_price
def get_order(self, order_id):
log.info('retrieving order')
log.info('retrieving order {}'.format(order_id))
try:
order_status = self.api.getorder(order_id)
except Exception as e:
@@ -170,8 +176,7 @@ class Bittrex(Exchange):
if order_status is None:
raise OrderNotFound(order_id=order_id, exchange=self.name)
order, executed_price = self._create_order(order_status)
return order
return self._create_order(order_status)
def cancel_order(self, order_param):
order_id = order_param.id \
@@ -255,7 +260,7 @@ class Bittrex(Exchange):
ordered_candles = list(reversed(candles))
if bar_count is None:
ohlc_map[asset] = ohlc_from_candle(ordered_candles[-1])
ohlc_map[asset] = ohlc_from_candle(ordered_candles[0])
else:
ohlc_bars = []
for candle in ordered_candles[:bar_count]: