Merge pull request #2056 from freqtrade/deprecate_live_bt
Deprecate live bt
This commit is contained in:
commit
20b51da180
@ -4,31 +4,16 @@ This page contains description of the command line arguments, configuration para
|
|||||||
and the bot features that were declared as DEPRECATED by the bot development team
|
and the bot features that were declared as DEPRECATED by the bot development team
|
||||||
and are no longer supported. Please avoid their usage in your configuration.
|
and are no longer supported. Please avoid their usage in your configuration.
|
||||||
|
|
||||||
|
### the `--live` command line option
|
||||||
|
|
||||||
|
`--live` in the context of backtesting allows to download the latest tick data for backtesting.
|
||||||
|
Since this only downloads one set of data (by default 500 candles) - this is not really suitable for extendet backtesting, and has therefore been deprecated.
|
||||||
|
|
||||||
|
This command was deprecated in `2019.6-dev` and will be removed after the next release.
|
||||||
|
|
||||||
|
## Removed features
|
||||||
|
|
||||||
### The **--dynamic-whitelist** command line option
|
### The **--dynamic-whitelist** command line option
|
||||||
|
|
||||||
This command line option was deprecated in 2018 and removed freqtrade 2019.6-dev (develop branch)
|
This command line option was deprecated in 2018 and removed freqtrade 2019.6-dev (develop branch)
|
||||||
and in freqtrade 2019.7 (master branch).
|
and in freqtrade 2019.7 (master branch).
|
||||||
|
|
||||||
Per default `--dynamic-whitelist` will retrieve the 20 currencies based
|
|
||||||
on BaseVolume. This value can be changed when you run the script.
|
|
||||||
|
|
||||||
**By Default**
|
|
||||||
Get the 20 currencies based on BaseVolume.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
freqtrade --dynamic-whitelist
|
|
||||||
```
|
|
||||||
|
|
||||||
**Customize the number of currencies to retrieve**
|
|
||||||
Get the 30 currencies based on BaseVolume.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
freqtrade --dynamic-whitelist 30
|
|
||||||
```
|
|
||||||
|
|
||||||
**Exception**
|
|
||||||
`--dynamic-whitelist` must be greater than 0. If you enter 0 or a
|
|
||||||
negative value (e.g -2), `--dynamic-whitelist` will use the default
|
|
||||||
value (20).
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ This module contains the configuration class
|
|||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
import sys
|
import sys
|
||||||
|
import warnings
|
||||||
from argparse import Namespace
|
from argparse import Namespace
|
||||||
from typing import Any, Callable, Dict, Optional
|
from typing import Any, Callable, Dict, Optional
|
||||||
|
|
||||||
@ -15,7 +16,6 @@ from freqtrade.loggers import setup_logging
|
|||||||
from freqtrade.misc import deep_merge_dicts
|
from freqtrade.misc import deep_merge_dicts
|
||||||
from freqtrade.state import RunMode
|
from freqtrade.state import RunMode
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@ -187,7 +187,8 @@ class Configuration(object):
|
|||||||
'Using ticker_interval: {} ...')
|
'Using ticker_interval: {} ...')
|
||||||
|
|
||||||
self._args_to_config(config, argname='live',
|
self._args_to_config(config, argname='live',
|
||||||
logstring='Parameter -l/--live detected ...')
|
logstring='Parameter -l/--live detected ...',
|
||||||
|
deprecated_msg='--live will be removed soon.')
|
||||||
|
|
||||||
self._args_to_config(config, argname='position_stacking',
|
self._args_to_config(config, argname='position_stacking',
|
||||||
logstring='Parameter --enable-position-stacking detected ...')
|
logstring='Parameter --enable-position-stacking detected ...')
|
||||||
@ -323,7 +324,8 @@ class Configuration(object):
|
|||||||
'to be greater than trailing_stop_positive_offset in your config.')
|
'to be greater than trailing_stop_positive_offset in your config.')
|
||||||
|
|
||||||
def _args_to_config(self, config: Dict[str, Any], argname: str,
|
def _args_to_config(self, config: Dict[str, Any], argname: str,
|
||||||
logstring: str, logfun: Optional[Callable] = None) -> None:
|
logstring: str, logfun: Optional[Callable] = None,
|
||||||
|
deprecated_msg: Optional[str] = None) -> None:
|
||||||
"""
|
"""
|
||||||
:param config: Configuration dictionary
|
:param config: Configuration dictionary
|
||||||
:param argname: Argumentname in self.args - will be copied to config dict.
|
:param argname: Argumentname in self.args - will be copied to config dict.
|
||||||
@ -340,3 +342,5 @@ class Configuration(object):
|
|||||||
logger.info(logstring.format(logfun(config[argname])))
|
logger.info(logstring.format(logfun(config[argname])))
|
||||||
else:
|
else:
|
||||||
logger.info(logstring.format(config[argname]))
|
logger.info(logstring.format(config[argname]))
|
||||||
|
if deprecated_msg:
|
||||||
|
warnings.warn(f"DEPRECATED: {deprecated_msg}", DeprecationWarning)
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
# pragma pylint: disable=missing-docstring, protected-access, invalid-name
|
# pragma pylint: disable=missing-docstring, protected-access, invalid-name
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
|
import warnings
|
||||||
from argparse import Namespace
|
from argparse import Namespace
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from unittest.mock import MagicMock
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from unittest.mock import MagicMock
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from jsonschema import Draft4Validator, ValidationError, validate
|
from jsonschema import Draft4Validator, ValidationError, validate
|
||||||
@ -62,6 +63,32 @@ def test_load_config_file(default_conf, mocker, caplog) -> None:
|
|||||||
assert validated_conf.items() >= default_conf.items()
|
assert validated_conf.items() >= default_conf.items()
|
||||||
|
|
||||||
|
|
||||||
|
def test__args_to_config(caplog):
|
||||||
|
|
||||||
|
arg_list = ['--strategy-path', 'TestTest']
|
||||||
|
args = Arguments(arg_list, '').get_parsed_arg()
|
||||||
|
configuration = Configuration(args)
|
||||||
|
config = {}
|
||||||
|
with warnings.catch_warnings(record=True) as w:
|
||||||
|
# No warnings ...
|
||||||
|
configuration._args_to_config(config, argname="strategy_path", logstring="DeadBeef")
|
||||||
|
assert len(w) == 0
|
||||||
|
assert log_has("DeadBeef", caplog.record_tuples)
|
||||||
|
assert config['strategy_path'] == "TestTest"
|
||||||
|
|
||||||
|
configuration = Configuration(args)
|
||||||
|
config = {}
|
||||||
|
with warnings.catch_warnings(record=True) as w:
|
||||||
|
# Deprecation warnings!
|
||||||
|
configuration._args_to_config(config, argname="strategy_path", logstring="DeadBeef",
|
||||||
|
deprecated_msg="Going away soon!")
|
||||||
|
assert len(w) == 1
|
||||||
|
assert issubclass(w[-1].category, DeprecationWarning)
|
||||||
|
assert "DEPRECATED: Going away soon!" in str(w[-1].message)
|
||||||
|
assert log_has("DeadBeef", caplog.record_tuples)
|
||||||
|
assert config['strategy_path'] == "TestTest"
|
||||||
|
|
||||||
|
|
||||||
def test_load_config_max_open_trades_zero(default_conf, mocker, caplog) -> None:
|
def test_load_config_max_open_trades_zero(default_conf, mocker, caplog) -> None:
|
||||||
default_conf['max_open_trades'] = 0
|
default_conf['max_open_trades'] = 0
|
||||||
patched_configuration_load_config_file(mocker, default_conf)
|
patched_configuration_load_config_file(mocker, default_conf)
|
||||||
|
Loading…
Reference in New Issue
Block a user