omit hyperopt output if total_profit doesn't go pass threashold (3)
This commit is contained in:
parent
965c075362
commit
a7cca4985e
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
|
import sys
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
from math import exp
|
from math import exp
|
||||||
from operator import itemgetter
|
from operator import itemgetter
|
||||||
@ -28,9 +29,9 @@ TARGET_TRADES = 1100
|
|||||||
TOTAL_TRIES = None
|
TOTAL_TRIES = None
|
||||||
_CURRENT_TRIES = 0
|
_CURRENT_TRIES = 0
|
||||||
|
|
||||||
TOTAL_PROFIT_TO_BEAT = 4
|
TOTAL_PROFIT_TO_BEAT = 3
|
||||||
AVG_PROFIT_TO_BEAT = 0.2
|
AVG_PROFIT_TO_BEAT = 0.2
|
||||||
AVG_DURATION_TO_BEAT = 70
|
AVG_DURATION_TO_BEAT = 50
|
||||||
|
|
||||||
# Configuration and data used by hyperopt
|
# Configuration and data used by hyperopt
|
||||||
PROCESSED = optimize.preprocess(optimize.load_data())
|
PROCESSED = optimize.preprocess(optimize.load_data())
|
||||||
@ -101,6 +102,21 @@ SPACE = {
|
|||||||
]),
|
]),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def log_results(results):
|
||||||
|
"if results is better than _TO_BEAT show it"
|
||||||
|
|
||||||
|
current_try = results['current_tries']
|
||||||
|
total_tries = results['total_tries']
|
||||||
|
result = results['result']
|
||||||
|
profit = results['total_profit'] / 1000
|
||||||
|
|
||||||
|
outcome = '{:5d}/{}: {}'.format(current_try, total_tries, result)
|
||||||
|
|
||||||
|
if profit >= TOTAL_PROFIT_TO_BEAT:
|
||||||
|
logger.info(outcome)
|
||||||
|
else:
|
||||||
|
print('.', end='')
|
||||||
|
sys.stdout.flush()
|
||||||
|
|
||||||
def optimizer(params):
|
def optimizer(params):
|
||||||
global _CURRENT_TRIES
|
global _CURRENT_TRIES
|
||||||
@ -119,7 +135,22 @@ def optimizer(params):
|
|||||||
profit_loss = max(0, 1 - total_profit / 10000) # max profit 10000
|
profit_loss = max(0, 1 - total_profit / 10000) # max profit 10000
|
||||||
|
|
||||||
_CURRENT_TRIES += 1
|
_CURRENT_TRIES += 1
|
||||||
logger.info('{:5d}/{}: {}'.format(_CURRENT_TRIES, TOTAL_TRIES, result))
|
|
||||||
|
result_data = {
|
||||||
|
'trade_count': trade_count,
|
||||||
|
'total_profit': total_profit,
|
||||||
|
'trade_loss': trade_loss,
|
||||||
|
'profit_loss': profit_loss,
|
||||||
|
'avg_profit': results.profit.mean() * 100.0,
|
||||||
|
'avg_duration': results.duration.mean() * 5,
|
||||||
|
'current_tries': _CURRENT_TRIES,
|
||||||
|
'total_tries': TOTAL_TRIES,
|
||||||
|
'result': result,
|
||||||
|
'results': results
|
||||||
|
}
|
||||||
|
|
||||||
|
# logger.info('{:5d}/{}: {}'.format(_CURRENT_TRIES, TOTAL_TRIES, result))
|
||||||
|
log_results(result_data)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'loss': trade_loss + profit_loss,
|
'loss': trade_loss + profit_loss,
|
||||||
|
Loading…
Reference in New Issue
Block a user