IbPy - Interactive Brokers Python API
IbPy Released 15 Jun 2013
What is IbPy?
IbPy is a third-party implementation of the API used for accessing the Interactive Brokers on-line trading system. IbPy implements functionality that the Python programmer can use to connect to IB, request stock ticker data, submit orders for stocks and futures, and more.
What's new in this release?
TWS API version 9.70 now supported
Over 60% test coverage and growing
Fixed outstanding bugs in EReader generated source
Module ib.opt.logger moved to ib.lib.logger
Class ib.opt.Connection moved to new ib.opt.connection module
Added script to filter TWS log files; see demo/log_filter
Added ib.sym package to hold various symbolic constants
Many small enhancements to ib.opt package
Where can I get IbPy?
GitHub:
https://github.com/blampe/IbPy
Older versions of IbPy are available for download from Google Code:
https://code.google.com/p/ibpy/downloads/list
Project page:
http://code.google.com/p/ibpy/
How do I use IbPy?
See the IbPy wiki page "Getting Started with IbPy":
http://code.google.com/p/ibpy/wiki/GettingStarted
What are the requirements?
IbPy requires Python 2.5 or newer. Previous versions are not supported.
TWS requires a web browser capable of executing Sun(R) Java(tm) applets. TWS can also be started directly with Sun(R) Java(tm) and the stand-alone package supplied by Interactive Brokers.
What is Interactive Brokers?
From the page "About The Interactive Brokers Group" 2:
Interactive Brokers conducts its broker/dealer and proprietary trading businesses on 60 market centers worldwide. In its broker dealer agency business, IB provides direct access ("on line") trade execution and clearing services to institutional and professional traders for a wide variety of electronically traded products including options, futures, stocks, forex, and bonds worldwide. In its proprietary trading business IB engages in market making for its own account in about 6,500 different electronically traded products. Interactive Brokers Group and its affiliates now trade 19% of the world’s exchange traded equity options, and executes approximately 500,000 trades per day.
What is Python?
From the page "What is Python?" 1:
Python is an interpreted, interactive, object-oriented programming language. It is often compared to Tcl, Perl, Scheme or Java.
Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules are easily written in C or C++. Python is also usable as an extension language for applications that need a programmable interface.
The Python implementation is portable: it runs on many brands of UNIX, on Windows, DOS, OS/2, Mac, Amiga... If your favorite system isn't listed here, it may still be supported, if there's a C compiler for it. Ask around on comp.lang.python -- or just try compiling Python yourself.
The Python implementation is copyrighted but freely usable and distributable, even for commercial use.
What Else?
IbPy is not a product of Interactive Brokers, nor is this project affiliated with IB.
IbPy is installed with distutils. Refer to the Python distutils documentation for more information. The digest version is:
$ tar xzf IbPy-0.8.0-9.67.tar.gz
$ cd :release_root:
$ python setup.py install
The TWS demo system is available here:
http://interactivebrokers.com/cgi-pub/jtslink.pl?user_name=edemo
The stand-alone TWS and other API software is available from IB:
http://interactivebrokers.com/
IbPy is distributed under the New BSD License. See the LICENSE file in the release for details.
I'm very interested in your experience with IbPy. Please drop me an note with any feedback you have.
Troy Melhase