diff --git a/freqtrade/data/converter/trade_converter.py b/freqtrade/data/converter/trade_converter.py index 0485930a6..a1f6c0194 100644 --- a/freqtrade/data/converter/trade_converter.py +++ b/freqtrade/data/converter/trade_converter.py @@ -70,14 +70,13 @@ def trades_to_ohlcv(trades: DataFrame, timeframe: str) -> DataFrame: :return: OHLCV Dataframe. :raises: ValueError if no trades are provided """ - from freqtrade.exchange import timeframe_to_minutes - timeframe_minutes = timeframe_to_minutes(timeframe) + from freqtrade.exchange import timeframe_as_resample_freq if trades.empty: raise ValueError('Trade-list empty.') df = trades.set_index('date', drop=True) - - df_new = df['price'].resample(f'{timeframe_minutes}min').ohlc() - df_new['volume'] = df['amount'].resample(f'{timeframe_minutes}min').sum() + resample_interval = timeframe_as_resample_freq(timeframe) + df_new = df['price'].resample(resample_interval).ohlc() + df_new['volume'] = df['amount'].resample(resample_interval).sum() df_new['date'] = df_new.index # Drop 0 volume rows df_new = df_new.dropna() diff --git a/tests/data/test_converter.py b/tests/data/test_converter.py index 3028d2bfd..245a882b6 100644 --- a/tests/data/test_converter.py +++ b/tests/data/test_converter.py @@ -52,6 +52,20 @@ def test_trades_to_ohlcv(trades_history_df, caplog): assert 'close' in df.columns assert df.iloc[0, :]['high'] == 0.019627 assert df.iloc[0, :]['low'] == 0.019626 + assert df.iloc[0, :]['date'] == pd.Timestamp('2019-08-14 15:59:00+0000') + + df_1h = trades_to_ohlcv(trades_history_df, '1h') + assert len(df_1h) == 1 + assert df_1h.iloc[0, :]['high'] == 0.019627 + assert df_1h.iloc[0, :]['low'] == 0.019626 + assert df_1h.iloc[0, :]['date'] == pd.Timestamp('2019-08-14 15:00:00+0000') + + df_1s = trades_to_ohlcv(trades_history_df, '1s') + assert len(df_1s) == 2 + assert df_1s.iloc[0, :]['high'] == 0.019627 + assert df_1s.iloc[0, :]['low'] == 0.019627 + assert df_1s.iloc[0, :]['date'] == pd.Timestamp('2019-08-14 15:59:49+0000') + assert df_1s.iloc[-1, :]['date'] == pd.Timestamp('2019-08-14 15:59:59+0000') def test_ohlcv_fill_up_missing_data(testdatadir, caplog):