plot-profit: Make "auto-open" HTML result optional
Adding an "--auto-open" argument. This improves tool processing of the results, while still allowing to open the HTML file for easy use.
This commit is contained in:
parent
3dab58e6db
commit
812eb229df
@ -275,6 +275,7 @@ optional arguments:
|
|||||||
(backtest file)) Default: file
|
(backtest file)) Default: file
|
||||||
-i TIMEFRAME, --timeframe TIMEFRAME, --ticker-interval TIMEFRAME
|
-i TIMEFRAME, --timeframe TIMEFRAME, --ticker-interval TIMEFRAME
|
||||||
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
|
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
|
||||||
|
--auto-open Automatically open generated plot.
|
||||||
|
|
||||||
Common arguments:
|
Common arguments:
|
||||||
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
|
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
|
||||||
|
@ -69,7 +69,7 @@ ARGS_PLOT_DATAFRAME = ["pairs", "indicators1", "indicators2", "plot_limit",
|
|||||||
"timerange", "timeframe", "no_trades"]
|
"timerange", "timeframe", "no_trades"]
|
||||||
|
|
||||||
ARGS_PLOT_PROFIT = ["pairs", "timerange", "export", "exportfilename", "db_url",
|
ARGS_PLOT_PROFIT = ["pairs", "timerange", "export", "exportfilename", "db_url",
|
||||||
"trade_source", "timeframe"]
|
"trade_source", "timeframe", "plot_auto_open"]
|
||||||
|
|
||||||
ARGS_INSTALL_UI = ["erase_ui_only"]
|
ARGS_INSTALL_UI = ["erase_ui_only"]
|
||||||
|
|
||||||
|
@ -433,6 +433,11 @@ AVAILABLE_CLI_OPTIONS = {
|
|||||||
metavar='INT',
|
metavar='INT',
|
||||||
default=750,
|
default=750,
|
||||||
),
|
),
|
||||||
|
"plot_auto_open": Arg(
|
||||||
|
'--auto-open',
|
||||||
|
help='Automatically open generated plot.',
|
||||||
|
action='store_true',
|
||||||
|
),
|
||||||
"no_trades": Arg(
|
"no_trades": Arg(
|
||||||
'--no-trades',
|
'--no-trades',
|
||||||
help='Skip using trades from backtesting file and DB.',
|
help='Skip using trades from backtesting file and DB.',
|
||||||
|
@ -375,6 +375,9 @@ class Configuration:
|
|||||||
self._args_to_config(config, argname='plot_limit',
|
self._args_to_config(config, argname='plot_limit',
|
||||||
logstring='Limiting plot to: {}')
|
logstring='Limiting plot to: {}')
|
||||||
|
|
||||||
|
self._args_to_config(config, argname='plot_auto_open',
|
||||||
|
logstring='Parameter --auto-open detected.')
|
||||||
|
|
||||||
self._args_to_config(config, argname='trade_source',
|
self._args_to_config(config, argname='trade_source',
|
||||||
logstring='Using trades from: {}')
|
logstring='Using trades from: {}')
|
||||||
|
|
||||||
|
@ -602,4 +602,5 @@ def plot_profit(config: Dict[str, Any]) -> None:
|
|||||||
trades, config.get('timeframe', '5m'),
|
trades, config.get('timeframe', '5m'),
|
||||||
config.get('stake_currency', ''))
|
config.get('stake_currency', ''))
|
||||||
store_plot_file(fig, filename='freqtrade-profit-plot.html',
|
store_plot_file(fig, filename='freqtrade-profit-plot.html',
|
||||||
directory=config['user_data_dir'] / 'plot', auto_open=True)
|
directory=config['user_data_dir'] / 'plot',
|
||||||
|
auto_open=config.get('plot_auto_open', False))
|
||||||
|
@ -186,18 +186,22 @@ def test_plot_dataframe_options() -> None:
|
|||||||
assert pargs['pairs'] == ['UNITTEST/BTC']
|
assert pargs['pairs'] == ['UNITTEST/BTC']
|
||||||
|
|
||||||
|
|
||||||
def test_plot_profit_options() -> None:
|
@pytest.mark.parametrize('auto_open_arg', [True, False])
|
||||||
|
def test_plot_profit_options(auto_open_arg: bool) -> None:
|
||||||
args = [
|
args = [
|
||||||
'plot-profit',
|
'plot-profit',
|
||||||
'-p', 'UNITTEST/BTC',
|
'-p', 'UNITTEST/BTC',
|
||||||
'--trade-source', 'DB',
|
'--trade-source', 'DB',
|
||||||
'--db-url', 'sqlite:///whatever.sqlite',
|
'--db-url', 'sqlite:///whatever.sqlite',
|
||||||
]
|
]
|
||||||
|
if auto_open_arg:
|
||||||
|
args.append('--auto-open')
|
||||||
pargs = Arguments(args).get_parsed_arg()
|
pargs = Arguments(args).get_parsed_arg()
|
||||||
|
|
||||||
assert pargs['trade_source'] == 'DB'
|
assert pargs['trade_source'] == 'DB'
|
||||||
assert pargs['pairs'] == ['UNITTEST/BTC']
|
assert pargs['pairs'] == ['UNITTEST/BTC']
|
||||||
assert pargs['db_url'] == 'sqlite:///whatever.sqlite'
|
assert pargs['db_url'] == 'sqlite:///whatever.sqlite'
|
||||||
|
assert pargs['plot_auto_open'] == auto_open_arg
|
||||||
|
|
||||||
|
|
||||||
def test_config_notallowed(mocker) -> None:
|
def test_config_notallowed(mocker) -> None:
|
||||||
|
@ -460,7 +460,7 @@ def test_plot_profit(default_conf, mocker, testdatadir):
|
|||||||
assert store_mock.call_count == 1
|
assert store_mock.call_count == 1
|
||||||
|
|
||||||
assert profit_mock.call_args_list[0][0][0] == default_conf['pairs']
|
assert profit_mock.call_args_list[0][0][0] == default_conf['pairs']
|
||||||
assert store_mock.call_args_list[0][1]['auto_open'] is True
|
assert store_mock.call_args_list[0][1]['auto_open'] is False
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("ind1,ind2,plot_conf,exp", [
|
@pytest.mark.parametrize("ind1,ind2,plot_conf,exp", [
|
||||||
|
Loading…
Reference in New Issue
Block a user