Merge pull request #2786 from freqtrade/fix/stoploss_on_exchange_dryrun
Fix/stoploss on exchange dryrun
This commit is contained in:
		| @@ -389,9 +389,11 @@ class IStrategy(ABC): | |||||||
|                 trade.adjust_stop_loss(high or current_rate, stop_loss_value) |                 trade.adjust_stop_loss(high or current_rate, stop_loss_value) | ||||||
|  |  | ||||||
|         # evaluate if the stoploss was hit if stoploss is not on exchange |         # evaluate if the stoploss was hit if stoploss is not on exchange | ||||||
|  |         # in Dry-Run, this handles stoploss logic as well, as the logic will not be different to | ||||||
|  |         # regular stoploss handling. | ||||||
|         if ((self.stoploss is not None) and |         if ((self.stoploss is not None) and | ||||||
|             (trade.stop_loss >= current_rate) and |             (trade.stop_loss >= current_rate) and | ||||||
|                 (not self.order_types.get('stoploss_on_exchange'))): |                 (not self.order_types.get('stoploss_on_exchange') or self.config['dry_run'])): | ||||||
|  |  | ||||||
|             sell_type = SellType.STOP_LOSS |             sell_type = SellType.STOP_LOSS | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1318,6 +1318,14 @@ def test_handle_stoploss_on_exchange_trailing(mocker, default_conf, fee, caplog, | |||||||
|                                                 rate=0.00002344 * 0.95 * 0.99, |                                                 rate=0.00002344 * 0.95 * 0.99, | ||||||
|                                                 stop_price=0.00002344 * 0.95) |                                                 stop_price=0.00002344 * 0.95) | ||||||
|  |  | ||||||
|  |     # price fell below stoploss, so dry-run sells trade. | ||||||
|  |     mocker.patch('freqtrade.exchange.Exchange.fetch_ticker', MagicMock(return_value={ | ||||||
|  |         'bid': 0.00002144, | ||||||
|  |         'ask': 0.00002146, | ||||||
|  |         'last': 0.00002144 | ||||||
|  |     })) | ||||||
|  |     assert freqtrade.handle_trade(trade) is True | ||||||
|  |  | ||||||
|  |  | ||||||
| def test_handle_stoploss_on_exchange_trailing_error(mocker, default_conf, fee, caplog, | def test_handle_stoploss_on_exchange_trailing_error(mocker, default_conf, fee, caplog, | ||||||
|                                                     limit_buy_order, limit_sell_order) -> None: |                                                     limit_buy_order, limit_sell_order) -> None: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user