It really does depend on exactly what the application needs and just how many hoops they want to jump through to get stuff implemented. For intraday data - IB Hist data does not indicate when one day/session starts ends, or where volume should be reset, which can greatly complicate matters. For EOD data, the datafeed is basically useless since you can only get 5 days per request.
Yes, I agree that getting 1 days worth is not very clever. Much better to be able to request say 1000 bars. However it can be done if you know the market closing time for each market and the 'last date' time stamp in the request is after the close and before the open when you need other than the current days data. Like I said, I don't like the API, but it does work very reliably for me.
They do allow retrieval of 5 days, not just one (just to clarify). As for knowing the market closing time, thats fine if you are programming for yourself and are trading just a few contracts. For a commercial application (NeoTicker, QuoteTracker, etc), that knowledge requires a whole separate system just to maintain it. There are dozens, if not hundreds of different timeframes for various securities traded by IB, so keeping track of all that is anything but trivial. And to top things off, the start/end times change! (as we found out recently) At least for us, having the session info available pragmatically would drastically reduce the complexity and likelihood of problems for the end user.
they should add some real type of peg order, through Inet, Arca or Brut. Now the peg funtionality is to simple, it is not floating with bid/offer up and down.
Completely agree about trading hours info. This is available in TWS, but not in the API unless things have recently changed. The API should be enhanced so that trading hours are returned with other contact details in the ContractDetails object in response to reqContractDetails ().
The change to market hotkey is nice, but I'm wondering why the pending orders page does not show what trade is still actually open. When you use the change to market function, all you see is a market order "pending" for you to transmit; however, the limit or stop order that you've converted to market is still open. Pending orders page will only show a market order waiting to be transmitted as well (same as main page). Shouldn't the pending page just show open orders as they still stand (whether held at exchange or IB servers), and not shift with any unsubmitted changes you make on the main TWS page?
- Add Open Interest - Add other fundamental data, particularly name, CUSIP/ISIN, ADV, float, shares out, dividend and ex-date. - Make the Contract Info->Description window configurable to display any column that can normally be displayed on a market data line (including those suggested above). Things that are non-static would obviously be snapshots. - When you add a new market data line using the keyboard, the row focus should land on the newly-added row when you're done. Currently, if you press the down-arrow key after doing this, you'll find yourself at the end of the page. This makes it hard to add multiple rows quickly with the keyboard. Similarly, after you delete a row, focus should land on the new row that moved up to it's place. After inserting a row, focus should be on the newly-inserted row.
Post a list of OTCBB issues traded in an Excel file so I could omit them from my universe selection early in the process.