From 1cfa04927dcfe2db74e814a3aee74e269497467c Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Fri, 5 Aug 2022 19:05:05 -0400 Subject: [PATCH] Lol, handle failed-to-cancel statuses.. --- piker/brokers/ib/broker.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/piker/brokers/ib/broker.py b/piker/brokers/ib/broker.py index 1bc4d632..b2d6bd0d 100644 --- a/piker/brokers/ib/broker.py +++ b/piker/brokers/ib/broker.py @@ -823,6 +823,14 @@ async def deliver_trade_events( # unwrap needed data from ib_insync internal types trade: Trade = item status: OrderStatus = trade.orderStatus + status_key = status.status.lower() + + # double check there is no error when + # cancelling.. gawwwd + if status_key == 'cancelled': + last_log = trade.log[-1] + if last_log.message: + status_key = trade.log[-2].status # skip duplicate filled updates - we get the deats # from the execution details event @@ -833,7 +841,7 @@ async def deliver_trade_events( account=accounts_def.inverse[trade.order.account], # everyone doin camel case.. - status=status.status.lower(), # force lower case + status=status_key, # force lower case filled=status.filled, reason=status.whyHeld,