ib-insync


Nameib-insync JSON
Version 0.9.86 PyPI version JSON
download
home_pagehttps://github.com/erdewit/ib_insync
SummaryPython sync/async framework for Interactive Brokers API
upload_time2023-07-02 12:43:31
maintainer
docs_urlNone
authorEwald R. de Wit
requires_python>=3.6
licenseBSD
keywords ibapi tws asyncio jupyter interactive brokers async
VCS
bugtrack_url
requirements eventkit nest_asyncio dataclasses backports.zoneinfo
Travis-CI No Travis.
coveralls test coverage No coveralls.
            |Build| |Group| |PyVersion| |Status| |PyPiVersion| |CondaVersion| |License| |Downloads| |Docs|

Introduction
============

The goal of the IB-insync library is to make working with the
`Trader Workstation API <http://interactivebrokers.github.io/tws-api/>`_
from Interactive Brokers as easy as possible.

The main features are:

* An easy to use linear style of programming;
* An `IB component <https://ib-insync.readthedocs.io/api.html#module-ib_insync.ib>`_
  that automatically keeps in sync with the TWS or IB Gateway application;
* A fully asynchonous framework based on
  `asyncio <https://docs.python.org/3/library/asyncio.html>`_
  and
  `eventkit <https://github.com/erdewit/eventkit>`_
  for advanced users;
* Interactive operation with live data in Jupyter notebooks.

Be sure to take a look at the
`notebooks <https://ib-insync.readthedocs.io/notebooks.html>`_,
the `recipes <https://ib-insync.readthedocs.io/recipes.html>`_
and the `API docs <https://ib-insync.readthedocs.io/api.html>`_.


Installation
------------

::

    pip install ib_insync

Requirements:

* Python 3.6 or higher;
* A running TWS or IB Gateway application (version 1023 or higher).
  Make sure the
  `API port is enabled <https://interactivebrokers.github.io/tws-api/initial_setup.html>`_
  and 'Download open orders on connection' is checked.

The ibapi package from IB is not needed.

Example
-------

This is a complete script to download historical data:

.. code-block:: python

    from ib_insync import *
    # util.startLoop()  # uncomment this line when in a notebook

    ib = IB()
    ib.connect('127.0.0.1', 7497, clientId=1)

    contract = Forex('EURUSD')
    bars = ib.reqHistoricalData(
        contract, endDateTime='', durationStr='30 D',
        barSizeSetting='1 hour', whatToShow='MIDPOINT', useRTH=True)

    # convert to pandas dataframe (pandas needs to be installed):
    df = util.df(bars)
    print(df)

Output::

                       date      open      high       low     close  volume  \
    0   2019-11-19 23:15:00  1.107875  1.108050  1.107725  1.107825      -1
    1   2019-11-20 00:00:00  1.107825  1.107925  1.107675  1.107825      -1
    2   2019-11-20 01:00:00  1.107825  1.107975  1.107675  1.107875      -1
    3   2019-11-20 02:00:00  1.107875  1.107975  1.107025  1.107225      -1
    4   2019-11-20 03:00:00  1.107225  1.107725  1.107025  1.107525      -1
    ..                  ...       ...       ...       ...       ...     ...
    705 2020-01-02 14:00:00  1.119325  1.119675  1.119075  1.119225      -1


Documentation
-------------

The complete `API documentation <https://ib-insync.readthedocs.io/api.html>`_.

`Changelog <https://ib-insync.readthedocs.io/changelog.html>`_.

Discussion
----------

The `insync user group <https://groups.io/g/insync>`_ is the place to discuss
IB-insync and anything related to it.

Disclaimer
----------

The software is provided on the conditions of the simplified BSD license.

This project is not affiliated with Interactive Brokers Group, Inc.'s.

Good luck and enjoy,

:author: Ewald de Wit <ewald.de.wit@gmail.com>

.. _`Interactive Brokers Python API`: http://interactivebrokers.github.io

.. |Group| image:: https://img.shields.io/badge/groups.io-insync-green.svg
   :alt: Join the user group
   :target: https://groups.io/g/insync

.. |PyPiVersion| image:: https://img.shields.io/pypi/v/ib_insync.svg
   :alt: PyPi
   :target: https://pypi.python.org/pypi/ib_insync

.. |CondaVersion| image:: https://img.shields.io/conda/vn/conda-forge/ib-insync.svg
   :alt: Conda
   :target: https://anaconda.org/conda-forge/ib-insync

