Adjust tests

This commit is contained in:
hroff-1902 2019-12-14 02:12:44 +03:00
parent 6d07f33b23
commit 1659b6f95a
2 changed files with 38 additions and 47 deletions

View File

@ -315,13 +315,11 @@ def test_backtest_results(default_conf, fee, mocker, caplog, data) -> None:
data_processed = {pair: frame.copy()} data_processed = {pair: frame.copy()}
min_date, max_date = get_timeframe({pair: frame}) min_date, max_date = get_timeframe({pair: frame})
results = backtesting.backtest( results = backtesting.backtest(
{ processed=data_processed,
'stake_amount': default_conf['stake_amount'], stake_amount=default_conf['stake_amount'],
'processed': data_processed, start_date=min_date,
'max_open_trades': 10, end_date=max_date,
'start_date': min_date, max_open_trades=10,
'end_date': max_date,
}
) )
assert len(results) == len(data.trades) assert len(results) == len(data.trades)

View File

@ -103,14 +103,12 @@ def simple_backtest(config, contour, num_results, mocker, testdatadir) -> None:
min_date, max_date = get_timeframe(processed) min_date, max_date = get_timeframe(processed)
assert isinstance(processed, dict) assert isinstance(processed, dict)
results = backtesting.backtest( results = backtesting.backtest(
{ processed=processed,
'stake_amount': config['stake_amount'], stake_amount=config['stake_amount'],
'processed': processed, start_date=min_date,
'max_open_trades': 1, end_date=max_date,
'position_stacking': False, max_open_trades=1,
'start_date': min_date, position_stacking=False,
'end_date': max_date,
}
) )
# results :: <class 'pandas.core.frame.DataFrame'> # results :: <class 'pandas.core.frame.DataFrame'>
assert len(results) == num_results assert len(results) == num_results
@ -132,7 +130,7 @@ def _load_pair_as_ticks(pair, tickfreq):
# FIX: fixturize this? # FIX: fixturize this?
def _make_backtest_conf(mocker, datadir, conf=None, pair='UNITTEST/BTC', record=None): def _make_backtest_conf(mocker, datadir, conf=None, pair='UNITTEST/BTC'):
data = history.load_data(datadir=datadir, timeframe='1m', pairs=[pair]) data = history.load_data(datadir=datadir, timeframe='1m', pairs=[pair])
data = trim_dictlist(data, -201) data = trim_dictlist(data, -201)
patch_exchange(mocker) patch_exchange(mocker)
@ -140,13 +138,12 @@ def _make_backtest_conf(mocker, datadir, conf=None, pair='UNITTEST/BTC', record=
processed = backtesting.strategy.tickerdata_to_dataframe(data) processed = backtesting.strategy.tickerdata_to_dataframe(data)
min_date, max_date = get_timeframe(processed) min_date, max_date = get_timeframe(processed)
return { return {
'stake_amount': conf['stake_amount'],
'processed': processed, 'processed': processed,
'max_open_trades': 10, 'stake_amount': conf['stake_amount'],
'position_stacking': False,
'record': record,
'start_date': min_date, 'start_date': min_date,
'end_date': max_date, 'end_date': max_date,
'max_open_trades': 10,
'position_stacking': False,
} }
@ -527,14 +524,12 @@ def test_backtest(default_conf, fee, mocker, testdatadir) -> None:
data_processed = backtesting.strategy.tickerdata_to_dataframe(data) data_processed = backtesting.strategy.tickerdata_to_dataframe(data)
min_date, max_date = get_timeframe(data_processed) min_date, max_date = get_timeframe(data_processed)
results = backtesting.backtest( results = backtesting.backtest(
{ processed=data_processed,
'stake_amount': default_conf['stake_amount'], stake_amount=default_conf['stake_amount'],
'processed': data_processed, start_date=min_date,
'max_open_trades': 10, end_date=max_date,
'position_stacking': False, max_open_trades=10,
'start_date': min_date, position_stacking=False,
'end_date': max_date,
}
) )
assert not results.empty assert not results.empty
assert len(results) == 2 assert len(results) == 2
@ -583,14 +578,12 @@ def test_backtest_1min_ticker_interval(default_conf, fee, mocker, testdatadir) -
processed = backtesting.strategy.tickerdata_to_dataframe(data) processed = backtesting.strategy.tickerdata_to_dataframe(data)
min_date, max_date = get_timeframe(processed) min_date, max_date = get_timeframe(processed)
results = backtesting.backtest( results = backtesting.backtest(
{ processed=processed,
'stake_amount': default_conf['stake_amount'], stake_amount=default_conf['stake_amount'],
'processed': processed, start_date=min_date,
'max_open_trades': 1, end_date=max_date,
'position_stacking': False, max_open_trades=1,
'start_date': min_date, position_stacking=False,
'end_date': max_date,
}
) )
assert not results.empty assert not results.empty
assert len(results) == 1 assert len(results) == 1
@ -630,7 +623,7 @@ def test_backtest_clash_buy_sell(mocker, default_conf, testdatadir):
backtesting = Backtesting(default_conf) backtesting = Backtesting(default_conf)
backtesting.strategy.advise_buy = fun # Override backtesting.strategy.advise_buy = fun # Override
backtesting.strategy.advise_sell = fun # Override backtesting.strategy.advise_sell = fun # Override
results = backtesting.backtest(backtest_conf) results = backtesting.backtest(**backtest_conf)
assert results.empty assert results.empty
@ -645,7 +638,7 @@ def test_backtest_only_sell(mocker, default_conf, testdatadir):
backtesting = Backtesting(default_conf) backtesting = Backtesting(default_conf)
backtesting.strategy.advise_buy = fun # Override backtesting.strategy.advise_buy = fun # Override
backtesting.strategy.advise_sell = fun # Override backtesting.strategy.advise_sell = fun # Override
results = backtesting.backtest(backtest_conf) results = backtesting.backtest(**backtest_conf)
assert results.empty assert results.empty
@ -658,7 +651,7 @@ def test_backtest_alternate_buy_sell(default_conf, fee, mocker, testdatadir):
backtesting = Backtesting(default_conf) backtesting = Backtesting(default_conf)
backtesting.strategy.advise_buy = _trend_alternate # Override backtesting.strategy.advise_buy = _trend_alternate # Override
backtesting.strategy.advise_sell = _trend_alternate # Override backtesting.strategy.advise_sell = _trend_alternate # Override
results = backtesting.backtest(backtest_conf) results = backtesting.backtest(**backtest_conf)
backtesting._store_backtest_result("test_.json", results) backtesting._store_backtest_result("test_.json", results)
# 200 candles in backtest data # 200 candles in backtest data
# won't buy on first (shifted by 1) # won't buy on first (shifted by 1)
@ -703,15 +696,15 @@ def test_backtest_multi_pair(default_conf, fee, mocker, tres, pair, testdatadir)
data_processed = backtesting.strategy.tickerdata_to_dataframe(data) data_processed = backtesting.strategy.tickerdata_to_dataframe(data)
min_date, max_date = get_timeframe(data_processed) min_date, max_date = get_timeframe(data_processed)
backtest_conf = { backtest_conf = {
'stake_amount': default_conf['stake_amount'],
'processed': data_processed, 'processed': data_processed,
'max_open_trades': 3, 'stake_amount': default_conf['stake_amount'],
'position_stacking': False,
'start_date': min_date, 'start_date': min_date,
'end_date': max_date, 'end_date': max_date,
'max_open_trades': 3,
'position_stacking': False,
} }
results = backtesting.backtest(backtest_conf) results = backtesting.backtest(**backtest_conf)
# Make sure we have parallel trades # Make sure we have parallel trades
assert len(evaluate_result_multi(results, '5m', 2)) > 0 assert len(evaluate_result_multi(results, '5m', 2)) > 0
@ -719,14 +712,14 @@ def test_backtest_multi_pair(default_conf, fee, mocker, tres, pair, testdatadir)
assert len(evaluate_result_multi(results, '5m', 3)) == 0 assert len(evaluate_result_multi(results, '5m', 3)) == 0
backtest_conf = { backtest_conf = {
'stake_amount': default_conf['stake_amount'],
'processed': data_processed, 'processed': data_processed,
'max_open_trades': 1, 'stake_amount': default_conf['stake_amount'],
'position_stacking': False,
'start_date': min_date, 'start_date': min_date,
'end_date': max_date, 'end_date': max_date,
'max_open_trades': 1,
'position_stacking': False,
} }
results = backtesting.backtest(backtest_conf) results = backtesting.backtest(**backtest_conf)
assert len(evaluate_result_multi(results, '5m', 1)) == 0 assert len(evaluate_result_multi(results, '5m', 1)) == 0