Add Questionaire workflow

This commit is contained in:
Matthias 2020-01-29 21:21:38 +01:00
parent 49c9258a08
commit e250c56829
3 changed files with 101 additions and 2 deletions

View File

@ -3,11 +3,14 @@ import sys
from pathlib import Path from pathlib import Path
from typing import Any, Dict from typing import Any, Dict
from questionary import Separator, prompt
from freqtrade.configuration import setup_utils_configuration from freqtrade.configuration import setup_utils_configuration
from freqtrade.configuration.directory_operations import (copy_sample_files, from freqtrade.configuration.directory_operations import (copy_sample_files,
create_userdata_dir) create_userdata_dir)
from freqtrade.constants import USERPATH_HYPEROPTS, USERPATH_STRATEGY from freqtrade.constants import USERPATH_HYPEROPTS, USERPATH_STRATEGY
from freqtrade.exceptions import OperationalException from freqtrade.exceptions import OperationalException
from freqtrade.exchange import available_exchanges
from freqtrade.misc import render_template from freqtrade.misc import render_template
from freqtrade.state import RunMode from freqtrade.state import RunMode
@ -117,6 +120,99 @@ def ask_user_config() -> Dict[str, Any]:
Ask user a few questions to build the configuration. Ask user a few questions to build the configuration.
:returns: Dict with keys to put into template :returns: Dict with keys to put into template
""" """
questions = [
{
"type": "confirm",
"name": "dry_run",
"message": "Do you want to enable Dry-run (simulated trades)?",
"default": True,
},
{
"type": "text",
"name": "stake_currency",
"message": "Please insert your stake currency:",
"default": 'BTC',
},
{
"type": "text",
"name": "stake_amount",
"message": "Please insert your stake amount:",
"default": "0.01",
},
{
"type": "text",
"name": "max_open_trades",
"message": "Please insert max_open_trades:",
"default": "3",
},
{
"type": "text",
"name": "ticker_interval",
"message": "Please insert your ticker interval:",
"default": "5m",
},
{
"type": "text",
"name": "fiat_display_currency",
"message": "Please insert your display Currency (for reporting):",
"default": 'USD',
},
{
"type": "select",
"name": "exchange_name",
"message": "Select exchange",
"choices": [
"bittrex",
"binance",
"binanceje",
"binanceus",
"kraken",
Separator(),
"other",
],
},
{
"type": "autocomplete",
"name": "exchange_name",
"message": "Type your exchange name (Must be supported by ccxt)",
"choices": available_exchanges(),
"when": lambda x: x["exchange_name"] == 'other'
},
{
"type": "password",
"name": "exchange_key",
"message": "Insert Exchange Key",
"when": lambda x: not x['dry_run']
},
{
"type": "password",
"name": "exchange_secret",
"message": "Insert Exchange Secret",
"when": lambda x: not x['dry_run']
},
{
"type": "confirm",
"name": "telegram",
"message": "Do you want to enable Telegram?",
"default": False,
},
{
"type": "password",
"name": "telegram_token",
"message": "Insert Telegram token",
"when": lambda x: x['telegram']
},
{
"type": "text",
"name": "telegram_chat_id",
"message": "Insert Telegram chat id",
"when": lambda x: x['telegram']
},
]
answers = prompt(questions)
print(answers)
sample_selections = { sample_selections = {
'max_open_trades': 3, 'max_open_trades': 3,
'stake_currency': 'USDT', 'stake_currency': 'USDT',
@ -167,5 +263,3 @@ def start_new_config(args: Dict[str, Any]) -> None:
selections = ask_user_config() selections = ask_user_config()
config_path = Path(args['config'][0]) config_path = Path(args['config'][0])
deploy_new_config(config_path, selections) deploy_new_config(config_path, selections)

View File

@ -28,3 +28,6 @@ flask==1.1.1
# Support for colorized terminal output # Support for colorized terminal output
colorama==0.4.3 colorama==0.4.3
# Building config files interactively
questionary==1.5.1
prompt-toolkit==3.0.3

View File

@ -79,6 +79,8 @@ setup(name='freqtrade',
'sdnotify', 'sdnotify',
'colorama', 'colorama',
'jinja2', 'jinja2',
'questionary',
'prompt-toolkit',
# from requirements.txt # from requirements.txt
'numpy', 'numpy',
'pandas', 'pandas',