Fix backtesting ticker interval download

This commit is contained in:
Gerald Lonlas 2018-01-29 22:28:54 -08:00
parent 5f86c389b0
commit 524290d678
3 changed files with 18 additions and 13 deletions

View File

@ -218,7 +218,6 @@ def backtesting_options(parser: argparse.ArgumentParser) -> None:
'-i', '--ticker-interval', '-i', '--ticker-interval',
help='specify ticker interval in minutes (1, 5, 30, 60, 1440)', help='specify ticker interval in minutes (1, 5, 30, 60, 1440)',
dest='ticker_interval', dest='ticker_interval',
default=5,
type=int, type=int,
metavar='INT', metavar='INT',
) )
@ -269,9 +268,8 @@ def hyperopt_options(parser: argparse.ArgumentParser) -> None:
) )
parser.add_argument( parser.add_argument(
'-i', '--ticker-interval', '-i', '--ticker-interval',
help='specify ticker interval in minutes (default: 5)', help='specify ticker interval in minutes (1, 5, 30, 60, 1440)',
dest='ticker_interval', dest='ticker_interval',
default=5,
type=int, type=int,
metavar='INT', metavar='INT',
) )

View File

@ -169,22 +169,34 @@ def start(args):
logger.info('Using config: %s ...', args.config) logger.info('Using config: %s ...', args.config)
config = misc.load_config(args.config) config = misc.load_config(args.config)
ticker_interval = config.get('ticker_interval', args.ticker_interval)
logger.info('Using ticker_interval: %s ...', ticker_interval) # If -i/--ticker-interval is use we override the configuration parameter
# (that will override the strategy configuration)
if args.ticker_interval:
config.update({'ticker_interval': args.ticker_interval})
# init the strategy to use
config.update({'strategy': args.strategy})
strategy = Strategy()
strategy.init(config)
logger.info('Using ticker_interval: %d ...', strategy.ticker_interval)
data = {} data = {}
pairs = config['exchange']['pair_whitelist'] pairs = config['exchange']['pair_whitelist']
if args.live: if args.live:
logger.info('Downloading data for all pairs in whitelist ...') logger.info('Downloading data for all pairs in whitelist ...')
for pair in pairs: for pair in pairs:
data[pair] = exchange.get_ticker_history(pair, ticker_interval) data[pair] = exchange.get_ticker_history(pair, strategy.ticker_interval)
else: else:
logger.info('Using local backtesting data (using whitelist in given config) ...') logger.info('Using local backtesting data (using whitelist in given config) ...')
logger.info('Using stake_currency: %s ...', config['stake_currency']) logger.info('Using stake_currency: %s ...', config['stake_currency'])
logger.info('Using stake_amount: %s ...', config['stake_amount']) logger.info('Using stake_amount: %s ...', config['stake_amount'])
timerange = misc.parse_timerange(args.timerange) timerange = misc.parse_timerange(args.timerange)
data = optimize.load_data(args.datadir, pairs=pairs, ticker_interval=args.ticker_interval, data = optimize.load_data(args.datadir,
pairs=pairs,
ticker_interval=strategy.ticker_interval,
refresh_pairs=args.refresh_pairs, refresh_pairs=args.refresh_pairs,
timerange=timerange) timerange=timerange)
max_open_trades = 0 max_open_trades = 0
@ -192,11 +204,6 @@ def start(args):
logger.info('Using max_open_trades: %s ...', config['max_open_trades']) logger.info('Using max_open_trades: %s ...', config['max_open_trades'])
max_open_trades = config['max_open_trades'] max_open_trades = config['max_open_trades']
# init the strategy to use
config.update({'strategy': args.strategy})
strategy = Strategy()
strategy.init(config)
# Monkey patch config # Monkey patch config
from freqtrade import main from freqtrade import main
main._CONF = config main._CONF = config

View File

@ -32,7 +32,7 @@ def test_parse_args_backtesting(mocker):
assert call_args.loglevel == 20 assert call_args.loglevel == 20
assert call_args.subparser == 'backtesting' assert call_args.subparser == 'backtesting'
assert call_args.func is not None assert call_args.func is not None
assert call_args.ticker_interval == 5 assert call_args.ticker_interval == None
def test_main_start_hyperopt(mocker): def test_main_start_hyperopt(mocker):