bug fix for book order not triggered, now using ticker bid

This commit is contained in:
Nullart 2018-06-15 12:21:59 +08:00
parent 654c69c015
commit a9739d4557

View File

@ -245,18 +245,22 @@ class FreqtradeBot(object):
:return: float: Price :return: float: Price
""" """
# Why is this ASK not BID?
ticker = exchange.get_ticker(pair) ticker = exchange.get_ticker(pair)
if ticker['ask'] < ticker['last']: if ticker['bid'] < ticker['last']:
return ticker['ask'] ticker_rate = ticker['bid']
balance = self.config['bid_strategy']['ask_last_balance'] else:
ticker_rate = ticker['ask'] + balance * (ticker['last'] - ticker['ask']) balance = self.config['bid_strategy']['ask_last_balance']
ticker_rate = ticker['bid'] + balance * (ticker['last'] - ticker['bid'])
if self.config['bid_strategy']['use_book_order']: if self.config['bid_strategy']['use_book_order']:
logger.info('Getting price from Order Book') logger.info('Getting price from Order Book')
orderBook = exchange.get_order_book(pair,self.config['bid_strategy']['book_order_top']) orderBook = exchange.get_order_book(pair,self.config['bid_strategy']['book_order_top'])
orderBook_rate = orderBook['bids'][self.config['bid_strategy']['book_order_top']][0] orderBook_rate = orderBook['bids'][self.config['bid_strategy']['book_order_top']][0]
# if ticker has lower rate, then use ticker ( usefull if down trending ) # if ticker has lower rate, then use ticker ( usefull if down trending )
logger.info('...book order bid rate %0.8f',orderBook_rate+0.00000001)
if ticker_rate < orderBook_rate: if ticker_rate < orderBook_rate:
logger.info('...using ticker rate instead %0.8f',ticker_rate )
return ticker_rate return ticker_rate
return orderBook_rate+0.00000001 return orderBook_rate+0.00000001
else: else:
@ -437,9 +441,9 @@ with limit `{buy_limit:.8f} ({stake_amount:.6f} \
if not trade.is_open: if not trade.is_open:
raise ValueError(f'attempt to handle closed trade: {trade}') raise ValueError(f'attempt to handle closed trade: {trade}')
logger.debug('Handling %s ...', trade) logger.info('Handling %s ...', trade)
sell_rate = exchange.get_ticker(trade.pair)['bid'] sell_rate = exchange.get_ticker(trade.pair)['bid']
logger.info(' ticker rate %0.8f',sell_rate)
(buy, sell) = (False, False) (buy, sell) = (False, False)
if self.config.get('experimental', {}).get('use_sell_signal'): if self.config.get('experimental', {}).get('use_sell_signal'):
@ -458,6 +462,7 @@ with limit `{buy_limit:.8f} ({stake_amount:.6f} \
orderBook_rate = orderBook['asks'][i-1][0] orderBook_rate = orderBook['asks'][i-1][0]
# if orderbook has higher rate (high profit), # if orderbook has higher rate (high profit),
# use orderbook, otherwise just use sell rate # use orderbook, otherwise just use sell rate
logger.info(' order book sell rate top %s: %0.8f',i,orderBook_rate)
if (sell_rate < orderBook_rate): if (sell_rate < orderBook_rate):
sell_rate = orderBook_rate-0.00000001 sell_rate = orderBook_rate-0.00000001