Don't accept too high fees, assuming they are erroneous
Forces fallback to "detection from trades"
This commit is contained in:
parent
6107878f4e
commit
181b88dc75
@ -1448,13 +1448,16 @@ class FreqtradeBot:
|
|||||||
fee_cost, fee_currency, fee_rate = self.exchange.extract_cost_curr_rate(order)
|
fee_cost, fee_currency, fee_rate = self.exchange.extract_cost_curr_rate(order)
|
||||||
logger.info(f"Fee for Trade {trade} [{order.get('side')}]: "
|
logger.info(f"Fee for Trade {trade} [{order.get('side')}]: "
|
||||||
f"{fee_cost:.8g} {fee_currency} - rate: {fee_rate}")
|
f"{fee_cost:.8g} {fee_currency} - rate: {fee_rate}")
|
||||||
|
if fee_rate is None or fee_rate < 0.02:
|
||||||
trade.update_fee(fee_cost, fee_currency, fee_rate, order.get('side', ''))
|
# Reject all fees that report as > 2%.
|
||||||
if trade_base_currency == fee_currency:
|
# These are most likely caused by a parsing bug in ccxt
|
||||||
# Apply fee to amount
|
# due to multiple trades (https://github.com/ccxt/ccxt/issues/8025)
|
||||||
return self.apply_fee_conditional(trade, trade_base_currency,
|
trade.update_fee(fee_cost, fee_currency, fee_rate, order.get('side', ''))
|
||||||
amount=order_amount, fee_abs=fee_cost)
|
if trade_base_currency == fee_currency:
|
||||||
return order_amount
|
# Apply fee to amount
|
||||||
|
return self.apply_fee_conditional(trade, trade_base_currency,
|
||||||
|
amount=order_amount, fee_abs=fee_cost)
|
||||||
|
return order_amount
|
||||||
return self.fee_detection_from_trades(trade, order, order_amount)
|
return self.fee_detection_from_trades(trade, order, order_amount)
|
||||||
|
|
||||||
def fee_detection_from_trades(self, trade: Trade, order: Dict, order_amount: float) -> float:
|
def fee_detection_from_trades(self, trade: Trade, order: Dict, order_amount: float) -> float:
|
||||||
|
Loading…
Reference in New Issue
Block a user