From 0f3d538f6c1aae24926d1eaaf968124b1f150ad4 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sat, 16 Mar 2024 16:26:17 +0100 Subject: [PATCH] Avoid duplicate pandas imports --- freqtrade/data/converter/orderflow.py | 23 +++++++++++------------ freqtrade/exchange/exchange.py | 5 ++--- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/freqtrade/data/converter/orderflow.py b/freqtrade/data/converter/orderflow.py index 8266a44de..1321d3c47 100644 --- a/freqtrade/data/converter/orderflow.py +++ b/freqtrade/data/converter/orderflow.py @@ -6,7 +6,6 @@ import time import numpy as np import pandas as pd -from pandas import DataFrame from freqtrade.constants import DEFAULT_ORDERFLOW_COLUMNS, Config @@ -14,7 +13,7 @@ from freqtrade.constants import DEFAULT_ORDERFLOW_COLUMNS, Config logger = logging.getLogger(__name__) -def _init_dataframe_with_trades_columns(dataframe: DataFrame): +def _init_dataframe_with_trades_columns(dataframe: pd.DataFrame): """ Populates a dataframe with trades columns :param dataframe: Dataframe to populate @@ -39,7 +38,7 @@ def _convert_timeframe_to_pandas_frequency(timeframe: str): return (timeframe_frequency, timeframe_minutes) -def _calculate_ohlcv_candle_start_and_end(df: DataFrame, timeframe: str): +def _calculate_ohlcv_candle_start_and_end(df: pd.DataFrame, timeframe: str): from freqtrade.exchange.exchange_utils import timeframe_to_resample_freq _, timeframe_minutes = _convert_timeframe_to_pandas_frequency( timeframe) @@ -55,8 +54,8 @@ def _calculate_ohlcv_candle_start_and_end(df: DataFrame, timeframe: str): def populate_dataframe_with_trades(config: Config, - dataframe: DataFrame, - trades: DataFrame) -> DataFrame: + dataframe: pd.DataFrame, + trades: pd.DataFrame) -> pd.DataFrame: """ Populates a dataframe with trades :param dataframe: Dataframe to populate @@ -167,7 +166,7 @@ def populate_dataframe_with_trades(config: Config, return dataframe -def trades_to_volumeprofile_with_total_delta_bid_ask(trades: DataFrame, scale: float): +def trades_to_volumeprofile_with_total_delta_bid_ask(trades: pd.DataFrame, scale: float): """ :param trades: dataframe :param scale: scale aka bin size e.g. 0.5 @@ -199,7 +198,7 @@ def trades_to_volumeprofile_with_total_delta_bid_ask(trades: DataFrame, scale: f return df -def trades_orderflow_to_imbalances(df: DataFrame, imbalance_ratio: int, imbalance_volume: int): +def trades_orderflow_to_imbalances(df: pd.DataFrame, imbalance_ratio: int, imbalance_volume: int): """ :param df: dataframes with bid and ask :param imbalance_ratio: imbalance_ratio e.g. 300 @@ -216,7 +215,7 @@ def trades_orderflow_to_imbalances(df: DataFrame, imbalance_ratio: int, imbalanc # overwrite ask_imbalance with False if volume is not big enough ask_imbalance_filtered = np.where( df.total_volume < imbalance_volume, False, ask_imbalance) - dataframe = DataFrame({ + dataframe = pd.DataFrame({ "bid_imbalance": bid_imbalance_filtered, "ask_imbalance": ask_imbalance_filtered }, index=df.index, @@ -225,7 +224,7 @@ def trades_orderflow_to_imbalances(df: DataFrame, imbalance_ratio: int, imbalanc return dataframe -def stacked_imbalance(df: DataFrame, +def stacked_imbalance(df: pd.DataFrame, label: str, stacked_imbalance_range: int, should_reverse: bool): @@ -252,15 +251,15 @@ def stacked_imbalance(df: DataFrame, return stacked_imbalance_price -def stacked_imbalance_bid(df: DataFrame, stacked_imbalance_range: int): +def stacked_imbalance_bid(df: pd.DataFrame, stacked_imbalance_range: int): return stacked_imbalance(df, 'bid', stacked_imbalance_range, should_reverse=False) -def stacked_imbalance_ask(df: DataFrame, stacked_imbalance_range: int): +def stacked_imbalance_ask(df: pd.DataFrame, stacked_imbalance_range: int): return stacked_imbalance(df, 'ask', stacked_imbalance_range, should_reverse=True) -def orderflow_to_volume_profile(df: DataFrame): +def orderflow_to_volume_profile(df: pd.DataFrame): """ :param orderflow: dataframe :return: volume profile dataframe diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index 7defe1042..cc7bf577e 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -14,7 +14,6 @@ from typing import Any, Coroutine, Dict, List, Literal, Optional, Tuple, Union import ccxt import ccxt.async_support as ccxt_async -import pandas as pd from cachetools import TTLCache from ccxt import TICK_SIZE from dateutil import parser @@ -2156,8 +2155,8 @@ class Exchange: # Reassign so we return the updated, combined df combined_df = concat([old, trades_df], axis=0) logger.debug(f"Clean duplicated ticks from Trades data {pair}") - trades_df = pd.DataFrame(trades_df_remove_duplicates(combined_df), - columns=combined_df.columns) + trades_df = DataFrame(trades_df_remove_duplicates(combined_df), + columns=combined_df.columns) # Age out old candles if first_required_candle_date: # slice of older dates