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.converter import order_book_to_dataframe | ||||||
| from freqtrade.data.dataprovider import DataProvider | from freqtrade.data.dataprovider import DataProvider | ||||||
| from freqtrade.edge import Edge | 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.persistence import Trade | ||||||
| from freqtrade.rpc import RPCManager, RPCMessageType | from freqtrade.rpc import RPCManager, RPCMessageType | ||||||
| from freqtrade.resolvers import ExchangeResolver, StrategyResolver, PairListResolver | from freqtrade.resolvers import ExchangeResolver, StrategyResolver, PairListResolver | ||||||
| @@ -284,6 +284,9 @@ class FreqtradeBot(object): | |||||||
|  |  | ||||||
|         # running get_signal on historical data fetched |         # running get_signal on historical data fetched | ||||||
|         for _pair in whitelist: |         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( |             (buy, sell) = self.strategy.get_signal( | ||||||
|                 _pair, interval, self.dataprovider.ohlcv(_pair, self.strategy.ticker_interval)) |                 _pair, interval, self.dataprovider.ohlcv(_pair, self.strategy.ticker_interval)) | ||||||
|  |  | ||||||
| @@ -885,6 +888,10 @@ class FreqtradeBot(object): | |||||||
|         trade.close_rate_requested = limit |         trade.close_rate_requested = limit | ||||||
|         trade.sell_reason = sell_reason.value |         trade.sell_reason = sell_reason.value | ||||||
|         Trade.session.flush() |         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) |         self._notify_sell(trade) | ||||||
|  |  | ||||||
|     def _notify_sell(self, trade: Trade): |     def _notify_sell(self, trade: Trade): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user