Modified files for partial trades operation
Signed-off-by: Es Fem <esfem.es@gmail.com>
This commit is contained in:
parent
4b7d8c4419
commit
012c318c1e
@ -447,43 +447,6 @@ class Trade(_DECL_BASE):
|
||||
raise ValueError(f'Unknown order type: {order_type}')
|
||||
cleanup_db()
|
||||
|
||||
def partial_update(self, order: Dict) -> None:
|
||||
"""
|
||||
Updates this entity with amount and actual open/close rates,
|
||||
modified to support multiple orders keeping the trade opened
|
||||
:param order: order retrieved by exchange.fetch_order()
|
||||
:return: None
|
||||
|
||||
"""
|
||||
order_type = order['type']
|
||||
|
||||
if order_type in ('market', 'limit') and order['side'] == 'buy':
|
||||
# Update open rate and actual amount
|
||||
self.open_rate = self.average_open_rate(order['filled'],
|
||||
safe_value_fallback(order, 'average', 'price'),
|
||||
self.amount, self.open_rate)
|
||||
self.amount = Decimal(self.amount or 0) + Decimal(order['filled'])
|
||||
self.decrease_wallet(self, Decimal(order['filled']), self.open_rate)
|
||||
if self.is_open and order['filled'] != 0:
|
||||
logger.info(f'{order_type.upper()}_Partial BUY has been fulfilled for {self}.')
|
||||
self.open_order_id = None
|
||||
|
||||
elif order_type in ('market', 'limit') and order['side'] == 'sell':
|
||||
self.amount = (Decimal(self.amount or 0) - Decimal(order['filled']))
|
||||
if self.is_open and order['filled'] != 0:
|
||||
logger.info(f'{order_type.upper()}_Partial SELL has been fulfilled for {self}.')
|
||||
self.partial_close(self, safe_value_fallback(order, 'average', 'price'))
|
||||
self.increase_wallet(self, Decimal(order['filled']), order['price'])
|
||||
|
||||
elif order_type in ('stop_loss_limit', 'stop-loss', 'stop'):
|
||||
self.stoploss_order_id = None
|
||||
self.close_rate_requested = self.stop_loss
|
||||
if self.is_open:
|
||||
logger.info(f'{order_type.upper()} is hit for {self}.')
|
||||
self.close(order['average'])
|
||||
else:
|
||||
raise ValueError(f'Unknown order type: {order_type}')
|
||||
cleanup_db()
|
||||
|
||||
def close(self, rate: float) -> None:
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user