From 16b3b97ac76489d49d939249d4069ec47894e67b Mon Sep 17 00:00:00 2001 From: Kavinkumar <33546454+mkavinkumar1@users.noreply.github.com> Date: Mon, 21 Feb 2022 18:25:04 +0530 Subject: [PATCH] zero division error fixes and rpc fixes --- freqtrade/freqtradebot.py | 6 +++--- freqtrade/rpc/telegram.py | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index c6ad061f1..ed32f4e84 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -701,7 +701,7 @@ class FreqtradeBot(LoggingMixin): 'stake_amount': trade.stake_amount, 'stake_currency': self.config['stake_currency'], 'fiat_currency': self.config.get('fiat_display_currency', None), - 'amount': safe_value_fallback(order, 'filled', 'amount') or trade.amount, + 'amount': order.get('filled') or order.get('amount') 'open_date': trade.open_date or datetime.utcnow(), 'current_rate': current_rate, 'sub_trade': sub_trade, @@ -1384,11 +1384,11 @@ class FreqtradeBot(LoggingMixin): if not trade.is_open: if send_msg and not stoploss_order and not trade.open_order_id: - self._notify_exit(trade, '', True) + self._notify_exit(trade, '', True, sub_trade=sub_trade) self.handle_protections(trade.pair) elif send_msg and not trade.open_order_id: # Buy fill - self._notify_enter(trade, order, fill=True) + self._notify_enter(trade, order, fill=True, sub_trade=sub_trade) return False diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index 367dafd12..da8f7be7c 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -414,12 +414,13 @@ class Telegram(RPCHandler): else: sumA = 0 sumB = 0 + first_order_price = filled_orders[0]["average"] or filled_orders[0]["price"] for y in range(x): sumA += (filled_orders[y]["amount"] * filled_orders[y]["average"]) sumB += filled_orders[y]["amount"] prev_avg_price = sumA/sumB - price_to_1st_entry = ((cur_entry_average - filled_orders[0]["average"]) - / filled_orders[0]["average"]) + price_to_1st_entry = ((cur_entry_average - first_order_price) + / first_order_price) minus_on_entry = (cur_entry_average - prev_avg_price)/prev_avg_price dur_entry = cur_entry_datetime - arrow.get(filled_orders[x-1]["order_filled_date"]) days = dur_entry.days