From fb4aae080bcd8181d3d9aa4dc9c5088b0ddd3149 Mon Sep 17 00:00:00 2001 From: Joe Schr <8218910+TheJoeSchr@users.noreply.github.com> Date: Fri, 3 Jan 2025 16:21:54 +0100 Subject: [PATCH] refactor: Modify stacked_imbalance to return list of prices instead of max price --- freqtrade/data/converter/orderflow.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/freqtrade/data/converter/orderflow.py b/freqtrade/data/converter/orderflow.py index a51394ce9..5af63dfb8 100644 --- a/freqtrade/data/converter/orderflow.py +++ b/freqtrade/data/converter/orderflow.py @@ -269,16 +269,18 @@ def stacked_imbalance( int_series.groupby((int_series != int_series.shift()).cumsum()).cumcount() + 1 ) - max_stacked_imbalance_idx = stacked.index[stacked >= stacked_imbalance_range] - stacked_imbalance_price = np.nan - if not max_stacked_imbalance_idx.empty: - idx = ( - max_stacked_imbalance_idx[0] + stacked_imbalance_idx = stacked.index[stacked >= stacked_imbalance_range] + stacked_imbalance_prices = [] + + if not stacked_imbalance_idx.empty: + indices = ( + stacked_imbalance_idx if not should_reverse - else np.flipud(max_stacked_imbalance_idx)[0] + else np.flipud(stacked_imbalance_idx) ) - stacked_imbalance_price = imbalance.index[idx] - return stacked_imbalance_price + stacked_imbalance_prices = [float(imbalance.index[idx]) for idx in indices] + + return stacked_imbalance_prices if stacked_imbalance_prices else [np.nan] def stacked_imbalance_ask(df: pd.DataFrame, stacked_imbalance_range: int):