Add trade subparser (and make subparser a requirement)

This commit is contained in:
Matthias 2019-09-14 11:16:14 +02:00
parent 2a535b72ff
commit cb37f43277
2 changed files with 23 additions and 6 deletions

View File

@ -99,12 +99,19 @@ class Arguments:
# Build main command # Build main command
self.parser = argparse.ArgumentParser(description='Free, open source crypto trading bot', self.parser = argparse.ArgumentParser(description='Free, open source crypto trading bot',
parents=[_common_parser]) parents=[_common_parser])
self._build_args(optionlist=ARGS_MAIN, parser=self.parser)
from freqtrade.optimize import start_backtesting, start_hyperopt, start_edge from freqtrade.optimize import start_backtesting, start_hyperopt, start_edge
from freqtrade.utils import start_create_userdir, start_download_data, start_list_exchanges from freqtrade.utils import (start_create_userdir, start_download_data,
start_list_exchanges, start_trading)
from freqtrade.plot.plot_utils import start_plot_dataframe, start_plot_profit
subparsers = self.parser.add_subparsers(dest='subparser') subparsers = self.parser.add_subparsers(dest='subparser', required=True)
# Add trade subcommand
trade_cmd = subparsers.add_parser('trade', help='Trade module.',
parents=[_common_parser])
trade_cmd.set_defaults(func=start_trading)
self._build_args(optionlist=ARGS_MAIN, parser=trade_cmd)
# Add backtesting subcommand # Add backtesting subcommand
backtesting_cmd = subparsers.add_parser('backtesting', help='Backtesting module.', backtesting_cmd = subparsers.add_parser('backtesting', help='Backtesting module.',
@ -149,7 +156,6 @@ class Arguments:
self._build_args(optionlist=ARGS_DOWNLOAD_DATA, parser=download_data_cmd) self._build_args(optionlist=ARGS_DOWNLOAD_DATA, parser=download_data_cmd)
# Add Plotting subcommand # Add Plotting subcommand
from freqtrade.plot.plot_utils import start_plot_dataframe, start_plot_profit
plot_dataframe_cmd = subparsers.add_parser('plot-dataframe', plot_dataframe_cmd = subparsers.add_parser('plot-dataframe',
help='Plot candles with indicators.', help='Plot candles with indicators.',
parents=[_common_parser], parents=[_common_parser],

View File

@ -33,6 +33,17 @@ def setup_utils_configuration(args: Dict[str, Any], method: RunMode) -> Dict[str
return config return config
def start_trading(args: Dict[str, Any]) -> int:
"""
Main entry point for trading mode
"""
from freqtrade.worker import Worker
# Load and run worker
worker = Worker(args)
worker.run()
return 0
def start_list_exchanges(args: Dict[str, Any]) -> None: def start_list_exchanges(args: Dict[str, Any]) -> None:
""" """
Print available exchanges Print available exchanges
@ -47,7 +58,7 @@ def start_list_exchanges(args: Dict[str, Any]) -> None:
f"{', '.join(available_exchanges())}") f"{', '.join(available_exchanges())}")
def start_create_userdir(args: Dict[str, Any]) -> None: def start_create_userdir(args: Dict[str, Any]) -> int:
""" """
Create "user_data" directory to contain user data strategies, hyperopts, ...) Create "user_data" directory to contain user data strategies, hyperopts, ...)
:param args: Cli args from Arguments() :param args: Cli args from Arguments()
@ -57,7 +68,7 @@ def start_create_userdir(args: Dict[str, Any]) -> None:
create_userdata_dir(args["user_data_dir"], create_dir=True) create_userdata_dir(args["user_data_dir"], create_dir=True)
else: else:
logger.warning("`create-userdir` requires --userdir to be set.") logger.warning("`create-userdir` requires --userdir to be set.")
sys.exit(1) return 1
def start_download_data(args: Dict[str, Any]) -> None: def start_download_data(args: Dict[str, Any]) -> None: