From 875ddec8385e57f434adbf97b0758e5df9252436 Mon Sep 17 00:00:00 2001 From: drupman Date: Thu, 30 Nov 2023 19:30:36 -0300 Subject: [PATCH 1/3] (fix) replace nan with 0 --- utils/data_manipulation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/data_manipulation.py b/utils/data_manipulation.py index 5fbaa017..3a568300 100644 --- a/utils/data_manipulation.py +++ b/utils/data_manipulation.py @@ -243,12 +243,12 @@ def total_orders(self): @property def average_buy_price(self): average_price = (self.buys["price"] * self.buys["amount"]).sum() / self.total_buy_amount - return average_price + return np.nan_to_num(average_price, nan=0) @property def average_sell_price(self): average_price = (self.sells["price"] * self.sells["amount"]).sum() / self.total_sell_amount - return average_price + return np.nan_to_num(average_price, nan=0) @property def price_change(self): From a2a437326bf68c36c9a9100709761215efd249e7 Mon Sep 17 00:00:00 2001 From: drupman Date: Thu, 30 Nov 2023 19:31:36 -0300 Subject: [PATCH 2/3] (fix) remove papertrade substracting --- utils/database_manager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/database_manager.py b/utils/database_manager.py index f6aa8b34..43dc57c9 100644 --- a/utils/database_manager.py +++ b/utils/database_manager.py @@ -146,7 +146,7 @@ def get_orders(self, config_file_path=None, start_date=None, end_date=None): with self.session_maker() as session: query = self._get_orders_query(config_file_path, start_date, end_date) orders = pd.read_sql_query(text(query), session.connection()) - orders["market"] = orders["market"].apply(lambda x: x.lower().replace("_papertrade", "")) + orders["market"] = orders["market"] orders["amount"] = orders["amount"] / 1e6 orders["price"] = orders["price"] / 1e6 orders['creation_timestamp'] = pd.to_datetime(orders['creation_timestamp'], unit="ms") @@ -172,7 +172,7 @@ def get_trade_fills(self, config_file_path=None, start_date=None, end_date=None) trade_fills["gross_pnl"] = trade_fills.groupby(groupers)["realized_trade_pnl"].diff() trade_fills["trade_fee"] = trade_fills.groupby(groupers)["cum_fees_in_quote"].diff() trade_fills["timestamp"] = pd.to_datetime(trade_fills["timestamp"], unit="ms") - trade_fills["market"] = trade_fills["market"].apply(lambda x: x.lower().replace("_papertrade", "")) + trade_fills["market"] = trade_fills["market"] trade_fills["quote_volume"] = trade_fills["price"] * trade_fills["amount"] return trade_fills From b17798ae5ccd4c122a03942f5ab27369a3454569 Mon Sep 17 00:00:00 2001 From: drupman Date: Thu, 30 Nov 2023 19:35:59 -0300 Subject: [PATCH 3/3] (fix) solve invalid value encountered in double_scalars error --- utils/data_manipulation.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/utils/data_manipulation.py b/utils/data_manipulation.py index 3a568300..40605560 100644 --- a/utils/data_manipulation.py +++ b/utils/data_manipulation.py @@ -242,13 +242,19 @@ def total_orders(self): @property def average_buy_price(self): - average_price = (self.buys["price"] * self.buys["amount"]).sum() / self.total_buy_amount - return np.nan_to_num(average_price, nan=0) + if self.total_buy_amount != 0: + average_price = (self.buys["price"] * self.buys["amount"]).sum() / self.total_buy_amount + return np.nan_to_num(average_price, nan=0) + else: + return 0 @property def average_sell_price(self): - average_price = (self.sells["price"] * self.sells["amount"]).sum() / self.total_sell_amount - return np.nan_to_num(average_price, nan=0) + if self.total_sell_amount != 0: + average_price = (self.sells["price"] * self.sells["amount"]).sum() / self.total_sell_amount + return np.nan_to_num(average_price, nan=0) + else: + return 0 @property def price_change(self):