I think I have now isolated the remaining issue.

I ran a minimal GET_POSITION diagnostic with IB diagnostics level 4.

The IB plugin clearly receives my actual open positions from TWS:

!U4934740 XBI-STK--0.00--ARCA/-XBI-USD
!U4934740 XLI-STK--0.00--ARCA/-XLI-USD
!U4934740 VOO-STK--0.00--ARCA/-VOO-USD
!U4934740 VGK-STK--0.00--ARCA/-VGK-USD
!U4934740 IGM-STK--0.00--ARCA/-IGM-USD
!U4934740 SMH-STK--0.00--NASDAQ/-NMS-USD

These are indeed my current positions in TWS.

However, GET_POSITION returns zero for all of them:

XBI Position=0 Avg=0.00
XLI Position=0 Avg=0.00
VOO Position=0 Avg=0.00
VGK Position=0 Avg=0.00
IGM Position=0 Avg=0.00
SMH Position=0 Avg=0.00

I also tested XBI separately with several symbol variants:

XBI
XBI-STK-SMART-USD
XBI-STK-SMART/ARCA-USD
XBI-STK-ARCA-USD

All returned 0.

TWS confirms XBI has:
Exchange: SMART
Primary Exchange: ARCA
Currency: USD

So it appears that TWS position callbacks reach the IB plugin correctly, but GET_POSITION does not match/return them.

This also explains why Z9's rebalance dialog shows all current positions as:

old 0

even though those positions exist in the IB account.

Could this be an IB plugin GET_POSITION issue in the current 3.11 build?


I am using latest Zorro S build with TWS.