diff --git a/freqtrade/configuration/arguments.py b/freqtrade/configuration/arguments.py index 58b5539fe..f240fc04a 100644 --- a/freqtrade/configuration/arguments.py +++ b/freqtrade/configuration/arguments.py @@ -34,7 +34,8 @@ ARGS_LIST_EXCHANGES = ["print_one_column", "list_exchanges_all"] ARGS_LIST_TIMEFRAMES = ["exchange", "print_one_column"] -ARGS_LIST_PAIRS = ["exchange", "print_list", "base_currency", "quote_currency", "active_only"] +ARGS_LIST_PAIRS = ["exchange", "print_list", "list_pairs_print_json", "print_one_column", + "base_currency", "quote_currency", "active_only"] ARGS_CREATE_USERDIR = ["user_data_dir"] diff --git a/freqtrade/configuration/cli_options.py b/freqtrade/configuration/cli_options.py index d3863481a..93bdd9384 100644 --- a/freqtrade/configuration/cli_options.py +++ b/freqtrade/configuration/cli_options.py @@ -262,6 +262,12 @@ AVAILABLE_CLI_OPTIONS = { 'printed in the tabular format.', action='store_true', ), + "list_pairs_print_json": Arg( + '--print-json', + help='Print list of pairs or market symbols in JSON format.', + action='store_true', + default=False, + ), "quote_currency": Arg( '--quote-currency', help='Select quote currency.', diff --git a/freqtrade/utils.py b/freqtrade/utils.py index 72476af45..95825ff4e 100644 --- a/freqtrade/utils.py +++ b/freqtrade/utils.py @@ -4,6 +4,7 @@ from pathlib import Path from typing import Any, Dict, List import arrow +import rapidjson from tabulate import tabulate from freqtrade import OperationalException @@ -156,6 +157,10 @@ def start_list_pairs(args: Dict[str, Any], pairs_only: bool = False) -> None: (" and" if base_currency and quote_currency else "") + (f" with {quote_currency} as quote currency" if quote_currency else "") + (f": {', '.join(sorted(pairs.keys()))}" if len(pairs) else "") + ".") + elif args.get('print_one_column', False): + print('\n'.join(sorted(pairs.keys()))) + elif args.get('list_pairs_print_json', False): + print(rapidjson.dumps(sorted(pairs.keys()), default=str)) else: # print data as a table headers = ['Id', 'Symbol', 'Base', 'Quote', 'Active']