feat: greatly improve performance of orderflow by not using apply
This commit is contained in:
@@ -77,18 +77,20 @@ def timeframe_to_DateOffset(timeframe: str) -> pd.DateOffset:
|
|||||||
else:
|
else:
|
||||||
return pd.DateOffset(minutes=timeframe_minutes)
|
return pd.DateOffset(minutes=timeframe_minutes)
|
||||||
|
|
||||||
def _calculate_ohlcv_candle_start_and_end(df: pd.DataFrame, timeframe: str):
|
|
||||||
from freqtrade.exchange import timeframe_to_next_date, timeframe_to_resample_freq
|
|
||||||
|
|
||||||
timeframe_frequency = timeframe_to_resample_freq(timeframe)
|
def _calculate_ohlcv_candle_start_and_end(df: pd.DataFrame, timeframe: str):
|
||||||
# calculate ohlcv candle start and end
|
from freqtrade.exchange import (
|
||||||
|
timeframe_to_resample_freq,
|
||||||
|
)
|
||||||
|
|
||||||
if df is not None and not df.empty:
|
if df is not None and not df.empty:
|
||||||
|
timeframe_frequency = timeframe_to_resample_freq(timeframe)
|
||||||
|
dofs = timeframe_to_DateOffset(timeframe)
|
||||||
|
# calculate ohlcv candle start and end
|
||||||
df["datetime"] = pd.to_datetime(df["date"], unit="ms")
|
df["datetime"] = pd.to_datetime(df["date"], unit="ms")
|
||||||
df["candle_start"] = df["datetime"].dt.floor(timeframe_frequency)
|
df["candle_start"] = df["datetime"].dt.floor(timeframe_frequency)
|
||||||
# used in _now_is_time_to_refresh_trades
|
# used in _now_is_time_to_refresh_trades
|
||||||
df["candle_end"] = df["candle_start"].apply(
|
df["candle_end"] = df["candle_start"] + dofs
|
||||||
lambda candle_start: timeframe_to_next_date(timeframe, candle_start)
|
|
||||||
)
|
|
||||||
df.drop(columns=["datetime"], inplace=True)
|
df.drop(columns=["datetime"], inplace=True)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user