Trading-shim HomepageWe're releasing the trading shim
TM to the financial markets research community in the hopes that
it will be useful, whether as a tool for data acquisition, a vehicle for
market research, or a starting point for learning and knowledge exchange.

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'.
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 shim consults the product database at initial startup, and from then on
uses in-memory lookup to translate brief text commands from the downstream
to the much longer binary requests of the tws api. It serializes the
resulting event stream and copies the text to any of a number of
user-selected output channels. The shim command interface provides an
alternative to the existing tws gui interfaces, permitting you to use
downstream programs, whether gui or not, to drive the tws through its api.

The shim is written in C++, and although developed on Linux, should compile
and run on any modern Unix-like platform. It is available and useful now. 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. Commercial licenses and support are also available.

Please fully explore this site,
read the README, and consider subscribing
to the 'ts-general' mailing list; the 'ts-announce' mailing list will be
very low volume, and Read Only to a ordinary subscriber, and consist of
at most 4 or 5 release announcements a month. We also periodically update a
record at which has an automated release
notification system covering this project as well.

All bug reports must end up in the bug tracker if they are to be addressed;
a well-formed bug report, with reproducing minimal cases is appreciated.
Often, our response is a request to 'upgrade to current'; Please take
systematic backups, and do testing against the freely available 'paper'
trading accounts which accompany or are freely available to every IB account
holder. You alone are responsible for the determination on when, after what
testing, and how this software is used.

Please be aware that the shim is copyrighted code wholly under the GNU GPL; It was initially released
under GPLv2 or later (note especially paragraphs 11 and 12); and was
re-licensed to GPLv3 or later in July 2007. The term 'trading shim' is our
trademark. Please understand the following:

absent a prior, formal, written, paid up and commercial
license and support contract, there is no warranty, expressed or implied,
nor guarantee against any sort of perceived adverse result, regardless of
any prior contrary request for assurance; no person except the officers of
trading-shim.com, LLC may in any fashion vary this term, except that it be
by a writing countersigned by at least two such officers of
trading-shim.com, LLC

The shim is the result of substantial and ongoing work to implement a
thoughtfully designed, database enabled interface to the IB tws. We
acknowledge the efforts of others primarily oriented to automated trading or data visualization,
and instead focus on design for scalability to hundreds of simultaneous
lines of inquiry into the ECN markets.

We are using the trading shim to explore a gamut of research interests in
the context of a non-trivial system; e.g., we note conflicts between the
theories trusted by fundamentals investors, and the practical results
observed by technical traders in reality; and we are exploring software
engineering issues related to mixed paradigm programming, design patterns,
and test-driven development.