Skip to main content
Overview
========

`Interactive Brokers`_ Python API, auto generated from C++ API using `SWIG`_.

Latest version: 0.4.1 (TWS API v9.68)

Install
=======

Use pip (recommended)::

$ pip install swigibpy

Alternatively download your archive of choice and run::

$ python setup.py install

Notes for Windows Users
=======================

swigibpy just provides a wrapper around the TWS C++ API so this needs to be
compiled for your target platform during installation. While this should
'just work' for Linux and OSX, Windows users might need to do some extra work.

Compile with MinGW
------------------

Download and install `MinGW`_ and follow the steps to `add MinGW
to your path`_. Note there is a `compatability problem`_ between the latest
version of MinGW and disutils so it is recommended to install an older version
until this is resolved (mingw-get-inst-20110802.exe has been known to work).

To get pip to use MinGW as the compiler edit or create a
file named ``distutils.cfg`` in ``[PYTHON LOCATION]\Lib\distutils`` where
``[PYTHON LOCATION]`` is the path to your Python install, e.g. ``C:\Python27``.
Add the following to ``distutils.cfg``::

[build]
compiler=mingw32

then use the pip command above and with a bit of luck, you're done!

Alternatively you can download and build the package directly. To build and
install use::

$ python setup.py build -c mingw32
$ python setup.py install

This has been verified to work using MinGW and Python 2.7 on Windows 7, Vista,
and XP.

Compile with Visual Studio
--------------------------

Several users have reported success building swigibpy with Visual Studio, with
a few caveats:

- Distutils has issues building with anything later than Visual Studio 2008
(version 9).
- Visual Studio 11 doesn't like the ``/MD`` compile flag, which distutils adds.
For a workaround see `here`_.

Usage
=====

To use simply import the swigibpy module. The minimum you will need to do is
define an ``EWrapper`` sub-class whose methods will be invoked when a message
is received from TWS, see the `examples`_ for more.

By default swigibpy will automatically poll TWS for messages, see `Notes`_ for
more about this.

For API reference refer to the `C++ API documentation`_.

Notes
-----

The ``yield`` parameter in ``CommissionReport`` clashes with a Python reserved
keyword so it is renamed to ``_yield``.

By default swigibpy will create a background thread to automatically poll TWS
for messages. If you wish to disable this behaviour and handle polling
yourself use the ``poll_auto`` argument when calling ``eConnect``::

tws.eConnect("", 7496, 42, poll_auto=False)

The TWS C++ API performs synchronous I/O using socket receive, swigibpy does
not alter this behaviour (hence the background thread).

Apart from a few trivial `patches`_ to aid compilation and interoperability
with Python swigibpy does not alter the TWS C++ API code in any way.

Develop
=======

Contributions are welcome! For development you can build the extension in the
current dir::

$ python setup.py build_ext --build-lib .

The majority of the swigibpy code is auto-generated by SWIG and swigibpy also
includes a number of trivial patches for TWS's C++ code. The TWS API included
in the repository has already been patched and the SWIG code has already been
generated, but if you need to rerun these steps the commands are::

$ python setup.py swigify

to regenerate the SWIG wrappers (SWIG 2.0+ required), and::

$ python setup.py patchify

to reapply the patches to the TWS API (specify the option ``-r`` if you want to
un-apply the patches and get back to unaltered TWS code).

License
=======

swigibpy original code is free software under the New BSD license.

Interactive Brokers propriety C++ API is copyright Interactive Brokers LLC.
swigibpy is in no way supported or endorsed by Interactive Brokers LLC.

--------------

.. _Interactive Brokers: http://www.interactivebrokers.co.uk/
.. _SWIG: http://www.swig.org/
.. _C++ API documentation: http://www.interactivebrokers.com/en/software/api/api.htm
.. _MinGW: http://www.mingw.org/
.. _add MinGW to your path: http://www.mingw.org/wiki/Getting_Started#toc5
.. _compatability problem: http://bugs.python.org/issue12641
.. _here: https://github.com/Komnomnomnom/swigibpy/issues/2
.. _patches: https://github.com/Komnomnomnom/swigibpy/tree/master/patches
.. _examples: https://github.com/Komnomnomnom/swigibpy/tree/master/examples

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swigibpy-0.4.1.tar.gz (169.9 kB view details)

Uploaded Source

File details

Details for the file swigibpy-0.4.1.tar.gz.

File metadata

  • Download URL: swigibpy-0.4.1.tar.gz
  • Upload date:
  • Size: 169.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for swigibpy-0.4.1.tar.gz
Algorithm Hash digest
SHA256 ae27ac45eb2f61032113175bef38d9f8714283179d726aeb12c383d814aa4109
MD5 2dee942f21c2e57ef50c024562005449
BLAKE2b-256 ea1ebe62bba0191ecea775916ec4d335a637babb501b60d5c8649cc6059b1912

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.1 This release

1 file

0.4

1 file

0.3

1 file

0.2.3

1 file

0.2.2

1 file

0.2.1

1 file

0.2

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page