I "lost" an execution this morning. (Didn't receive a call to OnExecution.)
6/24/2009 7:08:23 AM|2|4|Order Event Warning:Attribute 'Outside Regular Trading Hours' is ignored based on the order type and destination. PlaceOrder is now being processed. 2109
6/24/2009 7:08:23 AM|1|32|Order='1775127453/' Name='MexitCSIQ|13|0' New State=Accepted Instrument='CSIQ' Action=BuyToCover Limit price=0 Stop price=0 Quantity=1,600 Type=Market Filled=0 Fill price=0 Error=NoError Native error=''
6/24/2009 7:08:23 AM|1|32|Order='1775127453/' Name='MexitCSIQ|13|0' New State=Working Instrument='CSIQ' Action=BuyToCover Limit price=0 Stop price=0 Quantity=1,600 Type=Market Filled=0 Fill price=0 Error=NoError Native error=''
6/24/2009 7:08:23 AM|1|32|Order='1775127453/' Name='MexitCSIQ|13|0' New State=PartFilled Instrument='CSIQ' Action=BuyToCover Limit price=0 Stop price=0 Quantity=1,600 Type=Market Filled=100 Fill price=12.3 Error=NoError Native error=''
6/24/2009 7:08:23 AM|1|16|Execution='CSIQ/0000d81a.4a421ae5.01.01' Instrument='CSIQ' Account='' Exchange=Default Price=12.3 Quantity=100 Market position=Long Operation=Insert Order='1775127453' Time='6/24/2009 7:08:23 AM'
6/24/2009 7:08:26 AM|1|32|Order='1775127453/' Name='MexitCSIQ|13|0' New State=PartFilled Instrument='CSIQ' Action=BuyToCover Limit price=0 Stop price=0 Quantity=1,600 Type=Market Filled=1000 Fill price=12.3 Error=NoError Native error=''
6/24/2009 7:08:26 AM|1|32|Order='1775127453/' Name='MexitCSIQ|13|0' New State=PartFilled Instrument='CSIQ' Action=BuyToCover Limit price=0 Stop price=0 Quantity=1,600 Type=Market Filled=1500 Fill price=12.3 Error=NoError Native error=''
6/24/2009 7:08:26 AM|1|16|Execution='CSIQ/0001142e.4a422ae3.01.01' Instrument='CSIQ' Account='' Exchange=Ise Price=12.3 Quantity=500 Market position=Long Operation=Insert Order='1775127453' Time='6/24/2009 7:08:26 AM'
6/24/2009 7:08:26 AM|1|16|Execution='CSIQ/00012c7d.4a41f383.01.01' Instrument='CSIQ' Account='' Exchange=Arca Price=12.31 Quantity=100 Market position=Long Operation=Insert Order='1775127453' Time='6/24/2009 7:08:26 AM'
6/24/2009 7:08:26 AM|1|32|Order='1775127453/' Name='MexitCSIQ|13|0' New State=Filled Instrument='CSIQ' Action=BuyToCover Limit price=0 Stop price=0 Quantity=1,600 Type=Market Filled=1600 Fill price=12.3006 Error=NoError Native error=''
6/24/2009 7:08:26 AM|1|64|Instrument='CSIQ' Account='' Avg price=11.90991085 Quantity=3,200 Market position=Short Operation=Update Currency=UsDollar
6/24/2009 7:08:26 AM|0|128|Unable to match order state to execution: Order='1775127453/' Name='MexitCSIQ|13|0' State=Filled Instrument='CSIQ' Action=BuyToCover Limit price=0 Stop price=0 Quantity=1,600 Strategy='ProtectDownMulti' Type=Market Tif=Gtc Oco='' Filled=1600 Fill price=12.3006 Token='004e9d2ec1014825ae4b39bb460d551f' Gtd='12/1/2099 12:00:00 AM' / Execution='CSIQ/0001142e.4a422ae3.01.01' Instrument='CSIQ' Account='' Name='MexitCSIQ|13|0' Exchange=Ise Price=12.3 Quantity=500 Market position=Long Commission=0 Order='1775127453' Time='6/24/2009 7:08:26 AM'
6/24/2009 7:08:26 AM|0|128|Unable to match order state to execution: Order='1775127453/' Name='MexitCSIQ|13|0' State=Filled Instrument='CSIQ' Action=BuyToCover Limit price=0 Stop price=0 Quantity=1,600 Strategy='ProtectDownMulti' Type=Market Tif=Gtc Oco='' Filled=1600 Fill price=12.3006 Token='004e9d2ec1014825ae4b39bb460d551f' Gtd='12/1/2099 12:00:00 AM' / Execution='CSIQ/00012c7d.4a41f383.01.01' Instrument='CSIQ' Account='' Name='MexitCSIQ|13|0' Exchange=Arca Price=12.31 Quantity=100 Market position=Long Commission=0 Order='1775127453' Time='6/24/2009 7:08:26 AM'
- I received OnOrderUpdate with PartFilled event, showing Filled = 100.
- I received OnExecution for those 100 shares. (So far so good)
- I received OnOrderUpdate with PartFilled, showing Filled = 1000
I did *not* receive OnExecution for the 900 shares that took me to 1000 shares. I've confirmed in TWS that there was indeed a 900 share execution. I also don't see the 900 share execution in my "executions" tab.
I only noticed this about an hour later, when I realized there was a discrepancy between my strategy + account positions.
I am using OnExecution to track actual fills, because I've been told before that with IB (and other brokers as well), OnOrderUpdate had some latent bugs that meant we couldn't trust it fully. OnExecution, as far as I knew, was perfect up until this point.
Note that about 15 seconds after this above order, I placed/filled two more orders for CSIQ (1600 shares each), and both of those worked fine.
Comment