Merge pull request #6561 from adrianceding/fix_taker_stake_amount

Unified taker and maker's stake amount calculation logic
This commit is contained in:
Matthias
2022-03-21 19:07:00 +01:00
committed by GitHub
4 changed files with 23 additions and 18 deletions

View File

@@ -661,16 +661,11 @@ class FreqtradeBot(LoggingMixin):
self.exchange.name, order['filled'], order['amount'],
order['remaining']
)
stake_amount = order['cost']
amount = safe_value_fallback(order, 'filled', 'amount')
enter_limit_filled_price = safe_value_fallback(order, 'average', 'price')
# in case of FOK the order may be filled immediately and fully
elif order_status == 'closed':
# TODO-lev: Evaluate this. Why is setting stake_amount here necessary?
# it should never change in theory - and in case of leveraged orders,
# may be the leveraged amount.
stake_amount = order['cost']
amount = safe_value_fallback(order, 'filled', 'amount')
enter_limit_filled_price = safe_value_fallback(order, 'average', 'price')

View File

@@ -847,7 +847,10 @@ class LocalTrade():
def recalc_trade_from_orders(self):
# We need at least 2 entry orders for averaging amounts and rates.
# TODO: this condition could probably be removed
if len(self.select_filled_orders(self.enter_side)) < 2:
self.stake_amount = self.amount * self.open_rate / self.leverage
# Just in case, still recalc open trade value
self.recalc_open_trade_value()
return