I'm implementing a new algorithm and a new brokerage when I ran into this problem.

I cannot use Transactions.CancelOrder() to cancel an open order which came from previous (somewhat live) run via IBrokerage.GetOpenOrders(). I tried debugging and found out that BrokerageTransactionHandler's _orderTickets does not contain ticket of orders that haven't been submitted in this run. Order submitted and cancelled in the same run work fine.

I'm not sure it's my custom implementation of IBrokerage's fault or not that it refuses to add order ticket, or this is by design/limitation of the engine.

Please advise. Thank you.