Extract trades df type conversion
This commit is contained in:
@@ -226,16 +226,29 @@ def trades_dict_to_list(trades: List[Dict]) -> TradeList:
|
|||||||
return [[t[col] for col in DEFAULT_TRADES_COLUMNS] for t in trades]
|
return [[t[col] for col in DEFAULT_TRADES_COLUMNS] for t in trades]
|
||||||
|
|
||||||
|
|
||||||
def trades_list_to_df(trades: TradeList):
|
def trades_convert_types(trades: DataFrame) -> DataFrame:
|
||||||
|
"""
|
||||||
|
Convert Trades dtypes and add 'date' column
|
||||||
|
"""
|
||||||
|
trades = trades.astype(TRADES_DTYPES)
|
||||||
|
trades['date'] = to_datetime(trades['timestamp'], unit='ms', utc=True)
|
||||||
|
return trades
|
||||||
|
|
||||||
|
|
||||||
|
def trades_list_to_df(trades: TradeList, convert: bool = True):
|
||||||
"""
|
"""
|
||||||
convert trades list to dataframe
|
convert trades list to dataframe
|
||||||
:param trades: List of Lists with constants.DEFAULT_TRADES_COLUMNS as columns
|
:param trades: List of Lists with constants.DEFAULT_TRADES_COLUMNS as columns
|
||||||
"""
|
"""
|
||||||
if not trades:
|
if not trades:
|
||||||
return DataFrame(columns=DEFAULT_TRADES_COLUMNS).astype(TRADES_DTYPES)
|
df = DataFrame(columns=DEFAULT_TRADES_COLUMNS)
|
||||||
df = DataFrame(trades, columns=DEFAULT_TRADES_COLUMNS)
|
else:
|
||||||
|
df = DataFrame(trades, columns=DEFAULT_TRADES_COLUMNS)
|
||||||
|
|
||||||
return df.astype(TRADES_DTYPES)
|
if convert:
|
||||||
|
df = trades_convert_types(df)
|
||||||
|
|
||||||
|
return df
|
||||||
|
|
||||||
|
|
||||||
def trades_to_ohlcv(trades: DataFrame, timeframe: str) -> DataFrame:
|
def trades_to_ohlcv(trades: DataFrame, timeframe: str) -> DataFrame:
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ from pandas import DataFrame, to_datetime
|
|||||||
from freqtrade import misc
|
from freqtrade import misc
|
||||||
from freqtrade.configuration import TimeRange
|
from freqtrade.configuration import TimeRange
|
||||||
from freqtrade.constants import TRADES_DTYPES, ListPairsWithTimeframes, TradeList
|
from freqtrade.constants import TRADES_DTYPES, ListPairsWithTimeframes, TradeList
|
||||||
from freqtrade.data.converter import (clean_ohlcv_dataframe, trades_df_remove_duplicates,
|
from freqtrade.data.converter import (clean_ohlcv_dataframe, trades_convert_types,
|
||||||
trim_dataframe)
|
trades_df_remove_duplicates, trim_dataframe)
|
||||||
from freqtrade.enums import CandleType, TradingMode
|
from freqtrade.enums import CandleType, TradingMode
|
||||||
from freqtrade.exchange import timeframe_to_seconds
|
from freqtrade.exchange import timeframe_to_seconds
|
||||||
|
|
||||||
@@ -218,8 +218,8 @@ class IDataHandler(ABC):
|
|||||||
:return: List of trades
|
:return: List of trades
|
||||||
"""
|
"""
|
||||||
trades = trades_df_remove_duplicates(self._trades_load(pair, timerange=timerange))
|
trades = trades_df_remove_duplicates(self._trades_load(pair, timerange=timerange))
|
||||||
trades = trades.astype(TRADES_DTYPES)
|
|
||||||
trades['date'] = to_datetime(trades['timestamp'], unit='ms', utc=True)
|
trades = trades_convert_types(trades)
|
||||||
return trades
|
return trades
|
||||||
|
|
||||||
def trades_load_aslist(self, pair: str, timerange: Optional[TimeRange] = None) -> TradeList:
|
def trades_load_aslist(self, pair: str, timerange: Optional[TimeRange] = None) -> TradeList:
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ class JsonDataHandler(IDataHandler):
|
|||||||
logger.info("Old trades format detected - converting")
|
logger.info("Old trades format detected - converting")
|
||||||
tradesdata = trades_dict_to_list(tradesdata)
|
tradesdata = trades_dict_to_list(tradesdata)
|
||||||
pass
|
pass
|
||||||
return trades_list_to_df(tradesdata)
|
return trades_list_to_df(tradesdata, convert=False)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _get_file_extension(cls):
|
def _get_file_extension(cls):
|
||||||
|
|||||||
Reference in New Issue
Block a user