Rename stoploss_limit to stoploss
This commit is contained in:
		| @@ -32,8 +32,7 @@ class Binance(Exchange): | |||||||
|  |  | ||||||
|         return super().get_order_book(pair, limit) |         return super().get_order_book(pair, limit) | ||||||
|  |  | ||||||
|     def stoploss_limit(self, pair: str, amount: float, stop_price: float, |     def stoploss(self, pair: str, amount: float, stop_price: float, order_types: Dict) -> Dict: | ||||||
|                        order_types: Dict) -> Dict: |  | ||||||
|         """ |         """ | ||||||
|         creates a stoploss limit order. |         creates a stoploss limit order. | ||||||
|         this stoploss-limit is binance-specific. |         this stoploss-limit is binance-specific. | ||||||
|   | |||||||
| @@ -519,10 +519,10 @@ class Exchange: | |||||||
|  |  | ||||||
|         return self.create_order(pair, ordertype, 'sell', amount, rate, params) |         return self.create_order(pair, ordertype, 'sell', amount, rate, params) | ||||||
|  |  | ||||||
|     def stoploss_limit(self, pair: str, amount: float, stop_price: float, |     def stoploss(self, pair: str, amount: float, stop_price: float, order_types: Dict) -> Dict: | ||||||
|                        order_types: Dict) -> Dict: |  | ||||||
|         """ |         """ | ||||||
|         creates a stoploss limit order. |         creates a stoploss order. | ||||||
|  |         The precise ordertype is determined by the order_types dict or exchange default. | ||||||
|         Since ccxt does not unify stoploss-limit orders yet, this needs to be implemented in each |         Since ccxt does not unify stoploss-limit orders yet, this needs to be implemented in each | ||||||
|         exchange's subclass. |         exchange's subclass. | ||||||
|         The exception below should never raise, since we disallow |         The exception below should never raise, since we disallow | ||||||
|   | |||||||
| @@ -637,7 +637,7 @@ class FreqtradeBot: | |||||||
|         :return: True if the order succeeded, and False in case of problems. |         :return: True if the order succeeded, and False in case of problems. | ||||||
|         """ |         """ | ||||||
|         try: |         try: | ||||||
|             stoploss_order = self.exchange.stoploss_limit(pair=trade.pair, amount=trade.amount, |             stoploss_order = self.exchange.stoploss(pair=trade.pair, amount=trade.amount, | ||||||
|                                                     stop_price=stop_price, |                                                     stop_price=stop_price, | ||||||
|                                                     order_types=self.strategy.order_types) |                                                     order_types=self.strategy.order_types) | ||||||
|             trade.stoploss_order_id = str(stoploss_order['id']) |             trade.stoploss_order_id = str(stoploss_order['id']) | ||||||
|   | |||||||
| @@ -28,12 +28,12 @@ def test_stoploss_limit_order(default_conf, mocker): | |||||||
|     exchange = get_patched_exchange(mocker, default_conf, api_mock, 'binance') |     exchange = get_patched_exchange(mocker, default_conf, api_mock, 'binance') | ||||||
|  |  | ||||||
|     with pytest.raises(OperationalException): |     with pytest.raises(OperationalException): | ||||||
|         order = exchange.stoploss_limit(pair='ETH/BTC', amount=1, stop_price=190, |         order = exchange.stoploss(pair='ETH/BTC', amount=1, stop_price=190, | ||||||
|                                   order_types={'stoploss_on_exchange_limit_ratio': 1.05}) |                                   order_types={'stoploss_on_exchange_limit_ratio': 1.05}) | ||||||
|  |  | ||||||
|     api_mock.create_order.reset_mock() |     api_mock.create_order.reset_mock() | ||||||
|  |  | ||||||
|     order = exchange.stoploss_limit(pair='ETH/BTC', amount=1, stop_price=220, order_types={}) |     order = exchange.stoploss(pair='ETH/BTC', amount=1, stop_price=220, order_types={}) | ||||||
|  |  | ||||||
|     assert 'id' in order |     assert 'id' in order | ||||||
|     assert 'info' in order |     assert 'info' in order | ||||||
| @@ -48,23 +48,23 @@ def test_stoploss_limit_order(default_conf, mocker): | |||||||
|     with pytest.raises(DependencyException): |     with pytest.raises(DependencyException): | ||||||
|         api_mock.create_order = MagicMock(side_effect=ccxt.InsufficientFunds("0 balance")) |         api_mock.create_order = MagicMock(side_effect=ccxt.InsufficientFunds("0 balance")) | ||||||
|         exchange = get_patched_exchange(mocker, default_conf, api_mock, 'binance') |         exchange = get_patched_exchange(mocker, default_conf, api_mock, 'binance') | ||||||
|         exchange.stoploss_limit(pair='ETH/BTC', amount=1, stop_price=220, order_types={}) |         exchange.stoploss(pair='ETH/BTC', amount=1, stop_price=220, order_types={}) | ||||||
|  |  | ||||||
|     with pytest.raises(InvalidOrderException): |     with pytest.raises(InvalidOrderException): | ||||||
|         api_mock.create_order = MagicMock( |         api_mock.create_order = MagicMock( | ||||||
|             side_effect=ccxt.InvalidOrder("binance Order would trigger immediately.")) |             side_effect=ccxt.InvalidOrder("binance Order would trigger immediately.")) | ||||||
|         exchange = get_patched_exchange(mocker, default_conf, api_mock, 'binance') |         exchange = get_patched_exchange(mocker, default_conf, api_mock, 'binance') | ||||||
|         exchange.stoploss_limit(pair='ETH/BTC', amount=1, stop_price=220, order_types={}) |         exchange.stoploss(pair='ETH/BTC', amount=1, stop_price=220, order_types={}) | ||||||
|  |  | ||||||
|     with pytest.raises(TemporaryError): |     with pytest.raises(TemporaryError): | ||||||
|         api_mock.create_order = MagicMock(side_effect=ccxt.NetworkError("No connection")) |         api_mock.create_order = MagicMock(side_effect=ccxt.NetworkError("No connection")) | ||||||
|         exchange = get_patched_exchange(mocker, default_conf, api_mock, 'binance') |         exchange = get_patched_exchange(mocker, default_conf, api_mock, 'binance') | ||||||
|         exchange.stoploss_limit(pair='ETH/BTC', amount=1, stop_price=220, order_types={}) |         exchange.stoploss(pair='ETH/BTC', amount=1, stop_price=220, order_types={}) | ||||||
|  |  | ||||||
|     with pytest.raises(OperationalException, match=r".*DeadBeef.*"): |     with pytest.raises(OperationalException, match=r".*DeadBeef.*"): | ||||||
|         api_mock.create_order = MagicMock(side_effect=ccxt.BaseError("DeadBeef")) |         api_mock.create_order = MagicMock(side_effect=ccxt.BaseError("DeadBeef")) | ||||||
|         exchange = get_patched_exchange(mocker, default_conf, api_mock, 'binance') |         exchange = get_patched_exchange(mocker, default_conf, api_mock, 'binance') | ||||||
|         exchange.stoploss_limit(pair='ETH/BTC', amount=1, stop_price=220, order_types={}) |         exchange.stoploss(pair='ETH/BTC', amount=1, stop_price=220, order_types={}) | ||||||
|  |  | ||||||
|  |  | ||||||
| def test_stoploss_limit_order_dry_run(default_conf, mocker): | def test_stoploss_limit_order_dry_run(default_conf, mocker): | ||||||
| @@ -77,12 +77,12 @@ def test_stoploss_limit_order_dry_run(default_conf, mocker): | |||||||
|     exchange = get_patched_exchange(mocker, default_conf, api_mock, 'binance') |     exchange = get_patched_exchange(mocker, default_conf, api_mock, 'binance') | ||||||
|  |  | ||||||
|     with pytest.raises(OperationalException): |     with pytest.raises(OperationalException): | ||||||
|         order = exchange.stoploss_limit(pair='ETH/BTC', amount=1, stop_price=190, |         order = exchange.stoploss(pair='ETH/BTC', amount=1, stop_price=190, | ||||||
|                                   order_types={'stoploss_on_exchange_limit_ratio': 1.05}) |                                   order_types={'stoploss_on_exchange_limit_ratio': 1.05}) | ||||||
|  |  | ||||||
|     api_mock.create_order.reset_mock() |     api_mock.create_order.reset_mock() | ||||||
|  |  | ||||||
|     order = exchange.stoploss_limit(pair='ETH/BTC', amount=1, stop_price=220, order_types={}) |     order = exchange.stoploss(pair='ETH/BTC', amount=1, stop_price=220, order_types={}) | ||||||
|  |  | ||||||
|     assert 'id' in order |     assert 'id' in order | ||||||
|     assert 'info' in order |     assert 'info' in order | ||||||
|   | |||||||
| @@ -1761,7 +1761,7 @@ def test_get_fee(default_conf, mocker, exchange_name): | |||||||
| def test_stoploss_limit_order_unsupported_exchange(default_conf, mocker): | def test_stoploss_limit_order_unsupported_exchange(default_conf, mocker): | ||||||
|     exchange = get_patched_exchange(mocker, default_conf, 'bittrex') |     exchange = get_patched_exchange(mocker, default_conf, 'bittrex') | ||||||
|     with pytest.raises(OperationalException, match=r"stoploss_limit is not implemented .*"): |     with pytest.raises(OperationalException, match=r"stoploss_limit is not implemented .*"): | ||||||
|         exchange.stoploss_limit(pair='ETH/BTC', amount=1, stop_price=220, order_types={}) |         exchange.stoploss(pair='ETH/BTC', amount=1, stop_price=220, order_types={}) | ||||||
|  |  | ||||||
|  |  | ||||||
| def test_merge_ft_has_dict(default_conf, mocker): | def test_merge_ft_has_dict(default_conf, mocker): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user