Refresh open_rate and stoploss on order replacement.

This commit is contained in:
eSeR1805 2022-05-14 16:37:04 +03:00
parent 8e9384e8e6
commit 1c20fb7638
No known key found for this signature in database
GPG Key ID: BA53686259B46936
2 changed files with 6 additions and 3 deletions

View File

@ -780,6 +780,8 @@ class Backtesting:
# interest_rate=interest_rate,
orders=[],
)
elif trade.nr_of_successful_entries == 0:
trade.open_rate = propose_rate
trade.adjust_stop_loss(trade.open_rate, self.strategy.stoploss, initial=True)
@ -940,6 +942,8 @@ class Backtesting:
requested_rate=requested_rate,
requested_stake=(order.remaining * order.price),
direction='short' if trade.is_short else 'long')
trade.adjust_stop_loss(trade.open_rate, self.strategy.stoploss,
initial=False, refresh=True)
else:
# assumption: there can't be multiple open entry orders at any given time
return (trade.nr_of_successful_entries == 0)

View File

@ -491,7 +491,7 @@ class LocalTrade():
self.stoploss_last_update = datetime.utcnow()
def adjust_stop_loss(self, current_price: float, stoploss: float,
initial: bool = False) -> None:
initial: bool = False, refresh: bool = False) -> None:
"""
This adjusts the stop loss to it's most recently observed setting
:param current_price: Current rate the asset is traded
@ -516,8 +516,7 @@ class LocalTrade():
new_loss = max(self.liquidation_price, new_loss)
# no stop loss assigned yet
if self.initial_stop_loss_pct is None:
logger.debug(f"{self.pair} - Assigning new stoploss...")
if self.initial_stop_loss_pct is None or refresh:
self._set_stop_loss(new_loss, stoploss)
self.initial_stop_loss = new_loss
self.initial_stop_loss_pct = -1 * abs(stoploss)