Python wrapper for Interactive Brokers Client Portal Web API
Project description
“Logo for ‘EasyIB’” according to Midjourney
Please see https://easyib.readthedocs.io for the full documentation.
Features
Notable functionality includes:
Pull account info, portfolio, cash balance, the net value
Pull historical market data
Submit, modify, cancel orders
Get order status, list of live orders
Ping (tickle) server, get authentication status, re-authenticate
How to install
EasyIB assumes a gateway session is active and authenticated. Follow instructions at https://interactivebrokers.github.io/cpwebapi/ for authentication. A custom package such as Voyz/IBeam can also be used for setting up an active session. Part Time Larry has an excellent youtube tutorial on this topic: https://www.youtube.com/watch?v=O1OhiiCx6Ho.
EasyIB was developed under the Voyz/Ibeam docker image environment.
Once a gateway session is running, pip command can be used to install EasyIB:
pip install easyib
Quick start
Historical data
import easyib
ib = easyib.REST() # default parameters: url="https://localhost:5000", ssl=False
bars = ib.get_bars("AAPL", period="1w", bar="1d")
print(bars)
Submitting an order
list_of_orders = [
{
"conid": ib.get_conid("AAPL"),
"orderType": "MKT",
"side": "BUY",
"quantity": 7,
"tif": "GTC",
}
]
order = ib.submit_orders(list_of_orders)
print(order)
Reference
For the complete reference, please visit https://easyib.readthedocs.io/en/latest/reference.html.
REST
By default, EasyIB assumes the gateway session is open at https://localhost:5000 without an SSL certificate. A custom URL and SSL certificate can be set by:
ib = easyib.REST(url="https://localhost:5000", ssl=False)
API REST Methods
Documentation of available functions is at https://easyib.readthedocs.io/en/latest/reference.html.
See the official documentation of the End Point at https://www.interactivebrokers.com/api/doc.html.
REST Method |
End Point |
Result |
---|---|---|
get_accounts() |
Get portfolio/accounts |
list |
switch_account(accountId: str) |
Post iserver/account/{accountId} |
dict |
get_cash() |
Get portfolio/{accountId}/ledger |
float |
get_netvalue() |
Get portfolio/{accountId}/ledger |
float |
get_conid(symbol: str, instrument_filters: Dict = None, contract_filters: Dict = {"isUS": True}) |
Get trsv/stocks |
int |
get_fut_conids(symbol: str) |
Get trsv/futures |
list |
get_portfolio() |
Get portfolio/{accountId}/positions/0 |
dict |
reply_yes(id: str) |
Post iserver/reply/{id} |
dict |
submit_orders(list_of_orders: list, reply_yes=True) |
Post iserver/account/{acountId}/orders |
dict |
get_order(orderId: str) |
Get iserver/account/order/satus/ |
dict |
get_live_orders(filters=None) |
Get iserver/account/orders |
dict |
cancel_order(orderId: str) |
Delete iserver/account/{accountId}/order/{orderId} |
dict |
modify_order(orderId=None, order=None, reply_yes=True) |
Post iserver/account/{accountId}/order/{orderId} |
dict |
get_bars(symbol: str, period="1w", bar="1d", outsideRth=False, conid="default") |
Get iserver/marketdata/history |
dict |
ping_server() |
Post tickle |
dict |
get_auth_status() |
Post iserver/auth/status |
dict |
re_authenticate() |
Post iserver/reauthenticate |
None |
log_out() |
Post logout |
None |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file easyib-0.2.5.tar.gz
.
File metadata
- Download URL: easyib-0.2.5.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e0e831d0f556af8044d6a46c33a7bdcb869692201ae939d070922e534796fa4 |
|
MD5 | 5527d699e8b4cf922db33ce73a29e809 |
|
BLAKE2b-256 | 385bc551c9eac637c393d86df0bf642e99f744bf6e844debe48826cb1195a84b |
File details
Details for the file easyib-0.2.5-py3-none-any.whl
.
File metadata
- Download URL: easyib-0.2.5-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d24101ecef4acf8fb1c48cc19c17103450bace1eb96a6721b968af8c34e5ed0c |
|
MD5 | 958bab6af3f1e0a6555e7c097f9e8ba3 |
|
BLAKE2b-256 | 5e1fb5a6a1e45d0494036c25a34fb2a782e41796812959a1b3c73313f39e3105 |