First commit for integrating buy_reasons into FT

This commit is contained in:
froggleston
2022-05-22 23:24:52 +01:00
parent 7f3853bbcd
commit 9488e8992d
5 changed files with 317 additions and 2 deletions

View File

@@ -6,6 +6,7 @@ Contains all start-commands, subcommands and CLI Interface creation.
Note: Be careful with file-scoped imports in these subfiles.
as they are parsed on startup, nothing containing optional modules should be loaded.
"""
from freqtrade.commands.analyze_commands import start_analysis_entries_exits
from freqtrade.commands.arguments import Arguments
from freqtrade.commands.build_config_commands import start_new_config
from freqtrade.commands.data_commands import (start_convert_data, start_convert_trades,

View File

@@ -101,6 +101,9 @@ ARGS_HYPEROPT_SHOW = ["hyperopt_list_best", "hyperopt_list_profitable", "hyperop
"print_json", "hyperoptexportfilename", "hyperopt_show_no_header",
"disableparamexport", "backtest_breakdown"]
ARGS_ANALYZE_ENTRIES_EXITS = ["analysis_groups", "enter_reason_list",
"exit_reason_list", "indicator_list"]
NO_CONF_REQURIED = ["convert-data", "convert-trade-data", "download-data", "list-timeframes",
"list-markets", "list-pairs", "list-strategies", "list-data",
"hyperopt-list", "hyperopt-show", "backtest-filter",
@@ -182,8 +185,9 @@ class Arguments:
self.parser = argparse.ArgumentParser(description='Free, open source crypto trading bot')
self._build_args(optionlist=['version'], parser=self.parser)
from freqtrade.commands import (start_backtesting, start_backtesting_show,
start_convert_data, start_convert_db, start_convert_trades,
from freqtrade.commands import (start_analysis_entries_exits, start_backtesting,
start_backtesting_show, start_convert_data,
start_convert_db, start_convert_trades,
start_create_userdir, start_download_data, start_edge,
start_hyperopt, start_hyperopt_list, start_hyperopt_show,
start_install_ui, start_list_data, start_list_exchanges,
@@ -415,3 +419,9 @@ class Arguments:
parents=[_common_parser])
webserver_cmd.set_defaults(func=start_webserver)
self._build_args(optionlist=ARGS_WEBSERVER, parser=webserver_cmd)
# Add backtesting analysis subcommand
analysis_cmd = subparsers.add_parser('analysis', help='Analysis module.',
parents=[_common_parser, _strategy_parser])
analysis_cmd.set_defaults(func=start_analysis_entries_exits)
self._build_args(optionlist=ARGS_ANALYZE_ENTRIES_EXITS, parser=analysis_cmd)

View File

@@ -614,4 +614,35 @@ AVAILABLE_CLI_OPTIONS = {
"that do not contain any parameters."),
action="store_true",
),
"analysis_groups": Arg(
"--analysis_groups",
help=("grouping output - ",
"0: simple wins/losses by enter tag, ",
"1: by enter_tag, ",
"2: by enter_tag and exit_tag, ",
"3: by pair and enter_tag, ",
"4: by pair, enter_ and exit_tag (this can get quite large)"),
nargs='?',
default="0,1,2",
),
"enter_reason_list": Arg(
"--enter_reason_list",
help=("Comma separated list of entry signals to analyse. Default: all. ",
"e.g. 'entry_tag_a,entry_tag_b'"),
nargs='?',
default='all',
),
"exit_reason_list": Arg(
"--exit_reason_list",
help=("Comma separated list of exit signals to analyse. Default: all. ",
"e.g. 'exit_tag_a,roi,stop_loss,trailing_stop_loss'"),
nargs='?',
default='all',
),
"indicator_list": Arg(
"--indicator_list",
help=("Comma separated list of indicators to analyse. ",
"e.g. 'close,rsi,bb_lowerband,profit_abs'"),
nargs='?',
),
}