From f26b49ee064aab006ac72ea3c2a891fece9fc4ef Mon Sep 17 00:00:00 2001 From: Matthias Date: Mon, 24 Jul 2023 07:09:19 +0200 Subject: [PATCH] Ensure return value is an int, not a np.int --- freqtrade/optimize/optimize_reports/optimize_reports.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/freqtrade/optimize/optimize_reports/optimize_reports.py b/freqtrade/optimize/optimize_reports/optimize_reports.py index afcdf531c..7f2291d67 100644 --- a/freqtrade/optimize/optimize_reports/optimize_reports.py +++ b/freqtrade/optimize/optimize_reports/optimize_reports.py @@ -253,7 +253,7 @@ def generate_all_periodic_breakdown_stats(trade_list: List) -> Dict[str, List]: return result -def calc_consecutive(dataframe: DataFrame) -> Tuple[int, int]: +def calc_streak(dataframe: DataFrame) -> Tuple[int, int]: """ Calculate consecutive wins and losses :param dataframe: Dataframe containing the trades dataframe, with profit_ratio column @@ -265,8 +265,8 @@ def calc_consecutive(dataframe: DataFrame) -> Tuple[int, int]: df['counter'] = df['streaks'].groupby(df['streaks']).cumcount() + 1 res = df.groupby(df['result']).max() # - cons_wins = res.loc['win', 'counter'] if 'win' in res.index else 0 - cons_losses = res.loc['loss', 'counter'] if 'loss' in res.index else 0 + cons_wins = int(res.loc['win', 'counter']) if 'win' in res.index else 0 + cons_losses = int(res.loc['loss', 'counter']) if 'loss' in res.index else 0 return cons_wins, cons_losses @@ -295,7 +295,7 @@ def generate_trading_stats(results: DataFrame) -> Dict[str, Any]: if not winning_trades.empty else timedelta()) loser_holding_avg = (timedelta(minutes=round(losing_trades['trade_duration'].mean())) if not losing_trades.empty else timedelta()) - winstreak, loss_streak = calc_consecutive(results) + winstreak, loss_streak = calc_streak(results) return { 'wins': len(winning_trades),