use last order date to fill order.
This commit is contained in:
@@ -433,13 +433,20 @@ class LocalTrade:
|
|||||||
return self.amount
|
return self.amount
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def date_last_filled_utc(self) -> datetime:
|
def _date_last_filled_utc(self) -> Optional[datetime]:
|
||||||
""" Date of the last filled order"""
|
""" Date of the last filled order"""
|
||||||
orders = self.select_filled_orders()
|
orders = self.select_filled_orders()
|
||||||
if not orders:
|
if orders:
|
||||||
|
return max(o.order_filled_utc for o in orders if o.order_filled_utc)
|
||||||
|
return None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def date_last_filled_utc(self) -> datetime:
|
||||||
|
""" Date of the last filled order - or open_date if no orders are filled"""
|
||||||
|
dt_last_filled = self._date_last_filled_utc
|
||||||
|
if not dt_last_filled:
|
||||||
return self.open_date_utc
|
return self.open_date_utc
|
||||||
return max([self.open_date_utc,
|
return max([self.open_date_utc, dt_last_filled])
|
||||||
max(o.order_filled_utc for o in orders if o.order_filled_utc)])
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def open_date_utc(self):
|
def open_date_utc(self):
|
||||||
@@ -775,7 +782,7 @@ class LocalTrade:
|
|||||||
and marks trade as closed
|
and marks trade as closed
|
||||||
"""
|
"""
|
||||||
self.close_rate = rate
|
self.close_rate = rate
|
||||||
self.close_date = self.close_date or datetime.utcnow()
|
self.close_date = self.close_date or self._date_last_filled_utc or dt_now()
|
||||||
self.is_open = False
|
self.is_open = False
|
||||||
self.exit_order_status = 'closed'
|
self.exit_order_status = 'closed'
|
||||||
self.recalc_trade_from_orders(is_closing=True)
|
self.recalc_trade_from_orders(is_closing=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user