Verify if fee for this side has been updated
This commit is contained in:
parent
6b33d5af1e
commit
6d620ba1f6
@ -1174,7 +1174,7 @@ class FreqtradeBot:
|
|||||||
if order_amount is None:
|
if order_amount is None:
|
||||||
order_amount = order['amount']
|
order_amount = order['amount']
|
||||||
# Only run for closed orders
|
# Only run for closed orders
|
||||||
if trade.fee_open_currency is not None or order['status'] == 'open':
|
if trade.fee_updated(order['side']) or order['status'] == 'open':
|
||||||
return order_amount
|
return order_amount
|
||||||
|
|
||||||
trade_base_currency = self.exchange.get_pair_base_currency(trade.pair)
|
trade_base_currency = self.exchange.get_pair_base_currency(trade.pair)
|
||||||
|
@ -394,6 +394,15 @@ class Trade(_DECL_BASE):
|
|||||||
if fee_rate is not None:
|
if fee_rate is not None:
|
||||||
self.fee_close = fee_rate
|
self.fee_close = fee_rate
|
||||||
|
|
||||||
|
def fee_updated(self, side: str) -> bool:
|
||||||
|
"""
|
||||||
|
Verify if this side (buy / sell) has already been updated
|
||||||
|
"""
|
||||||
|
if side == 'buy':
|
||||||
|
return self.fee_open_currency is not None
|
||||||
|
elif side == 'sell':
|
||||||
|
return self.fee_close_currency is not None
|
||||||
|
|
||||||
def _calc_open_trade_price(self) -> float:
|
def _calc_open_trade_price(self) -> float:
|
||||||
"""
|
"""
|
||||||
Calculate the open_rate including open_fee.
|
Calculate the open_rate including open_fee.
|
||||||
|
@ -890,8 +890,12 @@ def test_update_fee(fee):
|
|||||||
fee_currency = 'BTC'
|
fee_currency = 'BTC'
|
||||||
fee_rate = 0.0075
|
fee_rate = 0.0075
|
||||||
assert trade.fee_open_currency is None
|
assert trade.fee_open_currency is None
|
||||||
|
assert not trade.fee_updated('buy')
|
||||||
|
assert not trade.fee_updated('sell')
|
||||||
|
|
||||||
trade.update_fee(fee_cost, fee_currency, fee_rate, 'buy')
|
trade.update_fee(fee_cost, fee_currency, fee_rate, 'buy')
|
||||||
|
assert trade.fee_updated('buy')
|
||||||
|
assert not trade.fee_updated('sell')
|
||||||
assert trade.fee_open_currency == fee_currency
|
assert trade.fee_open_currency == fee_currency
|
||||||
assert trade.fee_open_cost == fee_cost
|
assert trade.fee_open_cost == fee_cost
|
||||||
assert trade.fee_open == fee_rate
|
assert trade.fee_open == fee_rate
|
||||||
@ -902,6 +906,8 @@ def test_update_fee(fee):
|
|||||||
|
|
||||||
fee_rate = 0.0076
|
fee_rate = 0.0076
|
||||||
trade.update_fee(fee_cost, fee_currency, fee_rate, 'sell')
|
trade.update_fee(fee_cost, fee_currency, fee_rate, 'sell')
|
||||||
|
assert trade.fee_updated('buy')
|
||||||
|
assert trade.fee_updated('sell')
|
||||||
assert trade.fee_close == 0.0076
|
assert trade.fee_close == 0.0076
|
||||||
assert trade.fee_close_cost == fee_cost
|
assert trade.fee_close_cost == fee_cost
|
||||||
assert trade.fee_close == fee_rate
|
assert trade.fee_close == fee_rate
|
||||||
|
Loading…
Reference in New Issue
Block a user