Whew – two releases in a row, I had not been checking IB’s site to see when they released a new API, but apparently they just did, so here is an update. In addition to the usual IB changes, which are documented here, I included some changes submitted by RLaumeyer to make creating contracts easier. Right now there is only an Option class and an Equity class, please submit classes you have created, and I will fold them in. The same goes for any other user changes, submit them, and I will try to incorporate them.

Please download release 9.3.0.3 here.

I’m just trying a few lines here:
Order o1 = new Order();
o1.OrderType = OrderType.Limit;
o1.OrderId = NextOrderId;
o1.LmtPrice = 810;
o1.TotalQuantity = 1;
o1.Action = ActionSide.Buy;
client.PlaceOrder(o1.OrderId, ER2, o1);
and I get exception
“A first chance exception of type ‘System.IO.IOException’ occured in System.dll”
when it gets to PlaceOrder.
This whole OrderID system IB sets up is kind of a mess. Do you have any insight as to under what conditions NextValidId is called. It’s most convenient for me to send out orders in batches of about 30 every 7 seconds but this ID thing is making this more tedious than I think it has to be. Let me know if you have a good way to do this.
IB’s Order ID system is less than fantastic (hah!) but the nextOrderID event is called right after connect, and in response to ReqNextOrderID. Once you have the order id, it is specific to your client id, so your app simply has to increment this ID by one each time you submit an order.
As far as why you had the error, I am not exactly sure - I can try this tonight, but I think if you look at the example C# program, you should see a place order that works fine.