.. |PyVersion| image:: https://img.shields.io/badge/python-3.6+-blue.svg
   :alt:

.. |Status| image:: https://img.shields.io/badge/status-beta-green.svg
   :alt:

.. |License| image:: https://img.shields.io/badge/license-BSD-blue.svg
   :alt:

.. |Docs| image:: https://img.shields.io/badge/Documentation-green.svg
   :alt: Documentation
   :target: https://ib-insync.readthedocs.io/api.html

.. |Downloads| image:: https://pepy.tech/badge/ib-insync
   :alt: Number of downloads
   :target: https://pepy.tech/project/ib-insync

.. |Build| image:: https://github.com/erdewit/ib_insync/actions/workflows/test.yml/badge.svg?branch=master
   :target: https://github.com/erdewit/ib_insync/actions

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/erdewit/ib_insync",
    "name": "ib-insync",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "ibapi tws asyncio jupyter interactive brokers async",
    "author": "Ewald R. de Wit",
    "author_email": "ewald.de.wit@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/55/bb/733d5c81c8c2f54e90898afc7ff3a99f4d53619e6917c848833f9cc1ab56/ib_insync-0.9.86.tar.gz",
    "platform": null,
    "description": "|Build| |Group| |PyVersion| |Status| |PyPiVersion| |CondaVersion| |License| |Downloads| |Docs|\n\nIntroduction\n============\n\nThe goal of the IB-insync library is to make working with the\n`Trader Workstation API <http://interactivebrokers.github.io/tws-api/>`_\nfrom Interactive Brokers as easy as possible.\n\nThe main features are:\n\n* An easy to use linear style of programming;\n* An `IB component <https://ib-insync.readthedocs.io/api.html#module-ib_insync.ib>`_\n  that automatically keeps in sync with the TWS or IB Gateway application;\n* A fully asynchonous framework based on\n  `asyncio <https://docs.python.org/3/library/asyncio.html>`_\n  and\n  `eventkit <https://github.com/erdewit/eventkit>`_\n  for advanced users;\n* Interactive operation with live data in Jupyter notebooks.\n\nBe sure to take a look at the\n`notebooks <https://ib-insync.readthedocs.io/notebooks.html>`_,\nthe `recipes <https://ib-insync.readthedocs.io/recipes.html>`_\nand the `API docs <https://ib-insync.readthedocs.io/api.html>`_.\n\n\nInstallation\n------------\n\n::\n\n    pip install ib_insync\n\nRequirements:\n\n* Python 3.6 or higher;\n* A running TWS or IB Gateway application (version 1023 or higher).\n  Make sure the\n  `API port is enabled <https://interactivebrokers.github.io/tws-api/initial_setup.html>`_\n  and 'Download open orders on connection' is checked.\n\nThe ibapi package from IB is not needed.\n\nExample\n-------\n\nThis is a complete script to download historical data:\n\n.. code-block:: python\n\n    from ib_insync import *\n    # util.startLoop()  # uncomment this line when in a notebook\n\n    ib = IB()\n    ib.connect('127.0.0.1', 7497, clientId=1)\n\n    contract = Forex('EURUSD')\n    bars = ib.reqHistoricalData(\n        contract, endDateTime='', durationStr='30 D',\n        barSizeSetting='1 hour', whatToShow='MIDPOINT', useRTH=True)\n\n    # convert to pandas dataframe (pandas needs to be installed):\n    df = util.df(bars)\n    print(df)\n\nOutput::\n\n                       date      open      high       low     close  volume  \\\n    0   2019-11-19 23:15:00  1.107875  1.108050  1.107725  1.107825      -1\n    1   2019-11-20 00:00:00  1.107825  1.107925  1.107675  1.107825      -1\n    2   2019-11-20 01:00:00  1.107825  1.107975  1.107675  1.107875      -1\n    3   2019-11-20 02:00:00  1.107875  1.107975  1.107025  1.107225      -1\n    4   2019-11-20 03:00:00  1.107225  1.107725  1.107025  1.107525      -1\n    ..                  ...       ...       ...       ...       ...     ...\n    705 2020-01-02 14:00:00  1.119325  1.119675  1.119075  1.119225      -1\n\n\nDocumentation\n-------------\n\nThe complete `API documentation <https://ib-insync.readthedocs.io/api.html>`_.\n\n`Changelog <https://ib-insync.readthedocs.io/changelog.html>`_.\n\nDiscussion\n----------\n\nThe `insync user group <https://groups.io/g/insync>`_ is the place to discuss\nIB-insync and anything related to it.\n\nDisclaimer\n----------\n\nThe software is provided on the conditions of the simplified BSD license.\n\nThis project is not affiliated with Interactive Brokers Group, Inc.'s.\n\nGood luck and enjoy,\n\n:author: Ewald de Wit <ewald.de.wit@gmail.com>\n\n.. _`Interactive Brokers Python API`: http://interactivebrokers.github.io\n\n.. |Group| image:: https://img.shields.io/badge/groups.io-insync-green.svg\n   :alt: Join the user group\n   :target: https://groups.io/g/insync\n\n.. |PyPiVersion| image:: https://img.shields.io/pypi/v/ib_insync.svg\n   :alt: PyPi\n   :target: https://pypi.python.org/pypi/ib_insync\n\n.. |CondaVersion| image:: https://img.shields.io/conda/vn/conda-forge/ib-insync.svg\n   :alt: Conda\n   :target: https://anaconda.org/conda-forge/ib-insync\n\n.. |PyVersion| image:: https://img.shields.io/badge/python-3.6+-blue.svg\n   :alt:\n\n.. |Status| image:: https://img.shields.io/badge/status-beta-green.svg\n   :alt:\n\n.. |License| image:: https://img.shields.io/badge/license-BSD-blue.svg\n   :alt:\n\n.. |Docs| image:: https://img.shields.io/badge/Documentation-green.svg\n   :alt: Documentation\n   :target: https://ib-insync.readthedocs.io/api.html\n\n.. |Downloads| image:: https://pepy.tech/badge/ib-insync\n   :alt: Number of downloads\n   :target: https://pepy.tech/project/ib-insync\n\n.. |Build| image:: https://github.com/erdewit/ib_insync/actions/workflows/test.yml/badge.svg?branch=master\n   :target: https://github.com/erdewit/ib_insync/actions\n",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "Python sync/async framework for Interactive Brokers API",
    "version": "0.9.86",
    "project_urls": {
        "Homepage": "https://github.com/erdewit/ib_insync"
    },
    "split_keywords": [
        "ibapi",
        "tws",
        "asyncio",
        "jupyter",
        "interactive",
        "brokers",
        "async"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8ff328ea87be30570f4d6b8fd24380d12fa74e59467ee003755e76aeb29082b8",
                "md5": "c6ab725c22416b27b5f527d0cd543191",
                "sha256": "a61fbe56ff405d93d211dad8238d7300de76dd6399eafc04c320470edec9a4a4"
            },
            "downloads": -1,
            "filename": "ib_insync-0.9.86-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c6ab725c22416b27b5f527d0cd543191",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 72980,
            "upload_time": "2023-07-02T12:43:29",
            "upload_time_iso_8601": "2023-07-02T12:43:29.928639Z",
            "url": "https://files.pythonhosted.org/packages/8f/f3/28ea87be30570f4d6b8fd24380d12fa74e59467ee003755e76aeb29082b8/ib_insync-0.9.86-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "55bb733d5c81c8c2f54e90898afc7ff3a99f4d53619e6917c848833f9cc1ab56",
                "md5": "47ec46bb7eeff36c923f0926623132a4",
                "sha256": "73af602ca2463f260999970c5bd937b1c4325e383686eff301743a4de08d381e"
            },
            "downloads": -1,
            "filename": "ib_insync-0.9.86.tar.gz",
            "has_sig": false,
            "md5_digest": "47ec46bb7eeff36c923f0926623132a4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 69859,
            "upload_time": "2023-07-02T12:43:31",
            "upload_time_iso_8601": "2023-07-02T12:43:31.968758Z",
            "url": "https://files.pythonhosted.org/packages/55/bb/733d5c81c8c2f54e90898afc7ff3a99f4d53619e6917c848833f9cc1ab56/ib_insync-0.9.86.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-02 12:43:31",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "erdewit",
    "github_project": "ib_insync",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "eventkit",
            "specs": []
        },
        {
            "name": "nest_asyncio",
            "specs": []
        },
        {
            "name": "dataclasses",
            "specs": []
        },
        {
            "name": "backports.zoneinfo",
            "specs": []
        }
    ],
    "lcname": "ib-insync"
}
        
Elapsed time: 0.31145s