This commit is contained in:
Ramon Bastiaans
2018-02-08 12:39:01 +00:00
committed by GitHub
22 changed files with 1207 additions and 101 deletions

View File

@@ -6,12 +6,12 @@ from typing import Dict, Tuple
import arrow
from pandas import DataFrame, Series
from tabulate import tabulate
from freqtrade import OperationalException
import freqtrade.misc as misc
import freqtrade.optimize as optimize
from freqtrade import exchange
from freqtrade.analyze import populate_buy_trend, populate_sell_trend
from freqtrade.exchange import Bittrex
from freqtrade.main import should_sell
from freqtrade.persistence import Trade
from freqtrade.strategy.strategy import Strategy
@@ -105,16 +105,21 @@ def backtest(args) -> DataFrame:
sell_profit_only: sell if profit only
use_sell_signal: act on sell-signal
stoploss: use stoploss
exchange_name: which exchange to use
:return: DataFrame
"""
processed = args['processed']
max_open_trades = args.get('max_open_trades', 0)
realistic = args.get('realistic', True)
record = args.get('record', None)
exchange_name = args.get('exchange_name', None)
records = []
trades = []
trade_count_lock: dict = {}
exchange._API = Bittrex({'key': '', 'secret': ''})
exchange_class = exchange.Exchanges[exchange_name.upper()].value
exchange._API = exchange_class({'key': '', 'secret': ''})
for pair, pair_data in processed.items():
pair_data['buy'], pair_data['sell'] = 0, 0
ticker = populate_sell_trend(populate_buy_trend(pair_data))
@@ -167,8 +172,6 @@ def start(args):
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
)
exchange._API = Bittrex({'key': '', 'secret': ''})
logger.info('Using config: %s ...', args.config)
config = misc.load_config(args.config)
@@ -184,6 +187,15 @@ def start(args):
logger.info('Using ticker_interval: %d ...', strategy.ticker_interval)
exchange_name = config['exchange']['name']
try:
exchange_class = exchange.Exchanges[exchange_name.upper()].value
except KeyError:
raise OperationalException('Exchange {} is not supported'.format(
exchange_name))
exchange._API = exchange_class({'key': '', 'secret': ''})
data = {}
pairs = config['exchange']['pair_whitelist']
if args.live:
@@ -227,7 +239,8 @@ def start(args):
'sell_profit_only': sell_profit_only,
'use_sell_signal': use_sell_signal,
'stoploss': strategy.stoploss,
'record': args.export
'record': args.export,
'exchange_name': exchange_name
})
logger.info(
'\n==================================== BACKTESTING REPORT ====================================\n%s', # noqa