From 7f386874adb1a4519e8ee091384258309e7eb4fe Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 16 Apr 2024 18:17:20 +0200 Subject: [PATCH] Trim dataframes accordingly ... --- freqtrade/data/metrics.py | 5 ++++- tests/data/test_btanalysis.py | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/freqtrade/data/metrics.py b/freqtrade/data/metrics.py index 45b9dbdea..ee4c769ff 100644 --- a/freqtrade/data/metrics.py +++ b/freqtrade/data/metrics.py @@ -47,7 +47,8 @@ def combine_dataframes_by_column( def combined_dataframes_with_rel_mean( - data: Dict[str, pd.DataFrame], column: str = "close") -> pd.DataFrame: + data: Dict[str, pd.DataFrame], fromdt: datetime, todt: datetime, + column: str = "close") -> pd.DataFrame: """ Combine multiple dataframes "column" :param data: Dict of Dataframes, dict key should be pair. @@ -57,6 +58,8 @@ def combined_dataframes_with_rel_mean( :raise: ValueError if no data is provided. """ df_comb = combine_dataframes_by_column(data, column) + # Trim dataframes to the given timeframe + df_comb = df_comb.iloc[(df_comb.index >= fromdt) & (df_comb.index < todt)] df_comb['count'] = df_comb.count(axis=1) df_comb['mean'] = df_comb.mean(axis=1) df_comb['rel_mean'] = df_comb['mean'].pct_change().fillna(0) diff --git a/tests/data/test_btanalysis.py b/tests/data/test_btanalysis.py index f465af1c7..ff177a1d9 100644 --- a/tests/data/test_btanalysis.py +++ b/tests/data/test_btanalysis.py @@ -254,13 +254,18 @@ def test_combine_dataframes_with_mean(testdatadir): def test_combined_dataframes_with_rel_mean(testdatadir): pairs = ["ETH/BTC", "ADA/BTC"] data = load_data(datadir=testdatadir, pairs=pairs, timeframe='5m') - df = combined_dataframes_with_rel_mean(data) + df = combined_dataframes_with_rel_mean( + data, + datetime(2018, 1, 12, tzinfo=timezone.utc), + datetime(2018, 1, 28, tzinfo=timezone.utc) + ) assert isinstance(df, DataFrame) assert "ETH/BTC" not in df.columns assert "ADA/BTC" not in df.columns assert "mean" in df.columns assert "rel_mean" in df.columns assert "count" in df.columns + assert len(df) < len(data['ETH/BTC']) def test_combine_dataframes_with_mean_no_data(testdatadir):