Lock pair for the rest of the candle in case of sells
This commit is contained in:
		| @@ -16,7 +16,7 @@ from freqtrade import (DependencyException, OperationalException, InvalidOrderEx | ||||
| from freqtrade.data.converter import order_book_to_dataframe | ||||
| from freqtrade.data.dataprovider import DataProvider | ||||
| from freqtrade.edge import Edge | ||||
| from freqtrade.exchange import timeframe_to_minutes | ||||
| from freqtrade.exchange import timeframe_to_minutes, timeframe_to_next_date | ||||
| from freqtrade.persistence import Trade | ||||
| from freqtrade.rpc import RPCManager, RPCMessageType | ||||
| from freqtrade.resolvers import ExchangeResolver, StrategyResolver, PairListResolver | ||||
| @@ -284,6 +284,9 @@ class FreqtradeBot(object): | ||||
|  | ||||
|         # running get_signal on historical data fetched | ||||
|         for _pair in whitelist: | ||||
|             if self.strategy.is_pair_locked(_pair): | ||||
|                 logger.info(f"Pair {_pair} is currently locked.") | ||||
|                 continue | ||||
|             (buy, sell) = self.strategy.get_signal( | ||||
|                 _pair, interval, self.dataprovider.ohlcv(_pair, self.strategy.ticker_interval)) | ||||
|  | ||||
| @@ -885,6 +888,10 @@ class FreqtradeBot(object): | ||||
|         trade.close_rate_requested = limit | ||||
|         trade.sell_reason = sell_reason.value | ||||
|         Trade.session.flush() | ||||
|  | ||||
|         # Lock pair for one candle to prevent immediate rebuys | ||||
|         self.strategy.lock_pair(trade.pair, timeframe_to_next_date(self.config['ticker_interval'])) | ||||
|  | ||||
|         self._notify_sell(trade) | ||||
|  | ||||
|     def _notify_sell(self, trade: Trade): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user