Trading-shim is a database driven connector API that provides a persistent store SQL backend database.
The trading shim is a command-line and dbms controlled interface to the socket-based API of Interactive Brokers' Trader Workstation, abbreviated as the IB tws socket api, or simply tws api. That api has a number of advantages for our purposes, including the freely available Trader Workstation, comprehensive feeds and archives for tick and history data, a paper account ideal for software testing, and low transaction costs.
The downstream drives the shim by making changes to the database. The shim consults the database at initial startup, and from time to time thereafter when signalled by brief, simple commands. This combination of database and shim integrate persistent database storage with the tws. The command interface also serves as an alternative to the existing tws gui interfaces, to permit you to use downstream programs, whether gui or not, to drive the tws through its api.
The shim is written in C++, and though developed on Linux, should run on any modern Unix-like platform. It's free software; we've released the trading shim in source form under the GNU General Public License in order to reach the widest possible community of users.
What's New in This Release: [ read full changelog ]
· The shim now provides multi-version support for API levels 17 through 49 (the current IB TWS server API level) so that message formats as parsed vary to accord with the output of the IB TWS for that API level. This provides access to a number of previously inaccessible message attributes, such as the commission information included with the newer versions of the open order message.