Apply special case for negative ROI

This commit is contained in:
Matthias
2019-12-07 15:18:12 +01:00
parent 1e6f9f9fe2
commit 3163cbdf8a
2 changed files with 12 additions and 6 deletions

View File

@@ -267,7 +267,7 @@ class Backtesting:
# Set close_rate to stoploss
closerate = trade.stop_loss
elif sell.sell_type == (SellType.ROI):
roi = self.strategy.min_roi_reached_entry(trade_dur)
roi_entry, roi = self.strategy.min_roi_reached_entry(trade_dur)
if roi is not None:
# - (Expected abs profit + open_rate + open_fee) / (fee_close -1)
closerate = - (trade.open_rate * roi + trade.open_rate *
@@ -275,8 +275,14 @@ class Backtesting:
# Use the maximum between closerate and low as we
# cannot sell outside of a candle.
# Applies when using {"xx": -1} as roi to force sells after xx minutes
# Applies when a new ROI setting comes in place and the whole candle is above that.
closerate = max(closerate, sell_row.low)
if roi == -1 and roi_entry % self.timeframe_mins == 0:
# When forceselling with ROI=-1, the roi-entry will always be "on the entry".
# If that entry is a multiple of the timeframe (so on open)
# - we'll use open instead of close
closerate = max(closerate, sell_row.open)
else:
# This should not be reached...
closerate = sell_row.open