From 639b6bc4f6156e04907bc70f182490887c56d88e Mon Sep 17 00:00:00 2001 From: Janne Sinivirta Date: Mon, 4 Jun 2018 14:13:19 +0300 Subject: [PATCH] set and create default datadir based on used exchange --- freqtrade/arguments.py | 5 ++--- freqtrade/configuration.py | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/freqtrade/arguments.py b/freqtrade/arguments.py index fd4a88826..9e88d08ca 100644 --- a/freqtrade/arguments.py +++ b/freqtrade/arguments.py @@ -4,7 +4,6 @@ This module contains the argument manager class import argparse import logging -import os import re import arrow from typing import List, Tuple, Optional @@ -72,9 +71,9 @@ class Arguments(object): ) self.parser.add_argument( '-d', '--datadir', - help='path to backtest data (default: %(default)s', + help='path to backtest data', dest='datadir', - default=os.path.join('freqtrade', 'tests', 'testdata'), + default=None, type=str, metavar='PATH', ) diff --git a/freqtrade/configuration.py b/freqtrade/configuration.py index 77b5b4447..54146199d 100644 --- a/freqtrade/configuration.py +++ b/freqtrade/configuration.py @@ -1,7 +1,7 @@ """ This module contains the configuration class """ - +import os import json import logging from argparse import Namespace @@ -113,6 +113,14 @@ class Configuration(object): return config + def _create_default_datadir(self, config: Dict[str, Any]) -> str: + exchange_name = config.get('exchange', {}).get('name').lower() + default_path = os.path.join('user_data', 'data', exchange_name) + if not os.path.isdir(default_path): + os.makedirs(default_path) + logger.info(f'Created data directory: {default_path}') + return default_path + def _load_backtesting_config(self, config: Dict[str, Any]) -> Dict[str, Any]: """ Extract information for sys.argv and load Backtesting configuration @@ -145,7 +153,9 @@ class Configuration(object): # If --datadir is used we add it to the configuration if 'datadir' in self.args and self.args.datadir: config.update({'datadir': self.args.datadir}) - logger.info('Using data folder: %s ...', self.args.datadir) + else: + config.update({'datadir': self._create_default_datadir(config)}) + logger.info('Using data folder: %s ...', config.get('datadir')) # If -r/--refresh-pairs-cached is used we add it to the configuration if 'refresh_pairs' in self.args and self.args.refresh_pairs: