Have hyperopt-loss function use calc_max_drawdown

This commit is contained in:
Matthias
2024-05-14 19:28:48 +02:00
parent c8eb22dcbd
commit 0aa3ec2845

View File

@@ -10,7 +10,7 @@ individual needs.
from pandas import DataFrame
from freqtrade.data.metrics import calculate_max_drawdown
from freqtrade.data.metrics import calc_max_drawdown
from freqtrade.optimize.hyperopt import IHyperOptLoss
@@ -24,8 +24,9 @@ class ProfitDrawDownHyperOptLoss(IHyperOptLoss):
total_profit = results["profit_abs"].sum()
try:
max_drawdown_abs = calculate_max_drawdown(results, value_col="profit_abs")[5]
drawdown = calc_max_drawdown(results, value_col="profit_abs")
relative_account_drawdown = drawdown.relative_account_drawdown
except ValueError:
max_drawdown_abs = 0
relative_account_drawdown = 0
return -1 * (total_profit * (1 - max_drawdown_abs * DRAWDOWN_MULT))
return -1 * (total_profit * (1 - relative_account_drawdown * DRAWDOWN_MULT))