experimental.sell_fullfilled_at_roi bug fix for 0 duration
This commit is contained in:
parent
06c329abec
commit
b27d3e6ef0
@ -146,7 +146,6 @@ class Analyze(object):
|
|||||||
|
|
||||||
latest = dataframe.iloc[-1]
|
latest = dataframe.iloc[-1]
|
||||||
|
|
||||||
|
|
||||||
# Check if dataframe is out of date
|
# Check if dataframe is out of date
|
||||||
signal_date = arrow.get(latest['date'])
|
signal_date = arrow.get(latest['date'])
|
||||||
interval_minutes = constants.TICKER_INTERVAL_MINUTES[interval]
|
interval_minutes = constants.TICKER_INTERVAL_MINUTES[interval]
|
||||||
@ -253,10 +252,16 @@ class Analyze(object):
|
|||||||
import math
|
import math
|
||||||
return math.floor(f * 10 ** n) / 10 ** n
|
return math.floor(f * 10 ** n) / 10 ** n
|
||||||
|
|
||||||
def get_roi_rate(self, trade: Trade) -> float:
|
def get_roi_rate(self, trade: Trade, sell_rate: float) -> float:
|
||||||
|
"""
|
||||||
|
Calculates sell rate based on roi
|
||||||
|
"""
|
||||||
current_time = datetime.utcnow()
|
current_time = datetime.utcnow()
|
||||||
time_diff = (current_time.timestamp() - trade.open_date.timestamp()) / 60
|
time_diff = (current_time.timestamp() - trade.open_date.timestamp()) / 60
|
||||||
for duration, threshold in self.strategy.minimal_roi.items():
|
for duration, threshold in self.strategy.minimal_roi.items():
|
||||||
if time_diff > duration:
|
if time_diff > duration:
|
||||||
roi_rate = (trade.open_rate * (1 + threshold)) * (1+(2.1*get_fee(trade.pair)))
|
roi_rate = self.trunc_num((trade.open_rate * (1 + threshold)) * (1+(2.1*get_fee(trade.pair))), 8)
|
||||||
return self.trunc_num(roi_rate, 8)
|
logger.info('trying to selling at roi rate %0.8f', roi_rate)
|
||||||
|
return roi_rate
|
||||||
|
break
|
||||||
|
return sell_rate
|
||||||
|
@ -93,7 +93,7 @@ CONF_SCHEMA = {
|
|||||||
'properties': {
|
'properties': {
|
||||||
'use_sell_signal': {'type': 'boolean'},
|
'use_sell_signal': {'type': 'boolean'},
|
||||||
'sell_profit_only': {'type': 'boolean'},
|
'sell_profit_only': {'type': 'boolean'},
|
||||||
'sell_fullfilled_at_roi' : {'type': 'boolean'}
|
'sell_fullfilled_at_roi': {'type': 'boolean'}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'telegram': {
|
'telegram': {
|
||||||
|
@ -466,8 +466,7 @@ with limit `{buy_limit:.8f} ({stake_amount:.6f} \
|
|||||||
|
|
||||||
is_set_fullfilled_at_roi = self.config.get('experimental', {}).get('sell_fullfilled_at_roi', False)
|
is_set_fullfilled_at_roi = self.config.get('experimental', {}).get('sell_fullfilled_at_roi', False)
|
||||||
if is_set_fullfilled_at_roi:
|
if is_set_fullfilled_at_roi:
|
||||||
sell_rate = self.analyze.get_roi_rate(trade)
|
sell_rate = self.analyze.get_roi_rate(trade, sell_rate)
|
||||||
logger.info('trying to selling at roi rate %0.8f', sell_rate)
|
|
||||||
|
|
||||||
if 'ask_strategy' in self.config and self.config['ask_strategy'].get('use_book_order', False):
|
if 'ask_strategy' in self.config and self.config['ask_strategy'].get('use_book_order', False):
|
||||||
logger.info('Using order book for selling...')
|
logger.info('Using order book for selling...')
|
||||||
|
Loading…
Reference in New Issue
Block a user