Added test cases and fixed a minor bug
This commit is contained in:
parent
c96acd6ca0
commit
c648ec7c0c
@ -120,24 +120,30 @@ def _hyperopt_filter_trials(trials: List, filteroptions: dict) -> List:
|
|||||||
if filteroptions['only_profitable']:
|
if filteroptions['only_profitable']:
|
||||||
trials = [x for x in trials if x['results_metrics']['profit'] > 0]
|
trials = [x for x in trials if x['results_metrics']['profit'] > 0]
|
||||||
|
|
||||||
|
print(trials[0])
|
||||||
|
|
||||||
if not filteroptions['only_best']:
|
if not filteroptions['only_best']:
|
||||||
if filteroptions['filter_min_avg_time'] > 0:
|
if filteroptions['filter_min_avg_time'] > 0:
|
||||||
|
trials = [x for x in trials if x['results_metrics']['trade_count'] > 0]
|
||||||
trials = [
|
trials = [
|
||||||
x for x in trials
|
x for x in trials
|
||||||
if x['results_metrics']['duration'] > filteroptions['filter_min_avg_time']
|
if x['results_metrics']['duration'] > filteroptions['filter_min_avg_time']
|
||||||
]
|
]
|
||||||
if filteroptions['filter_max_avg_time'] > 0:
|
if filteroptions['filter_max_avg_time'] > 0:
|
||||||
|
trials = [x for x in trials if x['results_metrics']['trade_count'] > 0]
|
||||||
trials = [
|
trials = [
|
||||||
x for x in trials
|
x for x in trials
|
||||||
if x['results_metrics']['duration'] < filteroptions['filter_max_avg_time']
|
if x['results_metrics']['duration'] < filteroptions['filter_max_avg_time']
|
||||||
]
|
]
|
||||||
if filteroptions['filter_min_avg_profit'] > 0:
|
if filteroptions['filter_min_avg_profit'] > 0:
|
||||||
|
trials = [x for x in trials if x['results_metrics']['trade_count'] > 0]
|
||||||
trials = [
|
trials = [
|
||||||
x for x in trials
|
x for x in trials
|
||||||
if x['results_metrics']['avg_profit']
|
if x['results_metrics']['avg_profit']
|
||||||
> filteroptions['filter_min_avg_profit']
|
> filteroptions['filter_min_avg_profit']
|
||||||
]
|
]
|
||||||
if filteroptions['filter_min_total_profit'] > 0:
|
if filteroptions['filter_min_total_profit'] > 0:
|
||||||
|
trials = [x for x in trials if x['results_metrics']['trade_count'] > 0]
|
||||||
trials = [
|
trials = [
|
||||||
x for x in trials
|
x for x in trials
|
||||||
if x['results_metrics']['profit'] > filteroptions['filter_min_total_profit']
|
if x['results_metrics']['profit'] > filteroptions['filter_min_total_profit']
|
||||||
|
@ -778,7 +778,64 @@ def test_hyperopt_list(mocker, capsys, hyperopt_results):
|
|||||||
assert all(x not in captured.out
|
assert all(x not in captured.out
|
||||||
for x in [" 1/12", " 3/12", " 4/12", " 5/12", " 6/12", " 7/12", " 8/12", " 9/12",
|
for x in [" 1/12", " 3/12", " 4/12", " 5/12", " 6/12", " 7/12", " 8/12", " 9/12",
|
||||||
" 11/12", " 12/12"])
|
" 11/12", " 12/12"])
|
||||||
|
args = [
|
||||||
|
"hyperopt-list",
|
||||||
|
"--profitable",
|
||||||
|
"--no-details",
|
||||||
|
"--min-avg-profit", "0.11"
|
||||||
|
]
|
||||||
|
pargs = get_args(args)
|
||||||
|
pargs['config'] = None
|
||||||
|
start_hyperopt_list(pargs)
|
||||||
|
captured = capsys.readouterr()
|
||||||
|
assert all(x in captured.out
|
||||||
|
for x in [" 2/12"])
|
||||||
|
assert all(x not in captured.out
|
||||||
|
for x in [" 1/12", " 3/12", " 4/12", " 5/12", " 6/12", " 7/12", " 8/12", " 9/12",
|
||||||
|
" 10/12", " 11/12", " 12/12"])
|
||||||
|
args = [
|
||||||
|
"hyperopt-list",
|
||||||
|
"--no-details",
|
||||||
|
"--min-total-profit", "0.4"
|
||||||
|
]
|
||||||
|
pargs = get_args(args)
|
||||||
|
pargs['config'] = None
|
||||||
|
start_hyperopt_list(pargs)
|
||||||
|
captured = capsys.readouterr()
|
||||||
|
assert all(x in captured.out
|
||||||
|
for x in [" 10/12"])
|
||||||
|
assert all(x not in captured.out
|
||||||
|
for x in [" 1/12", " 2/12", " 3/12", " 4/12", " 5/12", " 6/12", " 7/12", " 8/12",
|
||||||
|
" 9/12", " 11/12", " 12/12"])
|
||||||
|
args = [
|
||||||
|
"hyperopt-list",
|
||||||
|
"--profitable",
|
||||||
|
"--no-details",
|
||||||
|
"--min-avg-time", "2000"
|
||||||
|
]
|
||||||
|
pargs = get_args(args)
|
||||||
|
pargs['config'] = None
|
||||||
|
start_hyperopt_list(pargs)
|
||||||
|
captured = capsys.readouterr()
|
||||||
|
assert all(x in captured.out
|
||||||
|
for x in [" 10/12"])
|
||||||
|
assert all(x not in captured.out
|
||||||
|
for x in [" 1/12", " 2/12", " 3/12", " 4/12", " 5/12", " 6/12", " 7/12",
|
||||||
|
" 8/12", " 9/12", " 11/12", " 12/12"])
|
||||||
|
args = [
|
||||||
|
"hyperopt-list",
|
||||||
|
"--no-details",
|
||||||
|
"--max-avg-time", "1500"
|
||||||
|
]
|
||||||
|
pargs = get_args(args)
|
||||||
|
pargs['config'] = None
|
||||||
|
start_hyperopt_list(pargs)
|
||||||
|
captured = capsys.readouterr()
|
||||||
|
assert all(x in captured.out
|
||||||
|
for x in [" 2/12", " 6/12"])
|
||||||
|
assert all(x not in captured.out
|
||||||
|
for x in [" 1/12", " 3/12", " 4/12", " 5/12", " 7/12", " 8/12"
|
||||||
|
" 9/12", " 10/12", " 11/12", " 12/12"])
|
||||||
|
|
||||||
def test_hyperopt_show(mocker, capsys, hyperopt_results):
|
def test_hyperopt_show(mocker, capsys, hyperopt_results):
|
||||||
mocker.patch(
|
mocker.patch(
|
||||||
|
Loading…
Reference in New Issue
Block a user