Merge pull request #1 from xmatthias/bt_stop_attempt
Update stoploss handling for entry-order adjustment
This commit is contained in:
commit
cf001db396
@ -780,8 +780,6 @@ 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)
|
||||
|
||||
@ -814,11 +812,11 @@ class Backtesting:
|
||||
remaining=amount,
|
||||
cost=stake_amount + trade.fee_open,
|
||||
)
|
||||
trade.orders.append(order)
|
||||
if pos_adjust and self._get_order_filled(order.price, row):
|
||||
order.close_bt_order(current_time, trade)
|
||||
else:
|
||||
trade.open_order_id = str(self.order_id_counter)
|
||||
trade.orders.append(order)
|
||||
trade.recalc_trade_from_orders()
|
||||
|
||||
return trade
|
||||
@ -942,8 +940,6 @@ 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)
|
||||
|
@ -153,6 +153,7 @@ class Order(_DECL_BASE):
|
||||
and len(trade.select_filled_orders(trade.entry_side)) == 1):
|
||||
trade.open_rate = self.price
|
||||
trade.recalc_open_trade_value()
|
||||
trade.adjust_stop_loss(trade.open_rate, trade.stop_loss_pct, refresh=True)
|
||||
|
||||
@staticmethod
|
||||
def update_orders(orders: List['Order'], order: Dict[str, Any]):
|
||||
@ -502,7 +503,7 @@ class LocalTrade():
|
||||
if initial and not (self.stop_loss is None or self.stop_loss == 0):
|
||||
# Don't modify if called with initial and nothing to do
|
||||
return
|
||||
refresh = False if self.nr_of_successful_entries > 0 else refresh
|
||||
refresh = True if refresh and self.nr_of_successful_entries == 1 else False
|
||||
|
||||
leverage = self.leverage or 1.0
|
||||
if self.is_short:
|
||||
|
Loading…
Reference in New Issue
Block a user