Merge pull request #3217 from freqtrade/remove_deprecation
Remove deprecated pairlist and binary
This commit is contained in:
commit
fedcf1db52
@ -1,11 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import logging
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
logger.error("DEPRECATED installation detected, please run `pip install -e .` again.")
|
|
||||||
|
|
||||||
sys.exit(2)
|
|
@ -584,7 +584,7 @@ It uses configuration from `exchange.pair_whitelist` and `exchange.pair_blacklis
|
|||||||
|
|
||||||
#### Volume Pair List
|
#### Volume Pair List
|
||||||
|
|
||||||
`VolumePairList` selects `number_assets` top pairs based on `sort_key`, which can be one of `askVolume`, `bidVolume` and `quoteVolume` and defaults to `quoteVolume`.
|
`VolumePairList` selects `number_assets` top pairs based on `sort_key`, which can only be `quoteVolume`.
|
||||||
|
|
||||||
`VolumePairList` considers outputs of previous pairlists unless it's the first configured pairlist, it does not consider `pair_whitelist`, but selects the top assets from all available markets (with matching stake-currency) on the exchange.
|
`VolumePairList` considers outputs of previous pairlists unless it's the first configured pairlist, it does not consider `pair_whitelist`, but selects the top assets from all available markets (with matching stake-currency) on the exchange.
|
||||||
|
|
||||||
@ -592,8 +592,6 @@ It uses configuration from `exchange.pair_whitelist` and `exchange.pair_blacklis
|
|||||||
|
|
||||||
`VolumePairList` is based on the ticker data, as reported by the ccxt library:
|
`VolumePairList` is based on the ticker data, as reported by the ccxt library:
|
||||||
|
|
||||||
* The `bidVolume` is the volume (amount) of current best bid in the orderbook.
|
|
||||||
* The `askVolume` is the volume (amount) of current best ask in the orderbook.
|
|
||||||
* The `quoteVolume` is the amount of quote (stake) currency traded (bought or sold) in last 24 hours.
|
* The `quoteVolume` is the amount of quote (stake) currency traded (bought or sold) in last 24 hours.
|
||||||
|
|
||||||
```json
|
```json
|
||||||
|
@ -24,3 +24,13 @@ and in freqtrade 2019.7 (master branch).
|
|||||||
`--live` in the context of backtesting allowed to download the latest tick data for backtesting.
|
`--live` in the context of backtesting allowed to download the latest tick data for backtesting.
|
||||||
Did only download the latest 500 candles, so was ineffective in getting good backtest data.
|
Did only download the latest 500 candles, so was ineffective in getting good backtest data.
|
||||||
Removed in 2019-7-dev (develop branch) and in freqtrade 2019-8 (master branch)
|
Removed in 2019-7-dev (develop branch) and in freqtrade 2019-8 (master branch)
|
||||||
|
|
||||||
|
### Allow running multiple pairlists in sequence
|
||||||
|
|
||||||
|
The former `"pairlist"` section in the configuration has been removed, and is replaced by `"pairlists"` - being a list to specify a sequence of pairlists.
|
||||||
|
|
||||||
|
The old section of configuration parameters (`"pairlist"`) has been deprecated in 2019.11 and has been removed in 2020.4.
|
||||||
|
|
||||||
|
### deprecation of bidVolume and askVolume from volumepairlist
|
||||||
|
|
||||||
|
Since only quoteVolume can be compared between assets, the other options (bidVolume, askVolume) have been deprecated in 2020.4.
|
||||||
|
@ -58,29 +58,6 @@ def process_temporary_deprecated_settings(config: Dict[str, Any]) -> None:
|
|||||||
process_deprecated_setting(config, 'ask_strategy', 'ignore_roi_if_buy_signal',
|
process_deprecated_setting(config, 'ask_strategy', 'ignore_roi_if_buy_signal',
|
||||||
'experimental', 'ignore_roi_if_buy_signal')
|
'experimental', 'ignore_roi_if_buy_signal')
|
||||||
|
|
||||||
if not config.get('pairlists') and not config.get('pairlists'):
|
|
||||||
config['pairlists'] = [{'method': 'StaticPairList'}]
|
|
||||||
logger.warning(
|
|
||||||
"DEPRECATED: "
|
|
||||||
"Pairlists must be defined explicitly in the future."
|
|
||||||
"Defaulting to StaticPairList for now.")
|
|
||||||
|
|
||||||
if config.get('pairlist', {}).get("method") == 'VolumePairList':
|
|
||||||
logger.warning(
|
|
||||||
"DEPRECATED: "
|
|
||||||
f"Using VolumePairList in pairlist is deprecated and must be moved to pairlists. "
|
|
||||||
"Please refer to the docs on configuration details")
|
|
||||||
pl = {'method': 'VolumePairList'}
|
|
||||||
pl.update(config.get('pairlist', {}).get('config'))
|
|
||||||
config['pairlists'].append(pl)
|
|
||||||
|
|
||||||
if config.get('pairlist', {}).get('config', {}).get('precision_filter'):
|
|
||||||
logger.warning(
|
|
||||||
"DEPRECATED: "
|
|
||||||
f"Using precision_filter setting is deprecated and has been replaced by"
|
|
||||||
"PrecisionFilter. Please refer to the docs on configuration details")
|
|
||||||
config['pairlists'].append({'method': 'PrecisionFilter'})
|
|
||||||
|
|
||||||
if (config.get('edge', {}).get('enabled', False)
|
if (config.get('edge', {}).get('enabled', False)
|
||||||
and 'capital_available_percentage' in config.get('edge', {})):
|
and 'capital_available_percentage' in config.get('edge', {})):
|
||||||
logger.warning(
|
logger.warning(
|
||||||
|
@ -39,6 +39,10 @@ class VolumePairList(IPairList):
|
|||||||
if not self._validate_keys(self._sort_key):
|
if not self._validate_keys(self._sort_key):
|
||||||
raise OperationalException(
|
raise OperationalException(
|
||||||
f'key {self._sort_key} not in {SORT_VALUES}')
|
f'key {self._sort_key} not in {SORT_VALUES}')
|
||||||
|
if self._sort_key != 'quoteVolume':
|
||||||
|
logger.warning(
|
||||||
|
"DEPRECATED: using any key other than quoteVolume for VolumePairList is deprecated."
|
||||||
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def needstickers(self) -> bool:
|
def needstickers(self) -> bool:
|
||||||
|
@ -4,11 +4,11 @@ from unittest.mock import MagicMock, PropertyMock
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from freqtrade.exceptions import OperationalException
|
|
||||||
from freqtrade.constants import AVAILABLE_PAIRLISTS
|
from freqtrade.constants import AVAILABLE_PAIRLISTS
|
||||||
from freqtrade.resolvers import PairListResolver
|
from freqtrade.exceptions import OperationalException
|
||||||
from freqtrade.pairlist.pairlistmanager import PairListManager
|
from freqtrade.pairlist.pairlistmanager import PairListManager
|
||||||
from tests.conftest import get_patched_freqtradebot, log_has_re
|
from freqtrade.resolvers import PairListResolver
|
||||||
|
from tests.conftest import get_patched_freqtradebot, log_has, log_has_re
|
||||||
|
|
||||||
# whitelist, blacklist
|
# whitelist, blacklist
|
||||||
|
|
||||||
@ -228,6 +228,13 @@ def test_VolumePairList_whitelist_gen(mocker, whitelist_conf, shitcoinmarkets, t
|
|||||||
assert (log_has_re(r'^Removed .* from whitelist, because 1 unit is .*%$', caplog) or
|
assert (log_has_re(r'^Removed .* from whitelist, because 1 unit is .*%$', caplog) or
|
||||||
log_has_re(r"^Removed .* from whitelist, because ticker\['last'\] is empty.*",
|
log_has_re(r"^Removed .* from whitelist, because ticker\['last'\] is empty.*",
|
||||||
caplog))
|
caplog))
|
||||||
|
if pairlist['method'] == 'VolumePairList':
|
||||||
|
logmsg = ("DEPRECATED: using any key other than quoteVolume for "
|
||||||
|
"VolumePairList is deprecated.")
|
||||||
|
if pairlist['sort_key'] != 'quoteVolume':
|
||||||
|
assert log_has(logmsg, caplog)
|
||||||
|
else:
|
||||||
|
assert not log_has(logmsg, caplog)
|
||||||
|
|
||||||
|
|
||||||
def test_gen_pair_whitelist_not_supported(mocker, default_conf, tickers) -> None:
|
def test_gen_pair_whitelist_not_supported(mocker, default_conf, tickers) -> None:
|
||||||
|
@ -1041,18 +1041,6 @@ def test_process_temporary_deprecated_settings(mocker, default_conf, setting, ca
|
|||||||
assert default_conf[setting[0]][setting[1]] == setting[5]
|
assert default_conf[setting[0]][setting[1]] == setting[5]
|
||||||
|
|
||||||
|
|
||||||
def test_process_deprecated_setting_pairlists(mocker, default_conf, caplog):
|
|
||||||
patched_configuration_load_config_file(mocker, default_conf)
|
|
||||||
default_conf.update({'pairlist': {
|
|
||||||
'method': 'VolumePairList',
|
|
||||||
'config': {'precision_filter': True}
|
|
||||||
}})
|
|
||||||
|
|
||||||
process_temporary_deprecated_settings(default_conf)
|
|
||||||
assert log_has_re(r'DEPRECATED.*precision_filter.*', caplog)
|
|
||||||
assert log_has_re(r'DEPRECATED.*in pairlist is deprecated and must be moved*', caplog)
|
|
||||||
|
|
||||||
|
|
||||||
def test_process_deprecated_setting_edge(mocker, edge_conf, caplog):
|
def test_process_deprecated_setting_edge(mocker, edge_conf, caplog):
|
||||||
patched_configuration_load_config_file(mocker, edge_conf)
|
patched_configuration_load_config_file(mocker, edge_conf)
|
||||||
edge_conf.update({'edge': {
|
edge_conf.update({'edge': {
|
||||||
|
Loading…
Reference in New Issue
Block a user