Projects / trading-shim


The trading shim is a command line interpreter with a DBMS backend to the socket-based 'binary format' API of the Interactive Brokers' Trader Workstation. It uses mnemonic ASCII text commands to permit downstream clients to easily access several worldwide securities markets and exchanges (stocks, options, futures, bonds, and Forex) for "tick" data and history (intraday and EoD). It also allows clients to initiate and supervise trades of securities, manage accounts, and more.

Operating Systems

Recent releases

  •  01 Sep 2010 00:09

    Release Notes: 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.

    •  31 Jul 2010 03:40

      Release Notes: As part of ongoing work on extending API level version coverage, this release adds a generic tick type list argument to the market data command, enlarges the set of tick indices and labels, and extends the number of market tick message types. In brief: you may now add a generic tick type list, e.g.: [100, 101, 104, 106], as the last argument of your market data commands, after the contract expression, and before the semicolon; or not, as you wish. Note: there are other, not yet documented tick types, ticks, and tick message types that will be added later as discovered.

      •  30 Jun 2010 19:33

        Release Notes: This release adds the OrderLag configuration variable to control order pacing. This time delay works to avoid 2102 errors from the IB tws ("Unable to modify this order as it's still being processed"). This release validates the shim for server-side API levels of 46, 47, and 49 (IB seems to have skipped 48), and fixes the version mismatch warnings for market data.

        •  28 May 2010 22:33

          Release Notes: Work on history has continued. This release fixes a significant latency bug for history query answer processing, adds timers and maps to prevent history query pacing violations, and adds configuration variables with which to control the various timers. The related data-100528 symbols file, with the new database version embedded in that file --- so that it will work out of the box with the new shim --- is also available.

          •  30 Apr 2010 21:18

            Release Notes: This release adds various features to improve bulk history query processing, including the wait option in order to offload history query delay queueing from the client, and matching of history query requests with message answers in order to detect query cancels caused by pacing violations.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.