updated backtest

This commit is contained in:
Kavinkumar 2022-03-02 13:24:58 +05:30
parent a031216ecc
commit 3dab31df29
2 changed files with 15 additions and 11 deletions

View File

@ -1414,7 +1414,7 @@ class FreqtradeBot(LoggingMixin):
if not trade.is_open: if not trade.is_open:
self.handle_protections(trade.pair) self.handle_protections(trade.pair)
sub_trade = order.get('filled') != trade.amount sub_trade = order_obj.safe_filled != trade.amount
if order.get('side', None) == 'sell': if order.get('side', None) == 'sell':
if send_msg and not stoploss_order and not trade.open_order_id: if send_msg and not stoploss_order and not trade.open_order_id:
self._notify_exit(trade, '', True, sub_trade=sub_trade, order=order_obj) self._notify_exit(trade, '', True, sub_trade=sub_trade, order=order_obj)

View File

@ -482,7 +482,7 @@ class Backtesting:
closerate: float, amount: float = None) -> Optional[LocalTrade]: closerate: float, amount: float = None) -> Optional[LocalTrade]:
self.order_id_counter += 1 self.order_id_counter += 1
if amount: if amount:
a = trade.select_filled_orders('buy')[-1].safe_filled a = trade.select_filled_orders('buy')[-1].safe_price
logger.info(f'{closerate}, {amount}, {a}, selling'+'\n'*3) logger.info(f'{closerate}, {amount}, {a}, selling'+'\n'*3)
else: else:
@ -494,7 +494,7 @@ class Backtesting:
ft_trade_id=trade.id, ft_trade_id=trade.id,
order_date=sell_candle_time, order_date=sell_candle_time,
order_update_date=sell_candle_time, order_update_date=sell_candle_time,
ft_is_open=True, ft_is_open=False,
ft_pair=trade.pair, ft_pair=trade.pair,
order_id=str(self.order_id_counter), order_id=str(self.order_id_counter),
symbol=trade.pair, symbol=trade.pair,
@ -816,6 +816,10 @@ class Backtesting:
order = trade.select_order('sell', is_open=True) order = trade.select_order('sell', is_open=True)
if order and self._get_order_filled(order.price, row): if order and self._get_order_filled(order.price, row):
trade.open_order_id = None trade.open_order_id = None
sub_trade = order.safe_filled != trade.amount
if sub_trade:
order.close_bt_order(current_time)
else:
trade.close_date = current_time trade.close_date = current_time
trade.close(order.price, show_msg=False) trade.close(order.price, show_msg=False)
@ -824,8 +828,8 @@ class Backtesting:
open_trades[pair].remove(trade) open_trades[pair].remove(trade)
LocalTrade.close_bt_trade(trade) LocalTrade.close_bt_trade(trade)
trades.append(trade) trades.append(trade)
self.wallets.update()
self.run_protections(enable_protections, pair, current_time) self.run_protections(enable_protections, pair, current_time)
self.wallets.update()
# 5. Cancel expired buy/sell orders. # 5. Cancel expired buy/sell orders.
if self.check_order_cancel(trade, current_time): if self.check_order_cancel(trade, current_time):