The ib_insync
package is build on top of the Python API
from Interactive Brokers. The objective is to make it as
easy as possible to use the API, without sacrificing any
functionality.
The main features are:
- An
IB
component that automatically keeps its state in sync with the world; - A sequential style of programming that is easy to understand for novice users (no more callbacks);
- A fully asynchonous framework based on asyncio for advanced users;
- Interactive operation with live data in Jupyter notebooks.
pip3 install -U ib_insync
Requirements:
- Python version 3.6 or higher;
- The Interactive Brokers Python API version 9.73.03 or higher;
- A running TWS or IB gateway application (version 963 or higher) with the API port enabled.
To install packages needed for the notebooks:
pip3 install -U PyQt5 quamash jupyter numpy pandas
This is a complete script to download historical data:
from ib_insync import *
ib = IB()
ib.connect('127.0.0.1', 7497, clientId=1)
bars = ib.reqHistoricalData(
contract=Stock('TSLA', 'SMART', 'USD'),
endDateTime='',
durationStr='30 D',
barSizeSetting='1 hour',
whatToShow='TRADES',
useRTH=True)
print(bars)
Be sure to take a look at the example notebooks too.
The software is provided on the conditions of the simplified BSD license.
This project is not affiliated with Interactive Brokers Group, Inc.'s.
- Removed import from ipykernel
- Removed dependencies for installing via pip
- added lots of request methods
- order book (DOM) added
- notebooks updated
- Added UTC timezone to some timestamps
- Fixed issue #1
- Initial release
Good luck and enjoy,
author: | Ewald de Wit <[email protected]> |
---|